@colijnit/product 260.1.2 → 261.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/fesm2022/colijnit-product.mjs +4534 -0
  2. package/fesm2022/colijnit-product.mjs.map +1 -0
  3. package/index.d.ts +948 -0
  4. package/package.json +32 -33
  5. package/app/bundle/service/local-storage.service.d.ts +0 -14
  6. package/app/components/core/header/header.component.d.ts +0 -7
  7. package/app/components/core/header/header.module.d.ts +0 -2
  8. package/app/components/image-carousel/image-carousel.component.d.ts +0 -48
  9. package/app/components/image-carousel/image-carousel.module.d.ts +0 -2
  10. package/app/components/product-additional-description/product-additional-description.component.d.ts +0 -14
  11. package/app/components/product-additional-description/product-additional-description.module.d.ts +0 -2
  12. package/app/components/product-additional-info/product-additional-info.component.d.ts +0 -21
  13. package/app/components/product-additional-info/product-additional-info.module.d.ts +0 -2
  14. package/app/components/product-addtocart/product-addtocart.component.d.ts +0 -42
  15. package/app/components/product-addtocart/product-addtocart.module.d.ts +0 -2
  16. package/app/components/product-delivery/product-delivery.component.d.ts +0 -18
  17. package/app/components/product-delivery/product-delivery.module.d.ts +0 -2
  18. package/app/components/product-description/product-description.component.d.ts +0 -7
  19. package/app/components/product-description/product-description.module.d.ts +0 -2
  20. package/app/components/product-dialog/product-dialog.component.d.ts +0 -27
  21. package/app/components/product-dialog/product-dialog.module.d.ts +0 -2
  22. package/app/components/product-documents/product-document.module.d.ts +0 -2
  23. package/app/components/product-documents/product-documents.component.d.ts +0 -10
  24. package/app/components/product-external-source/product-external-source.component.d.ts +0 -51
  25. package/app/components/product-external-source/product-external-source.module.d.ts +0 -2
  26. package/app/components/product-hd/product-hd.component.d.ts +0 -25
  27. package/app/components/product-hd/product-hd.module.d.ts +0 -2
  28. package/app/components/product-info-tabs/product-info-tabs.component.d.ts +0 -18
  29. package/app/components/product-info-tabs/product-info-tabs.module.d.ts +0 -2
  30. package/app/components/product-page/product-page.component.d.ts +0 -66
  31. package/app/components/product-page/product-page.module.d.ts +0 -2
  32. package/app/components/product-price/product-price.component.d.ts +0 -19
  33. package/app/components/product-price/product-price.module.d.ts +0 -2
  34. package/app/components/product-properties/product-properties.component.d.ts +0 -16
  35. package/app/components/product-properties/product-properties.module.d.ts +0 -2
  36. package/app/components/product-related/product-related.component.d.ts +0 -33
  37. package/app/components/product-related/product-related.module.d.ts +0 -2
  38. package/app/components/product-selector-type/product-selector-type.component.d.ts +0 -22
  39. package/app/components/product-selector-type/product-selector-type.module.d.ts +0 -2
  40. package/app/components/product-stock/product-stock.component.d.ts +0 -20
  41. package/app/components/product-stock/product-stock.module.d.ts +0 -2
  42. package/app/components/product-symbols/product-symbols.component.d.ts +0 -10
  43. package/app/components/product-symbols/product-symbols.module.d.ts +0 -2
  44. package/app/components/render-carousel/render-carousel.component.d.ts +0 -40
  45. package/app/components/render-carousel/render-carousel.module.d.ts +0 -2
  46. package/app/enum/icon.enum.d.ts +0 -22
  47. package/app/enum/language-code.enum.d.ts +0 -6
  48. package/app/enum/selector-type.enum.d.ts +0 -5
  49. package/app/ione-product.component.d.ts +0 -47
  50. package/app/ione-product.module.d.ts +0 -2
  51. package/app/model/article-quantity.model.d.ts +0 -5
  52. package/app/model/icon.d.ts +0 -4
  53. package/app/model/productSettings.d.ts +0 -18
  54. package/app/model/render-modes.d.ts +0 -5
  55. package/app/model/render-parameters.d.ts +0 -7
  56. package/app/model/settings-options.d.ts +0 -10
  57. package/app/model/stock-and-delivery.d.ts +0 -5
  58. package/app/pipe/localize.pipe.d.ts +0 -7
  59. package/app/pipe/pipe.module.d.ts +0 -2
  60. package/app/product-version.d.ts +0 -6
  61. package/app/service/dictionary.service.d.ts +0 -24
  62. package/app/service/icon-cache.service.d.ts +0 -17
  63. package/app/service/product-connector-adapter.service.d.ts +0 -43
  64. package/app/service/product-connector.service.d.ts +0 -43
  65. package/app/service/product-event.service.d.ts +0 -27
  66. package/app/service/product-script-loader.service.d.ts +0 -9
  67. package/app/service/product-settings.service.d.ts +0 -16
  68. package/app/utils/bit-utils.d.ts +0 -7
  69. package/app/utils/json-utils.service.d.ts +0 -3
  70. package/assets/dictionary/text.properties.d.ts +0 -3
  71. package/bundles/colijnit-product.umd.js +0 -4317
  72. package/bundles/colijnit-product.umd.js.map +0 -1
  73. package/colijnit-product.d.ts +0 -49
  74. package/colijnit-product.metadata.json +0 -1
  75. package/esm2015/app/bundle/service/local-storage.service.js +0 -37
  76. package/esm2015/app/components/core/header/header.component.js +0 -26
  77. package/esm2015/app/components/core/header/header.module.js +0 -19
  78. package/esm2015/app/components/image-carousel/image-carousel.component.js +0 -288
  79. package/esm2015/app/components/image-carousel/image-carousel.module.js +0 -23
  80. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +0 -58
  81. package/esm2015/app/components/product-additional-description/product-additional-description.module.js +0 -21
  82. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +0 -108
  83. package/esm2015/app/components/product-additional-info/product-additional-info.module.js +0 -21
  84. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +0 -185
  85. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +0 -26
  86. package/esm2015/app/components/product-delivery/product-delivery.component.js +0 -49
  87. package/esm2015/app/components/product-delivery/product-delivery.module.js +0 -23
  88. package/esm2015/app/components/product-description/product-description.component.js +0 -23
  89. package/esm2015/app/components/product-description/product-description.module.js +0 -19
  90. package/esm2015/app/components/product-dialog/product-dialog.component.js +0 -86
  91. package/esm2015/app/components/product-dialog/product-dialog.module.js +0 -25
  92. package/esm2015/app/components/product-documents/product-document.module.js +0 -25
  93. package/esm2015/app/components/product-documents/product-documents.component.js +0 -31
  94. package/esm2015/app/components/product-external-source/product-external-source.component.js +0 -192
  95. package/esm2015/app/components/product-external-source/product-external-source.module.js +0 -23
  96. package/esm2015/app/components/product-hd/product-hd.component.js +0 -124
  97. package/esm2015/app/components/product-hd/product-hd.module.js +0 -23
  98. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +0 -82
  99. package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +0 -29
  100. package/esm2015/app/components/product-page/product-page.component.js +0 -254
  101. package/esm2015/app/components/product-page/product-page.module.js +0 -50
  102. package/esm2015/app/components/product-price/product-price.component.js +0 -75
  103. package/esm2015/app/components/product-price/product-price.module.js +0 -23
  104. package/esm2015/app/components/product-properties/product-properties.component.js +0 -61
  105. package/esm2015/app/components/product-properties/product-properties.module.js +0 -21
  106. package/esm2015/app/components/product-related/product-related.component.js +0 -137
  107. package/esm2015/app/components/product-related/product-related.module.js +0 -25
  108. package/esm2015/app/components/product-selector-type/product-selector-type.component.js +0 -63
  109. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +0 -26
  110. package/esm2015/app/components/product-stock/product-stock.component.js +0 -69
  111. package/esm2015/app/components/product-stock/product-stock.module.js +0 -23
  112. package/esm2015/app/components/product-symbols/product-symbols.component.js +0 -49
  113. package/esm2015/app/components/product-symbols/product-symbols.module.js +0 -26
  114. package/esm2015/app/components/render-carousel/render-carousel.component.js +0 -127
  115. package/esm2015/app/components/render-carousel/render-carousel.module.js +0 -25
  116. package/esm2015/app/enum/icon.enum.js +0 -24
  117. package/esm2015/app/enum/language-code.enum.js +0 -8
  118. package/esm2015/app/enum/selector-type.enum.js +0 -7
  119. package/esm2015/app/ione-product.component.js +0 -165
  120. package/esm2015/app/ione-product.module.js +0 -36
  121. package/esm2015/app/model/article-quantity.model.js +0 -3
  122. package/esm2015/app/model/icon.js +0 -23
  123. package/esm2015/app/model/productSettings.js +0 -14
  124. package/esm2015/app/model/render-modes.js +0 -7
  125. package/esm2015/app/model/render-parameters.js +0 -10
  126. package/esm2015/app/model/settings-options.js +0 -13
  127. package/esm2015/app/model/stock-and-delivery.js +0 -8
  128. package/esm2015/app/pipe/localize.pipe.js +0 -27
  129. package/esm2015/app/pipe/pipe.module.js +0 -18
  130. package/esm2015/app/product-version.js +0 -10
  131. package/esm2015/app/service/dictionary.service.js +0 -94
  132. package/esm2015/app/service/icon-cache.service.js +0 -40
  133. package/esm2015/app/service/product-connector-adapter.service.js +0 -199
  134. package/esm2015/app/service/product-connector.service.js +0 -115
  135. package/esm2015/app/service/product-event.service.js +0 -27
  136. package/esm2015/app/service/product-script-loader.service.js +0 -68
  137. package/esm2015/app/service/product-settings.service.js +0 -86
  138. package/esm2015/app/utils/bit-utils.js +0 -18
  139. package/esm2015/app/utils/json-utils.service.js +0 -29
  140. package/esm2015/assets/dictionary/text.properties.js +0 -102
  141. package/esm2015/colijnit-product.js +0 -50
  142. package/esm2015/public_api.js +0 -10
  143. package/fesm2015/colijnit-product.js +0 -3529
  144. package/fesm2015/colijnit-product.js.map +0 -1
  145. package/public_api.d.ts +0 -9
@@ -1,4317 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('@colijnit/ioneconnector/build/model/options'), require('@colijnit/articleapi/build/model/article-full-object'), require('@colijnit/articleapi/build/model/super-article'), require('@colijnit/articleapi/build/articles'), require('@colijnit/articleapi/build/model/delivery-prognosis'), require('@colijnit/articleapi/build/model/document-content'), require('@colijnit/ioneconnector/build/service/business-object-factory'), require('@colijnit/transactionapi/build/transaction'), require('@colijnit/mainapi'), require('@colijnit/transactionapi/build/model/transaction-info-response.bo'), require('@colijnit/articleapi/build/model/article-list-object-extended.bo'), require('@colijnit/mainapi/build/model/image-content.bo'), require('@angular/common/http'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@angular/common'), require('@angular/animations'), require('@angular/platform-browser'), require('@colijnit/corecomponents'), require('@colijnit/mainapi/build/model/co-document.bo'), require('@colijnit/articleapi/build/model/configurator-statistics-environment'), require('@colijnit/corecomponents_v12')) :
3
- typeof define === 'function' && define.amd ? define('@colijnit/product', ['exports', '@angular/core', 'rxjs', '@colijnit/ioneconnector/build/model/options', '@colijnit/articleapi/build/model/article-full-object', '@colijnit/articleapi/build/model/super-article', '@colijnit/articleapi/build/articles', '@colijnit/articleapi/build/model/delivery-prognosis', '@colijnit/articleapi/build/model/document-content', '@colijnit/ioneconnector/build/service/business-object-factory', '@colijnit/transactionapi/build/transaction', '@colijnit/mainapi', '@colijnit/transactionapi/build/model/transaction-info-response.bo', '@colijnit/articleapi/build/model/article-list-object-extended.bo', '@colijnit/mainapi/build/model/image-content.bo', '@angular/common/http', '@colijnit/ioneconnector/build/utils/string-utils', '@angular/common', '@angular/animations', '@angular/platform-browser', '@colijnit/corecomponents', '@colijnit/mainapi/build/model/co-document.bo', '@colijnit/articleapi/build/model/configurator-statistics-environment', '@colijnit/corecomponents_v12'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.product = {}), global.ng.core, global.rxjs, global.options, global.articleFullObject, global.superArticle, global.articles, global.deliveryPrognosis, global.documentContent, global.businessObjectFactory, global.transaction, global.mainapi, global.transactionInfoResponse_bo, global.articleListObjectExtended_bo, global.imageContent_bo, global.ng.common.http, global.stringUtils, global.ng.common, global.ng.animations, global.ng.platformBrowser, global.corecomponents, global.coDocument_bo, global.configuratorStatisticsEnvironment, global.corecomponents_v12));
5
- })(this, (function (exports, i0, rxjs, options, articleFullObject, superArticle, articles, deliveryPrognosis, documentContent, businessObjectFactory, transaction, mainapi, transactionInfoResponse_bo, articleListObjectExtended_bo, imageContent_bo, i1, stringUtils, common, animations, i1$1, corecomponents, coDocument_bo, configuratorStatisticsEnvironment, corecomponents_v12) { 'use strict';
6
-
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n["default"] = e;
22
- return Object.freeze(n);
23
- }
24
-
25
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
- var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
27
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
28
-
29
- // this file is dynamically created, do not change this
30
- var Version = /** @class */ (function () {
31
- function Version() {
32
- this.name = "@colijnit/product";
33
- this.description = "Product detail page project for iOne";
34
- this.symVer = "260.1.2";
35
- this.publishDate = "5-1-2026 18:13:02";
36
- }
37
- return Version;
38
- }());
39
-
40
- /******************************************************************************
41
- Copyright (c) Microsoft Corporation.
42
-
43
- Permission to use, copy, modify, and/or distribute this software for any
44
- purpose with or without fee is hereby granted.
45
-
46
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
47
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
48
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
49
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
50
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
51
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
52
- PERFORMANCE OF THIS SOFTWARE.
53
- ***************************************************************************** */
54
- /* global Reflect, Promise, SuppressedError, Symbol */
55
- var extendStatics = function (d, b) {
56
- extendStatics = Object.setPrototypeOf ||
57
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
58
- function (d, b) { for (var p in b)
59
- if (Object.prototype.hasOwnProperty.call(b, p))
60
- d[p] = b[p]; };
61
- return extendStatics(d, b);
62
- };
63
- function __extends(d, b) {
64
- if (typeof b !== "function" && b !== null)
65
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
66
- extendStatics(d, b);
67
- function __() { this.constructor = d; }
68
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
69
- }
70
- var __assign = function () {
71
- __assign = Object.assign || function __assign(t) {
72
- for (var s, i = 1, n = arguments.length; i < n; i++) {
73
- s = arguments[i];
74
- for (var p in s)
75
- if (Object.prototype.hasOwnProperty.call(s, p))
76
- t[p] = s[p];
77
- }
78
- return t;
79
- };
80
- return __assign.apply(this, arguments);
81
- };
82
- function __rest(s, e) {
83
- var t = {};
84
- for (var p in s)
85
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
86
- t[p] = s[p];
87
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
88
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
89
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
90
- t[p[i]] = s[p[i]];
91
- }
92
- return t;
93
- }
94
- function __decorate(decorators, target, key, desc) {
95
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
96
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
97
- r = Reflect.decorate(decorators, target, key, desc);
98
- else
99
- for (var i = decorators.length - 1; i >= 0; i--)
100
- if (d = decorators[i])
101
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
102
- return c > 3 && r && Object.defineProperty(target, key, r), r;
103
- }
104
- function __param(paramIndex, decorator) {
105
- return function (target, key) { decorator(target, key, paramIndex); };
106
- }
107
- function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
108
- function accept(f) { if (f !== void 0 && typeof f !== "function")
109
- throw new TypeError("Function expected"); return f; }
110
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
111
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
112
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
113
- var _, done = false;
114
- for (var i = decorators.length - 1; i >= 0; i--) {
115
- var context = {};
116
- for (var p in contextIn)
117
- context[p] = p === "access" ? {} : contextIn[p];
118
- for (var p in contextIn.access)
119
- context.access[p] = contextIn.access[p];
120
- context.addInitializer = function (f) { if (done)
121
- throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
122
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
123
- if (kind === "accessor") {
124
- if (result === void 0)
125
- continue;
126
- if (result === null || typeof result !== "object")
127
- throw new TypeError("Object expected");
128
- if (_ = accept(result.get))
129
- descriptor.get = _;
130
- if (_ = accept(result.set))
131
- descriptor.set = _;
132
- if (_ = accept(result.init))
133
- initializers.unshift(_);
134
- }
135
- else if (_ = accept(result)) {
136
- if (kind === "field")
137
- initializers.unshift(_);
138
- else
139
- descriptor[key] = _;
140
- }
141
- }
142
- if (target)
143
- Object.defineProperty(target, contextIn.name, descriptor);
144
- done = true;
145
- }
146
- ;
147
- function __runInitializers(thisArg, initializers, value) {
148
- var useValue = arguments.length > 2;
149
- for (var i = 0; i < initializers.length; i++) {
150
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
151
- }
152
- return useValue ? value : void 0;
153
- }
154
- ;
155
- function __propKey(x) {
156
- return typeof x === "symbol" ? x : "".concat(x);
157
- }
158
- ;
159
- function __setFunctionName(f, name, prefix) {
160
- if (typeof name === "symbol")
161
- name = name.description ? "[".concat(name.description, "]") : "";
162
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
163
- }
164
- ;
165
- function __metadata(metadataKey, metadataValue) {
166
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
167
- return Reflect.metadata(metadataKey, metadataValue);
168
- }
169
- function __awaiter(thisArg, _arguments, P, generator) {
170
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
171
- return new (P || (P = Promise))(function (resolve, reject) {
172
- function fulfilled(value) { try {
173
- step(generator.next(value));
174
- }
175
- catch (e) {
176
- reject(e);
177
- } }
178
- function rejected(value) { try {
179
- step(generator["throw"](value));
180
- }
181
- catch (e) {
182
- reject(e);
183
- } }
184
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
185
- step((generator = generator.apply(thisArg, _arguments || [])).next());
186
- });
187
- }
188
- function __generator(thisArg, body) {
189
- var _ = { label: 0, sent: function () { if (t[0] & 1)
190
- throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
191
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
192
- function verb(n) { return function (v) { return step([n, v]); }; }
193
- function step(op) {
194
- if (f)
195
- throw new TypeError("Generator is already executing.");
196
- while (g && (g = 0, op[0] && (_ = 0)), _)
197
- try {
198
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
199
- return t;
200
- if (y = 0, t)
201
- op = [op[0] & 2, t.value];
202
- switch (op[0]) {
203
- case 0:
204
- case 1:
205
- t = op;
206
- break;
207
- case 4:
208
- _.label++;
209
- return { value: op[1], done: false };
210
- case 5:
211
- _.label++;
212
- y = op[1];
213
- op = [0];
214
- continue;
215
- case 7:
216
- op = _.ops.pop();
217
- _.trys.pop();
218
- continue;
219
- default:
220
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
221
- _ = 0;
222
- continue;
223
- }
224
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
225
- _.label = op[1];
226
- break;
227
- }
228
- if (op[0] === 6 && _.label < t[1]) {
229
- _.label = t[1];
230
- t = op;
231
- break;
232
- }
233
- if (t && _.label < t[2]) {
234
- _.label = t[2];
235
- _.ops.push(op);
236
- break;
237
- }
238
- if (t[2])
239
- _.ops.pop();
240
- _.trys.pop();
241
- continue;
242
- }
243
- op = body.call(thisArg, _);
244
- }
245
- catch (e) {
246
- op = [6, e];
247
- y = 0;
248
- }
249
- finally {
250
- f = t = 0;
251
- }
252
- if (op[0] & 5)
253
- throw op[1];
254
- return { value: op[0] ? op[1] : void 0, done: true };
255
- }
256
- }
257
- var __createBinding = Object.create ? (function (o, m, k, k2) {
258
- if (k2 === undefined)
259
- k2 = k;
260
- var desc = Object.getOwnPropertyDescriptor(m, k);
261
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
262
- desc = { enumerable: true, get: function () { return m[k]; } };
263
- }
264
- Object.defineProperty(o, k2, desc);
265
- }) : (function (o, m, k, k2) {
266
- if (k2 === undefined)
267
- k2 = k;
268
- o[k2] = m[k];
269
- });
270
- function __exportStar(m, o) {
271
- for (var p in m)
272
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
273
- __createBinding(o, m, p);
274
- }
275
- function __values(o) {
276
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
277
- if (m)
278
- return m.call(o);
279
- if (o && typeof o.length === "number")
280
- return {
281
- next: function () {
282
- if (o && i >= o.length)
283
- o = void 0;
284
- return { value: o && o[i++], done: !o };
285
- }
286
- };
287
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
288
- }
289
- function __read(o, n) {
290
- var m = typeof Symbol === "function" && o[Symbol.iterator];
291
- if (!m)
292
- return o;
293
- var i = m.call(o), r, ar = [], e;
294
- try {
295
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
296
- ar.push(r.value);
297
- }
298
- catch (error) {
299
- e = { error: error };
300
- }
301
- finally {
302
- try {
303
- if (r && !r.done && (m = i["return"]))
304
- m.call(i);
305
- }
306
- finally {
307
- if (e)
308
- throw e.error;
309
- }
310
- }
311
- return ar;
312
- }
313
- /** @deprecated */
314
- function __spread() {
315
- for (var ar = [], i = 0; i < arguments.length; i++)
316
- ar = ar.concat(__read(arguments[i]));
317
- return ar;
318
- }
319
- /** @deprecated */
320
- function __spreadArrays() {
321
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
322
- s += arguments[i].length;
323
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
324
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
325
- r[k] = a[j];
326
- return r;
327
- }
328
- function __spreadArray(to, from, pack) {
329
- if (pack || arguments.length === 2)
330
- for (var i = 0, l = from.length, ar; i < l; i++) {
331
- if (ar || !(i in from)) {
332
- if (!ar)
333
- ar = Array.prototype.slice.call(from, 0, i);
334
- ar[i] = from[i];
335
- }
336
- }
337
- return to.concat(ar || Array.prototype.slice.call(from));
338
- }
339
- function __await(v) {
340
- return this instanceof __await ? (this.v = v, this) : new __await(v);
341
- }
342
- function __asyncGenerator(thisArg, _arguments, generator) {
343
- if (!Symbol.asyncIterator)
344
- throw new TypeError("Symbol.asyncIterator is not defined.");
345
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
346
- return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
347
- function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
348
- function verb(n, f) { if (g[n]) {
349
- i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); };
350
- if (f)
351
- i[n] = f(i[n]);
352
- } }
353
- function resume(n, v) { try {
354
- step(g[n](v));
355
- }
356
- catch (e) {
357
- settle(q[0][3], e);
358
- } }
359
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
360
- function fulfill(value) { resume("next", value); }
361
- function reject(value) { resume("throw", value); }
362
- function settle(f, v) { if (f(v), q.shift(), q.length)
363
- resume(q[0][0], q[0][1]); }
364
- }
365
- function __asyncDelegator(o) {
366
- var i, p;
367
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
368
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
369
- }
370
- function __asyncValues(o) {
371
- if (!Symbol.asyncIterator)
372
- throw new TypeError("Symbol.asyncIterator is not defined.");
373
- var m = o[Symbol.asyncIterator], i;
374
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
375
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
376
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
377
- }
378
- function __makeTemplateObject(cooked, raw) {
379
- if (Object.defineProperty) {
380
- Object.defineProperty(cooked, "raw", { value: raw });
381
- }
382
- else {
383
- cooked.raw = raw;
384
- }
385
- return cooked;
386
- }
387
- ;
388
- var __setModuleDefault = Object.create ? (function (o, v) {
389
- Object.defineProperty(o, "default", { enumerable: true, value: v });
390
- }) : function (o, v) {
391
- o["default"] = v;
392
- };
393
- function __importStar(mod) {
394
- if (mod && mod.__esModule)
395
- return mod;
396
- var result = {};
397
- if (mod != null)
398
- for (var k in mod)
399
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
400
- __createBinding(result, mod, k);
401
- __setModuleDefault(result, mod);
402
- return result;
403
- }
404
- function __importDefault(mod) {
405
- return (mod && mod.__esModule) ? mod : { default: mod };
406
- }
407
- function __classPrivateFieldGet(receiver, state, kind, f) {
408
- if (kind === "a" && !f)
409
- throw new TypeError("Private accessor was defined without a getter");
410
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
411
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
412
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
413
- }
414
- function __classPrivateFieldSet(receiver, state, value, kind, f) {
415
- if (kind === "m")
416
- throw new TypeError("Private method is not writable");
417
- if (kind === "a" && !f)
418
- throw new TypeError("Private accessor was defined without a setter");
419
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
420
- throw new TypeError("Cannot write private member to an object whose class did not declare it");
421
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
422
- }
423
- function __classPrivateFieldIn(state, receiver) {
424
- if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
425
- throw new TypeError("Cannot use 'in' operator on non-object");
426
- return typeof state === "function" ? receiver === state : state.has(receiver);
427
- }
428
- function __addDisposableResource(env, value, async) {
429
- if (value !== null && value !== void 0) {
430
- if (typeof value !== "object" && typeof value !== "function")
431
- throw new TypeError("Object expected.");
432
- var dispose, inner;
433
- if (async) {
434
- if (!Symbol.asyncDispose)
435
- throw new TypeError("Symbol.asyncDispose is not defined.");
436
- dispose = value[Symbol.asyncDispose];
437
- }
438
- if (dispose === void 0) {
439
- if (!Symbol.dispose)
440
- throw new TypeError("Symbol.dispose is not defined.");
441
- dispose = value[Symbol.dispose];
442
- if (async)
443
- inner = dispose;
444
- }
445
- if (typeof dispose !== "function")
446
- throw new TypeError("Object not disposable.");
447
- if (inner)
448
- dispose = function () { try {
449
- inner.call(this);
450
- }
451
- catch (e) {
452
- return Promise.reject(e);
453
- } };
454
- env.stack.push({ value: value, dispose: dispose, async: async });
455
- }
456
- else if (async) {
457
- env.stack.push({ async: true });
458
- }
459
- return value;
460
- }
461
- var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
462
- var e = new Error(message);
463
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
464
- };
465
- function __disposeResources(env) {
466
- function fail(e) {
467
- env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
468
- env.hasError = true;
469
- }
470
- function next() {
471
- while (env.stack.length) {
472
- var rec = env.stack.pop();
473
- try {
474
- var result = rec.dispose && rec.dispose.call(rec.value);
475
- if (rec.async)
476
- return Promise.resolve(result).then(next, function (e) { fail(e); return next(); });
477
- }
478
- catch (e) {
479
- fail(e);
480
- }
481
- }
482
- if (env.hasError)
483
- throw env.error;
484
- }
485
- return next();
486
- }
487
- var tslib_es6 = {
488
- __extends: __extends,
489
- __assign: __assign,
490
- __rest: __rest,
491
- __decorate: __decorate,
492
- __param: __param,
493
- __metadata: __metadata,
494
- __awaiter: __awaiter,
495
- __generator: __generator,
496
- __createBinding: __createBinding,
497
- __exportStar: __exportStar,
498
- __values: __values,
499
- __read: __read,
500
- __spread: __spread,
501
- __spreadArrays: __spreadArrays,
502
- __spreadArray: __spreadArray,
503
- __await: __await,
504
- __asyncGenerator: __asyncGenerator,
505
- __asyncDelegator: __asyncDelegator,
506
- __asyncValues: __asyncValues,
507
- __makeTemplateObject: __makeTemplateObject,
508
- __importStar: __importStar,
509
- __importDefault: __importDefault,
510
- __classPrivateFieldGet: __classPrivateFieldGet,
511
- __classPrivateFieldSet: __classPrivateFieldSet,
512
- __classPrivateFieldIn: __classPrivateFieldIn,
513
- __addDisposableResource: __addDisposableResource,
514
- __disposeResources: __disposeResources,
515
- };
516
-
517
- var SettingsOptions = /** @class */ (function () {
518
- function SettingsOptions() {
519
- this.showStockStatus = false;
520
- this.showZoomButton = false;
521
- this.showTagFilter = false;
522
- this.showAsConfigured = false;
523
- this.inlineAnswers = false;
524
- this.showArButton = false;
525
- this.arEnabled = false;
526
- this.vrEnabled = false;
527
- }
528
- return SettingsOptions;
529
- }());
530
-
531
- var RenderModes;
532
- (function (RenderModes) {
533
- RenderModes["RenderRoom"] = "render_room";
534
- RenderModes["RenderShop"] = "render_shop";
535
- RenderModes["RenderIone"] = "render_ione";
536
- })(RenderModes || (RenderModes = {}));
537
-
538
- var RenderParameters$1 = /** @class */ (function () {
539
- function RenderParameters() {
540
- this.host = "";
541
- this.port = 0;
542
- this.secure = false;
543
- this.renderMode = RenderModes.RenderShop;
544
- }
545
- return RenderParameters;
546
- }());
547
-
548
- var ProductSettings = /** @class */ (function (_super) {
549
- __extends(ProductSettings, _super);
550
- function ProductSettings() {
551
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
552
- _this.session = undefined;
553
- _this.createWebOrder = true;
554
- _this.currencySymbol = '€';
555
- _this.options = new SettingsOptions();
556
- _this.renderParameters = new RenderParameters$1();
557
- return _this;
558
- }
559
- return ProductSettings;
560
- }(options.Options));
561
-
562
- var ProductEventService = /** @class */ (function () {
563
- function ProductEventService() {
564
- this.onAddToCart = new rxjs.Subject();
565
- this.onAlternativeClick = new rxjs.Subject();
566
- this.onAddToQuote = new rxjs.Subject();
567
- this.onForceRenderImage = new rxjs.Subject();
568
- this.onArticleReceived = new rxjs.Subject();
569
- this.onSelectionsReceived = new rxjs.Subject();
570
- this.onImageReceived = new rxjs.Subject();
571
- this.onRenderStarted = new rxjs.Subject();
572
- this.onRenderImageReceived = new rxjs.Subject();
573
- this.onDraftRenderImageReceived = new rxjs.Subject();
574
- this.onArticleInfoReceived = new rxjs.Subject();
575
- this.onAnswersAvailable = new rxjs.Subject();
576
- this.onReadyToRender = new rxjs.Subject();
577
- this.onUpdateProductInfoTab = new rxjs.Subject();
578
- this.errorMessage = new rxjs.Subject();
579
- this.onGetRenderForRenderCarousel = new rxjs.Subject();
580
- }
581
- return ProductEventService;
582
- }());
583
- ProductEventService.decorators = [
584
- { type: i0.Directive },
585
- { type: i0.Injectable }
586
- ];
587
-
588
- // 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.
589
- // Only to be used by the IOneControllerService.
590
- var ProductConnectorAdapterService = /** @class */ (function () {
591
- function ProductConnectorAdapterService(_eventService) {
592
- this._eventService = _eventService;
593
- this.showLoader = new rxjs.Subject();
594
- this._boFactory = new businessObjectFactory.BusinessObjectFactory();
595
- this._subs = [];
596
- }
597
- ProductConnectorAdapterService.prototype.ngOnDestroy = function () {
598
- this._subs.forEach(function (s) { return s.unsubscribe(); });
599
- };
600
- ProductConnectorAdapterService.prototype.initConnector = function (options) {
601
- return __awaiter(this, void 0, void 0, function () {
602
- var _this = this;
603
- return __generator(this, function (_a) {
604
- switch (_a.label) {
605
- case 0:
606
- this.articleConnector = new articles.Articles(options);
607
- return [4 /*yield*/, this.articleConnector.connect()];
608
- case 1:
609
- _a.sent();
610
- this.transactionConnector = new transaction.Transaction(options);
611
- this.mainConnector = new mainapi.MainApi(options);
612
- this._subs.push(
613
- // @ts-ignore
614
- this.articleConnector.showLoader.subscribe(function (value) { return _this.showLoader.next(value); }));
615
- return [2 /*return*/];
616
- }
617
- });
618
- });
619
- };
620
- ProductConnectorAdapterService.prototype.setInstance = function (instanceId) {
621
- // this.articleConnector.setInstanceToConfigure(instanceId, false);
622
- };
623
- ProductConnectorAdapterService.prototype.getProductBundleSettings = function (url, upId) {
624
- return __awaiter(this, void 0, void 0, function () {
625
- var tempSettings, tempMainConnector, response;
626
- return __generator(this, function (_a) {
627
- switch (_a.label) {
628
- case 0:
629
- tempSettings = new ProductSettings();
630
- tempSettings.url = url;
631
- tempSettings.schema = upId.toString();
632
- tempMainConnector = new mainapi.MainApi(tempSettings);
633
- return [4 /*yield*/, tempMainConnector.getPublicParams(upId)];
634
- case 1:
635
- response = _a.sent();
636
- if (response) {
637
- return [2 /*return*/, response.productSettings];
638
- }
639
- return [2 /*return*/, ""];
640
- }
641
- });
642
- });
643
- };
644
- ProductConnectorAdapterService.prototype.convertArticleFullObjectToArticleExtended = function (article) {
645
- if (article) {
646
- return this._boFactory.makeWithRawBackendData(articleListObjectExtended_bo.ArticleListObjectExtended, article);
647
- }
648
- };
649
- ProductConnectorAdapterService.prototype.getDeliveryPrognosis = function (goodId, branchNr) {
650
- return __awaiter(this, void 0, void 0, function () {
651
- var deliveryPrognosis;
652
- return __generator(this, function (_a) {
653
- switch (_a.label) {
654
- case 0: return [4 /*yield*/, this.getSelectorDeliveryDate()];
655
- case 1:
656
- deliveryPrognosis = _a.sent();
657
- if (!deliveryPrognosis || !deliveryPrognosis.returnValue) {
658
- return [2 /*return*/, this.getDeliveryDate2(goodId)];
659
- }
660
- return [2 /*return*/, deliveryPrognosis];
661
- }
662
- });
663
- });
664
- };
665
- ProductConnectorAdapterService.prototype.getSelectorDeliveryDate = function () {
666
- return __awaiter(this, void 0, void 0, function () {
667
- var response;
668
- return __generator(this, function (_a) {
669
- switch (_a.label) {
670
- case 0: return [4 /*yield*/, this.articleConnector.getSelectorDeliveryDate()];
671
- case 1:
672
- response = _a.sent();
673
- if (response && response.validationResult && response.validationResult.success) {
674
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(deliveryPrognosis.DeliveryPrognosis, response.resultObject)];
675
- }
676
- else {
677
- return [2 /*return*/, null];
678
- }
679
- return [2 /*return*/];
680
- }
681
- });
682
- });
683
- };
684
- ProductConnectorAdapterService.prototype.getArtStockStatus = function (goodId) {
685
- return __awaiter(this, void 0, void 0, function () {
686
- var response;
687
- return __generator(this, function (_a) {
688
- switch (_a.label) {
689
- case 0: return [4 /*yield*/, this.articleConnector.getArtStockStatus(goodId)];
690
- case 1:
691
- response = _a.sent();
692
- if (response && response.validationResult && response.validationResult.success) {
693
- return [2 /*return*/, response.resultObject];
694
- }
695
- else {
696
- return [2 /*return*/, null];
697
- }
698
- return [2 /*return*/];
699
- }
700
- });
701
- });
702
- };
703
- ProductConnectorAdapterService.prototype.getDeliveryDate2 = function (goodId) {
704
- return __awaiter(this, void 0, void 0, function () {
705
- var response;
706
- return __generator(this, function (_a) {
707
- switch (_a.label) {
708
- case 0: return [4 /*yield*/, this.articleConnector.getDeliveryDate2(goodId)];
709
- case 1:
710
- response = _a.sent();
711
- if (response && response.validationResult && response.validationResult.success) {
712
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(deliveryPrognosis.DeliveryPrognosis, response.resultObject)];
713
- }
714
- else {
715
- return [2 /*return*/, null];
716
- }
717
- return [2 /*return*/];
718
- }
719
- });
720
- });
721
- };
722
- ProductConnectorAdapterService.prototype.getJsonConfiguredArticles = function (configuratorStatistics) {
723
- return __awaiter(this, void 0, void 0, function () {
724
- var response;
725
- return __generator(this, function (_a) {
726
- switch (_a.label) {
727
- case 0: return [4 /*yield*/, this.articleConnector.getJsonConfiguredArticles(configuratorStatistics)];
728
- case 1:
729
- response = _a.sent();
730
- if (response && response.validationResult && response.validationResult.success) {
731
- return [2 /*return*/, response.resultObject];
732
- }
733
- else {
734
- return [2 /*return*/, ''];
735
- }
736
- return [2 /*return*/];
737
- }
738
- });
739
- });
740
- };
741
- ProductConnectorAdapterService.prototype.getJsonArticleFlatTree = function (goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics) {
742
- if (externalSource === void 0) { externalSource = false; }
743
- if (showLoader === void 0) { showLoader = true; }
744
- return __awaiter(this, void 0, void 0, function () {
745
- var _this = this;
746
- return __generator(this, function (_a) {
747
- return [2 /*return*/, this.articleConnector.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, instanceId, configuratorStatistics).catch(function (messages) {
748
- _this._eventService.errorMessage.next(messages);
749
- return null;
750
- })];
751
- });
752
- });
753
- };
754
- ProductConnectorAdapterService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
755
- return __awaiter(this, void 0, void 0, function () {
756
- var _this = this;
757
- return __generator(this, function (_a) {
758
- return [2 /*return*/, this.articleConnector.getGeneratedArtDirectly(goodId, showLoader).catch(function (messages) {
759
- _this._eventService.errorMessage.next(messages);
760
- return null;
761
- })];
762
- });
763
- });
764
- };
765
- ProductConnectorAdapterService.prototype.getGoodIdFromArticleNr = function (sku) {
766
- return __awaiter(this, void 0, void 0, function () {
767
- var response;
768
- return __generator(this, function (_a) {
769
- switch (_a.label) {
770
- case 0: return [4 /*yield*/, this.articleConnector.getGoodIdFromArticleNr(sku)];
771
- case 1:
772
- response = _a.sent();
773
- if (response && response.validationResult && response.validationResult.success) {
774
- return [2 /*return*/, response.resultObject];
775
- }
776
- else {
777
- return [2 /*return*/, null];
778
- }
779
- return [2 /*return*/];
780
- }
781
- });
782
- });
783
- };
784
- ProductConnectorAdapterService.prototype.getArticleFullObject = function (goodId, showLoader) {
785
- if (showLoader === void 0) { showLoader = true; }
786
- return __awaiter(this, void 0, void 0, function () {
787
- var response;
788
- return __generator(this, function (_a) {
789
- switch (_a.label) {
790
- case 0: return [4 /*yield*/, this.articleConnector.getArticleFullObject(goodId, showLoader)];
791
- case 1:
792
- response = _a.sent();
793
- if (response && response.validationResult && response.validationResult.success) {
794
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(articleFullObject.ArticleFullObject, response.resultObject)];
795
- }
796
- else {
797
- return [2 /*return*/, null];
798
- }
799
- return [2 /*return*/];
800
- }
801
- });
802
- });
803
- };
804
- ProductConnectorAdapterService.prototype.getSuperArticle = function (id, branch) {
805
- return __awaiter(this, void 0, void 0, function () {
806
- var response;
807
- return __generator(this, function (_a) {
808
- switch (_a.label) {
809
- case 0: return [4 /*yield*/, this.articleConnector.getSuperArticleQuickSel(id, branch)];
810
- case 1:
811
- response = _a.sent();
812
- if (response && response.validationResult && response.validationResult.success) {
813
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(superArticle.SuperArticle, response.resultObject)];
814
- }
815
- else {
816
- return [2 /*return*/, null];
817
- }
818
- return [2 /*return*/];
819
- }
820
- });
821
- });
822
- };
823
- ProductConnectorAdapterService.prototype.getDocumentContent = function (docId, thumbnail) {
824
- if (thumbnail === void 0) { thumbnail = true; }
825
- return __awaiter(this, void 0, void 0, function () {
826
- var response;
827
- return __generator(this, function (_a) {
828
- switch (_a.label) {
829
- case 0: return [4 /*yield*/, this.articleConnector.getDocumentContent(docId, thumbnail)];
830
- case 1:
831
- response = _a.sent();
832
- if (response && response.validationResult && response.validationResult.success) {
833
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(documentContent.DocumentContent, response.resultObject)];
834
- }
835
- else {
836
- return [2 /*return*/, null];
837
- }
838
- return [2 /*return*/];
839
- }
840
- });
841
- });
842
- };
843
- ProductConnectorAdapterService.prototype.addWebSessionTransactionLine = function (transactionUuid, sku, quantity) {
844
- return __awaiter(this, void 0, void 0, function () {
845
- var response, infoResponse;
846
- return __generator(this, function (_a) {
847
- switch (_a.label) {
848
- case 0: return [4 /*yield*/, this.transactionConnector.addWebSessionTransactionLine(transactionUuid, sku, quantity)];
849
- case 1:
850
- response = _a.sent();
851
- if (response && response.validationResult && response.validationResult.success) {
852
- infoResponse = this._boFactory.makeWithRawBackendData(transactionInfoResponse_bo.TransactionInfoResponse, response.resultObject);
853
- return [2 /*return*/, infoResponse.transactionInfo.uuid];
854
- }
855
- return [2 /*return*/, ""];
856
- }
857
- });
858
- });
859
- };
860
- ProductConnectorAdapterService.prototype.getImageForCoDocument = function (document, thumb) {
861
- return __awaiter(this, void 0, void 0, function () {
862
- var response;
863
- return __generator(this, function (_a) {
864
- switch (_a.label) {
865
- case 0: return [4 /*yield*/, this.mainConnector.getImageForCoDocument(document, thumb)];
866
- case 1:
867
- response = _a.sent();
868
- if (response && response.validationResult && response.validationResult.success) {
869
- return [2 /*return*/, this._boFactory.makeWithRawBackendData(imageContent_bo.ImageContent, response.resultObject)];
870
- }
871
- return [2 /*return*/];
872
- }
873
- });
874
- });
875
- };
876
- return ProductConnectorAdapterService;
877
- }());
878
- ProductConnectorAdapterService.decorators = [
879
- { type: i0.Injectable }
880
- ];
881
- ProductConnectorAdapterService.ctorParameters = function () { return [
882
- { type: ProductEventService }
883
- ]; };
884
-
885
- var JsonUtilsService = /** @class */ (function () {
886
- function JsonUtilsService() {
887
- }
888
- JsonUtilsService.prototype.readJsonFile = function (filePath) {
889
- return __awaiter(this, void 0, void 0, function () {
890
- var response, e_1;
891
- return __generator(this, function (_a) {
892
- switch (_a.label) {
893
- case 0:
894
- _a.trys.push([0, 2, , 3]);
895
- return [4 /*yield*/, fetch(filePath)];
896
- case 1:
897
- response = _a.sent();
898
- if (!response.ok) {
899
- return [2 /*return*/, null];
900
- }
901
- else {
902
- return [2 /*return*/, response.json()];
903
- }
904
- return [3 /*break*/, 3];
905
- case 2:
906
- e_1 = _a.sent();
907
- console.error('Error getting file:', e_1.message);
908
- return [2 /*return*/, ''];
909
- case 3: return [2 /*return*/];
910
- }
911
- });
912
- });
913
- };
914
- return JsonUtilsService;
915
- }());
916
- JsonUtilsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
917
- JsonUtilsService.decorators = [
918
- { type: i0.Injectable, args: [{
919
- providedIn: 'root'
920
- },] }
921
- ];
922
-
923
- var LanguageCode;
924
- (function (LanguageCode) {
925
- LanguageCode["Dutch"] = "nl-NL";
926
- LanguageCode["English"] = "en-GB";
927
- LanguageCode["German"] = "de-DE";
928
- LanguageCode["French"] = "fr-FR";
929
- })(LanguageCode || (LanguageCode = {}));
930
-
931
- var Dictionary = /** @class */ (function () {
932
- function Dictionary() {
933
- this.strings = {
934
- "en": {
935
- "ADDITIONAL_DATA": "Additional information",
936
- "ALTERNATIVE_PRODUCTS": "Alternative products",
937
- "ARTICLE_NUMBER": "Productnumber",
938
- "AS_CONFIGURED": "As configured",
939
- "CATEGORY": "Category",
940
- "CATEGORY_TYPE": "Category type",
941
- "CONFIGURE": "Configure",
942
- "DELIVERY_TIME_PERIOD": "Delivery time",
943
- "DESCRIPTION": "Description",
944
- "DOCUMENTS": "Documents",
945
- "DOWNLOADS": "Downloads",
946
- "FEATURES": "Features",
947
- "HEIGHT": "Height",
948
- "MATERIAL": "Material",
949
- "PRODUCT_IN_STOCK": "In stock",
950
- "PRODUCT_LIMITED_STOCK": "Limited stock",
951
- "PRODUCT_NOT_IN_STOCK": "Not in stock",
952
- "PROPERTIES": "Characteristics",
953
- "QUOTATION": "Quotation",
954
- "READ_MORE": "Read more",
955
- "RELATED_PRODUCTS": "Related products",
956
- "SHOPPING_CART_IN": "In Shopping Cart",
957
- "SHOW_IN": "Show in",
958
- "STOCK": "Stock",
959
- "SYMBOLS": "Symbols",
960
- "TITLE": "Title",
961
- "TURNOVERGROUP": "Turnover group",
962
- "VARIANTS": "Variations",
963
- "WIDTH": "Width",
964
- "SUGGESTION": "Suggestion",
965
- },
966
- "nl": {
967
- "ADDITIONAL_DATA": "Extra informatie",
968
- "ALTERNATIVE_PRODUCTS": "Alternatieve producten",
969
- "ARTICLE_NUMBER": "Artikel nummer",
970
- "AS_CONFIGURED": "Zoals samengesteld",
971
- "CATEGORY": "Categorie",
972
- "CATEGORY_TYPE": "Categorie type",
973
- "CONFIGURE": "Configureren",
974
- "DELIVERY_TIME_PERIOD": "Levertijd",
975
- "DESCRIPTION": "Omschrijving",
976
- "DOCUMENTS": "Documenten",
977
- "DOWNLOADS": "Downloads",
978
- "FEATURES": "Kenmerken",
979
- "HEIGHT": "Hoogte",
980
- "MATERIAL": "Materiaal",
981
- "PRODUCT_IN_STOCK": "Op voorraad",
982
- "PRODUCT_LIMITED_STOCK": "Beperkt op voorraad",
983
- "PRODUCT_NOT_IN_STOCK": "Niet op voorraad",
984
- "PROPERTIES": "Eigenschappen",
985
- "QUOTATION": "Quotatie",
986
- "READ_MORE": "Lees meer",
987
- "RELATED_PRODUCTS": "Gerelateerde producten",
988
- "SHOPPING_CART_IN": "In winkelwagen",
989
- "SHOW_IN": "Laat zien",
990
- "STOCK": "Voorraad",
991
- "SYMBOLS": "Symbolen",
992
- "TITLE": "Titel",
993
- "TURNOVERGROUP": "Omzetgroep",
994
- "VARIANTS": "Varianten",
995
- "WIDTH": "Breedte",
996
- "SUGGESTION": "Suggesties bij",
997
- },
998
- "de": {
999
- "ADDITIONAL_DATA": "Extra informatie",
1000
- "ALTERNATIVE_PRODUCTS": "Alternative Produkte",
1001
- "ARTICLE_NUMBER": "Artikelnummer",
1002
- "CATEGORY": "Kategorie",
1003
- "CATEGORY_TYPE": "Kategorietype",
1004
- "CONFIGURE": "Konfigurieren",
1005
- "DELIVERY_TIME_PERIOD": "Lieferzeit",
1006
- "DESCRIPTION": "Beschreibung",
1007
- "DOCUMENTS": "Dateien",
1008
- "DOWNLOADS": "Downloads",
1009
- "FEATURES": "Eigenschaften",
1010
- "HEIGHT": "Höhe",
1011
- "MATERIAL": "Material",
1012
- "PRODUCT_IN_STOCK": "Auf lager",
1013
- "PRODUCT_LIMITED_STOCK": "Begrentzt auf lager",
1014
- "PRODUCT_NOT_IN_STOCK": "Nicht auf lager",
1015
- "PROPERTIES": "Eigenschaften",
1016
- "QUOTATION": "Angebot",
1017
- "READ_MORE": "Lesen Sie mehr",
1018
- "RELATED_PRODUCTS": "Verwandte Produkte",
1019
- "SHOPPING_CART_IN": "Im Einkaufswagen",
1020
- "SHOW_IN": "Zeigen",
1021
- "STOCK": "Vorrat",
1022
- "SYMBOLS": "Symbole",
1023
- "TITLE": "Titulatur",
1024
- "TURNOVERGROUP": "Umsatzgruppe",
1025
- "VARIANTS": "Varianten",
1026
- "WIDTH": "Breite",
1027
- "SUGGESTION": "Suggesties bij",
1028
- }
1029
- };
1030
- }
1031
- return Dictionary;
1032
- }());
1033
-
1034
- // The localization service, providing peers with text translation functionality.
1035
- var DictionaryService = /** @class */ (function () {
1036
- function DictionaryService(_http, _jsonUtils) {
1037
- this._http = _http;
1038
- this._jsonUtils = _jsonUtils;
1039
- this.dictionaryUrl = 'js/browser/res/dictionary/';
1040
- // private _dictionaryPromise: Map<LanguageCode, Promise<{ [key: string]: string }>> = new Map<LanguageCode, Promise<{ [key: string]: string }>>();
1041
- this._dictionaries = new Map();
1042
- // Some dictionary values have one or more '|~' texts in them, meant to be replaced with client-side given texts.
1043
- this._placeholder = '|~';
1044
- }
1045
- Object.defineProperty(DictionaryService.prototype, "language", {
1046
- get: function () {
1047
- return this._language;
1048
- },
1049
- enumerable: false,
1050
- configurable: true
1051
- });
1052
- Object.defineProperty(DictionaryService.prototype, "rootUrl", {
1053
- set: function (value) {
1054
- this._rootUrl = value;
1055
- this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
1056
- },
1057
- enumerable: false,
1058
- configurable: true
1059
- });
1060
- // Loads the dictionary for given language in memory.
1061
- DictionaryService.prototype.setDictionary = function (language) {
1062
- return __awaiter(this, void 0, void 0, function () {
1063
- var dictionary;
1064
- return __generator(this, function (_a) {
1065
- this._language = language || LanguageCode.Dutch;
1066
- if (!this._dictionaries.has(this._language)) {
1067
- dictionary = new Dictionary();
1068
- if (dictionary.strings[this._language.substr(0, 2).toLowerCase()] !== undefined) {
1069
- this._dictionaries.set(this._language, dictionary.strings[this._language.substr(0, 2).toLowerCase()]);
1070
- }
1071
- }
1072
- return [2 /*return*/];
1073
- });
1074
- });
1075
- };
1076
- /**
1077
- * Returns the localized text for the given dictionary key.
1078
- * @param {string} key
1079
- * @param {boolean} [upperCaseFirst = true] False for first letter lowercase, true for first letter uppercase for returned dict val
1080
- * @param {string[]} replacementTexts Rest params for replacement of '|~' in returned dict value
1081
- * @returns {string} The translated text for given dictionary key
1082
- */
1083
- DictionaryService.prototype.get = function (key, upperCaseFirst) {
1084
- if (upperCaseFirst === void 0) { upperCaseFirst = true; }
1085
- var replacementTexts = [];
1086
- for (var _i = 2; _i < arguments.length; _i++) {
1087
- replacementTexts[_i - 2] = arguments[_i];
1088
- }
1089
- if (!stringUtils.StringUtils.IsStringWithLength(key)) {
1090
- return key || '';
1091
- }
1092
- var text = this._dictionaries.get(this.language)[key];
1093
- text = stringUtils.StringUtils.IsStringWithLength(text) ? text : key;
1094
- if (upperCaseFirst) {
1095
- text = text.charAt(0).toUpperCase() + text.slice(1);
1096
- }
1097
- else {
1098
- text = text.charAt(0).toLowerCase() + text.slice(1);
1099
- }
1100
- if (replacementTexts.length > 0) {
1101
- text = stringUtils.StringUtils.ReplaceOccurrencesIn.apply(stringUtils.StringUtils, __spreadArray([text, this._placeholder], __read(replacementTexts)));
1102
- }
1103
- return text;
1104
- };
1105
- return DictionaryService;
1106
- }());
1107
- DictionaryService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(i0__namespace.ɵɵinject(i1__namespace.HttpClient), i0__namespace.ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
1108
- DictionaryService.decorators = [
1109
- { type: i0.Injectable, args: [{
1110
- providedIn: 'root'
1111
- },] }
1112
- ];
1113
- DictionaryService.ctorParameters = function () { return [
1114
- { type: i1.HttpClient },
1115
- { type: JsonUtilsService }
1116
- ]; };
1117
-
1118
- var ProductSettingsService = /** @class */ (function () {
1119
- function ProductSettingsService(_jsonUtilsService, _dictionaryService) {
1120
- this._jsonUtilsService = _jsonUtilsService;
1121
- this._dictionaryService = _dictionaryService;
1122
- this.settingsLoaded = new rxjs.BehaviorSubject(false);
1123
- }
1124
- Object.defineProperty(ProductSettingsService.prototype, "settings", {
1125
- get: function () {
1126
- return this._settings;
1127
- },
1128
- set: function (value) {
1129
- this._settings = value;
1130
- },
1131
- enumerable: false,
1132
- configurable: true
1133
- });
1134
- ProductSettingsService.prototype.initializeSettings = function (finish) {
1135
- if (finish === void 0) { finish = true; }
1136
- return __awaiter(this, void 0, void 0, function () {
1137
- var jsonSettings;
1138
- return __generator(this, function (_a) {
1139
- switch (_a.label) {
1140
- case 0:
1141
- if (!(typeof settings === 'undefined')) return [3 /*break*/, 2];
1142
- return [4 /*yield*/, this._jsonUtilsService.readJsonFile('product-settings.json')];
1143
- case 1:
1144
- jsonSettings = _a.sent();
1145
- if (jsonSettings) {
1146
- this.settings = Object.assign(new ProductSettings(), jsonSettings);
1147
- this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
1148
- if (finish) {
1149
- this.settingsFinished();
1150
- }
1151
- }
1152
- return [3 /*break*/, 3];
1153
- case 2:
1154
- this.settings = Object.assign(new ProductSettings(), settings);
1155
- this.settings.options = Object.assign(new SettingsOptions(), this.settings.options);
1156
- if (finish) {
1157
- this.settingsFinished();
1158
- }
1159
- _a.label = 3;
1160
- case 3: return [2 /*return*/];
1161
- }
1162
- });
1163
- });
1164
- };
1165
- ProductSettingsService.prototype.createSettingsFromObject = function (obj) {
1166
- return __awaiter(this, void 0, void 0, function () {
1167
- var ownOptions, ownRenderParameters;
1168
- return __generator(this, function (_a) {
1169
- if (!this.settings) {
1170
- this.settings = new ProductSettings();
1171
- }
1172
- ownOptions = Object.assign({}, this.settings.options);
1173
- ownRenderParameters = Object.assign({}, this.settings.renderParameters);
1174
- this.settings = Object.assign({}, this.settings, obj);
1175
- if (obj.renderParameters) {
1176
- this.settings.renderParameters = Object.assign({}, ownRenderParameters, obj.renderParameters);
1177
- }
1178
- if (obj.options) {
1179
- this.settings.options = Object.assign({}, ownOptions, obj.options);
1180
- }
1181
- if (obj.hasOwnProperty('assetPath')) {
1182
- this.settings.assetPath = obj['assetPath'];
1183
- if (this.settings.assetPath[this.settings.assetPath.length - 1] !== '/') {
1184
- this.settings.assetPath += '/';
1185
- }
1186
- this.settings.threeDAssetPath = this.settings.assetPath;
1187
- }
1188
- if (obj.hasOwnProperty('threeDAssetPath')) {
1189
- this.settings.threeDAssetPath = obj['threeDAssetPath'];
1190
- if (this.settings.threeDAssetPath[this.settings.threeDAssetPath.length - 1] !== '/') {
1191
- this.settings.threeDAssetPath += '/';
1192
- }
1193
- }
1194
- this.settingsFinished();
1195
- return [2 /*return*/];
1196
- });
1197
- });
1198
- };
1199
- ProductSettingsService.prototype.settingsFinished = function () {
1200
- return __awaiter(this, void 0, void 0, function () {
1201
- return __generator(this, function (_a) {
1202
- switch (_a.label) {
1203
- case 0: return [4 /*yield*/, this._dictionaryService.setDictionary(this.settings.languageCode)];
1204
- case 1:
1205
- _a.sent();
1206
- this.settingsLoaded.next(true);
1207
- return [2 /*return*/];
1208
- }
1209
- });
1210
- });
1211
- };
1212
- return ProductSettingsService;
1213
- }());
1214
- ProductSettingsService.decorators = [
1215
- { type: i0.Injectable }
1216
- ];
1217
- ProductSettingsService.ctorParameters = function () { return [
1218
- { type: JsonUtilsService },
1219
- { type: DictionaryService }
1220
- ]; };
1221
-
1222
- // Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
1223
- var ProductConnectorService = /** @class */ (function () {
1224
- function ProductConnectorService(_adapterService, _settingsService) {
1225
- this._adapterService = _adapterService;
1226
- this._settingsService = _settingsService;
1227
- this.controllerInitialized = new rxjs.BehaviorSubject(false);
1228
- this.articleLoaded = new rxjs.BehaviorSubject(false);
1229
- this._initializing = false;
1230
- this._initialized = false;
1231
- this.connectorOptions = new options.Options();
1232
- this.subs = [];
1233
- }
1234
- Object.defineProperty(ProductConnectorService.prototype, "shouldShowLoader", {
1235
- get: function () {
1236
- return this._shouldShowLoader;
1237
- },
1238
- enumerable: false,
1239
- configurable: true
1240
- });
1241
- ProductConnectorService.prototype.ngOnDestroy = function () {
1242
- this.subs.forEach(function (sub) { return sub.unsubscribe(); });
1243
- };
1244
- ProductConnectorService.prototype.initConnection = function () {
1245
- return __awaiter(this, void 0, void 0, function () {
1246
- var settings, e_1;
1247
- return __generator(this, function (_a) {
1248
- switch (_a.label) {
1249
- case 0:
1250
- if (this._initialized || this._initializing) {
1251
- return [2 /*return*/];
1252
- }
1253
- this._initializing = true;
1254
- _a.label = 1;
1255
- case 1:
1256
- _a.trys.push([1, 3, , 4]);
1257
- settings = this._settingsService.settings;
1258
- if (!settings) {
1259
- throw Error('Settings are not defined!');
1260
- }
1261
- this.connectorOptions = Object.assign(new options.Options(), settings);
1262
- return [4 /*yield*/, this._adapterService.initConnector(this.connectorOptions)];
1263
- case 2:
1264
- _a.sent();
1265
- this.controllerInitialized.next(true);
1266
- this._initialized = true;
1267
- this._initializing = false;
1268
- return [3 /*break*/, 4];
1269
- case 3:
1270
- e_1 = _a.sent();
1271
- this._initializing = false;
1272
- return [3 /*break*/, 4];
1273
- case 4: return [2 /*return*/];
1274
- }
1275
- });
1276
- });
1277
- };
1278
- ProductConnectorService.prototype.getProductBundleSettings = function (url, upId) {
1279
- return __awaiter(this, void 0, void 0, function () {
1280
- return __generator(this, function (_a) {
1281
- return [2 /*return*/, this._adapterService.getProductBundleSettings(url, upId)];
1282
- });
1283
- });
1284
- };
1285
- ProductConnectorService.prototype.setInstance = function (instanceId) {
1286
- this._instanceId = instanceId;
1287
- this._adapterService.setInstance(instanceId);
1288
- };
1289
- ProductConnectorService.prototype.convertArticleFullObjectToArticleExtended = function (article) {
1290
- return this._adapterService.convertArticleFullObjectToArticleExtended(article);
1291
- };
1292
- ProductConnectorService.prototype.getFullArticle = function (sku) {
1293
- return __awaiter(this, void 0, void 0, function () {
1294
- var goodId;
1295
- return __generator(this, function (_a) {
1296
- switch (_a.label) {
1297
- case 0: return [4 /*yield*/, this._adapterService.getGoodIdFromArticleNr(sku)];
1298
- case 1:
1299
- goodId = _a.sent();
1300
- if (goodId) {
1301
- return [2 /*return*/, this._adapterService.getArticleFullObject(goodId)];
1302
- }
1303
- return [2 /*return*/, null];
1304
- }
1305
- });
1306
- });
1307
- };
1308
- ProductConnectorService.prototype.getDocumentContent = function (docId, thumbnail) {
1309
- if (thumbnail === void 0) { thumbnail = true; }
1310
- return this._adapterService.getDocumentContent(docId, thumbnail);
1311
- };
1312
- ProductConnectorService.prototype.getDeliveryPrognosis = function (goodId) {
1313
- return this._adapterService.getDeliveryPrognosis(goodId);
1314
- };
1315
- ProductConnectorService.prototype.getSelectorDeliveryDate = function () {
1316
- return __awaiter(this, void 0, void 0, function () {
1317
- return __generator(this, function (_a) {
1318
- return [2 /*return*/, this._adapterService.getSelectorDeliveryDate()];
1319
- });
1320
- });
1321
- };
1322
- ProductConnectorService.prototype.getArtStockStatus = function (goodId) {
1323
- return this._adapterService.getArtStockStatus(goodId);
1324
- };
1325
- ProductConnectorService.prototype.getDeliveryDate2 = function (goodId) {
1326
- return this._adapterService.getDeliveryDate2(goodId);
1327
- };
1328
- ProductConnectorService.prototype.getSuperArticle = function (id) {
1329
- return this._adapterService.getSuperArticle(id);
1330
- };
1331
- ProductConnectorService.prototype.getJsonArticleFlatTree = function (goodId, goodType, quantity, externalSource, showLoader, configuratorStatistics) {
1332
- if (externalSource === void 0) { externalSource = false; }
1333
- if (showLoader === void 0) { showLoader = true; }
1334
- return this._adapterService.getJsonArticleFlatTree(goodId, goodType, quantity, externalSource, showLoader, this._instanceId, configuratorStatistics);
1335
- };
1336
- ProductConnectorService.prototype.getGeneratedArtDirectly = function (goodId, showLoader) {
1337
- if (showLoader === void 0) { showLoader = true; }
1338
- return this._adapterService.getGeneratedArtDirectly(goodId, showLoader);
1339
- };
1340
- ProductConnectorService.prototype.addWebSessionTransactionLine = function (transactionUuid, sku, quantity) {
1341
- return __awaiter(this, void 0, void 0, function () {
1342
- return __generator(this, function (_a) {
1343
- switch (_a.label) {
1344
- case 0: return [4 /*yield*/, this._adapterService.addWebSessionTransactionLine(transactionUuid, sku, quantity)];
1345
- case 1: return [2 /*return*/, _a.sent()];
1346
- }
1347
- });
1348
- });
1349
- };
1350
- ProductConnectorService.prototype.getImageForCoDocument = function (document, thumb) {
1351
- if (thumb === void 0) { thumb = false; }
1352
- return __awaiter(this, void 0, void 0, function () {
1353
- return __generator(this, function (_a) {
1354
- return [2 /*return*/, this._adapterService.getImageForCoDocument(document, thumb)];
1355
- });
1356
- });
1357
- };
1358
- ProductConnectorService.prototype.onShowLoaderChange = function (showLoader) {
1359
- this._shouldShowLoader = showLoader;
1360
- };
1361
- return ProductConnectorService;
1362
- }());
1363
- ProductConnectorService.decorators = [
1364
- { type: i0.Injectable }
1365
- ];
1366
- ProductConnectorService.ctorParameters = function () { return [
1367
- { type: ProductConnectorAdapterService },
1368
- { type: ProductSettingsService }
1369
- ]; };
1370
-
1371
- var RootStorageObject = /** @class */ (function () {
1372
- function RootStorageObject() {
1373
- }
1374
- return RootStorageObject;
1375
- }());
1376
- var LocalStorageService = /** @class */ (function () {
1377
- function LocalStorageService() {
1378
- this.storage = localStorage;
1379
- this._appRoot = "web-order";
1380
- this._storageObj = new RootStorageObject();
1381
- this._initLocalStorageObj();
1382
- }
1383
- LocalStorageService.prototype.save = function () {
1384
- this.storage.setItem(this._appRoot, JSON.stringify(this._storageObj));
1385
- };
1386
- LocalStorageService.prototype.clear = function () {
1387
- this.storage.clear();
1388
- };
1389
- Object.defineProperty(LocalStorageService.prototype, "id", {
1390
- get: function () {
1391
- return this._storageObj ? this._storageObj.id : "";
1392
- },
1393
- set: function (id) {
1394
- this._storageObj.id = id;
1395
- this.save();
1396
- },
1397
- enumerable: false,
1398
- configurable: true
1399
- });
1400
- LocalStorageService.prototype._initLocalStorageObj = function () {
1401
- this._storageObj = JSON.parse(this.storage.getItem(this._appRoot)) || this._storageObj;
1402
- this.save();
1403
- };
1404
- return LocalStorageService;
1405
- }());
1406
- LocalStorageService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function LocalStorageService_Factory() { return new LocalStorageService(); }, token: LocalStorageService, providedIn: "root" });
1407
- LocalStorageService.decorators = [
1408
- { type: i0.Injectable, args: [{
1409
- providedIn: 'root'
1410
- },] }
1411
- ];
1412
- LocalStorageService.ctorParameters = function () { return []; };
1413
-
1414
- var IoneProductComponent = /** @class */ (function () {
1415
- function IoneProductComponent(_appEventService, _settingsService, _productConnectorService, _localStorageService) {
1416
- var _this = this;
1417
- // this.sku = 'CF-HILL';
1418
- // this.sku = 'CF-ALMADA';
1419
- // this.sku = 'CF-39904ANT';
1420
- // this.sku = 'CF-22346001';
1421
- // this.sku = '104';
1422
- // this.sku = '1000561986';
1423
- // this.sku = '1000567768';
1424
- // this.sku = '1000567767';
1425
- // this.sku = '1066';
1426
- // this.sku = '104';
1427
- // this.sku = "70000107";
1428
- // this.sku = "grover";
1429
- // this.sku = "1000610952";
1430
- // this.sku = "4387";
1431
- // this.sku = "1000612725";
1432
- // this.sku = '1000610952'; // elix = 1000234793
1433
- this._appEventService = _appEventService;
1434
- this._settingsService = _settingsService;
1435
- this._productConnectorService = _productConnectorService;
1436
- this._localStorageService = _localStorageService;
1437
- this.enableRenderCarousel = false;
1438
- this.handleAddArticleInternally = true;
1439
- this.handleAddToCartInternally = false;
1440
- this.onAddToCart = new i0.EventEmitter();
1441
- this.forceRenderImage = new i0.EventEmitter();
1442
- this.getRenderForRenderCarousel = new i0.EventEmitter();
1443
- this.onAlternativeClick = new i0.EventEmitter();
1444
- this.onArticleInfoReceived = new i0.EventEmitter();
1445
- this.onArticleReceived = new i0.EventEmitter();
1446
- this.onSelectionsReceived = new i0.EventEmitter();
1447
- this.onAddToQuote = new i0.EventEmitter();
1448
- this.openStockEvent = new i0.EventEmitter();
1449
- this.onAnswersAvailable = new i0.EventEmitter();
1450
- this.settingsLoaded = false;
1451
- this.showHD = false;
1452
- this._subs = [];
1453
- this._subs.push(this._appEventService.onAddToCart.subscribe(function (data) {
1454
- _this._handleAddToCart(data);
1455
- }), this._appEventService.onAddToQuote.subscribe(function (json) { return _this.onAddToQuote.emit(json); }), this._appEventService.onAlternativeClick.subscribe(function (article) { return _this.onAlternativeClick.emit(article); }), this._appEventService.onArticleInfoReceived.subscribe(function (info) { return _this._handleAnswerInfoReceived(info); }), this._appEventService.onArticleReceived.subscribe(function (article) { return _this.onArticleReceived.emit(article); }), this._appEventService.onSelectionsReceived.subscribe(function (selections) { return _this.onSelectionsReceived.emit(selections); }), this._appEventService.onAnswersAvailable.subscribe(function (answers) { return _this._handleAnswersAvailable(answers); }), this._settingsService.settingsLoaded.subscribe(function (loaded) {
1456
- _this.settingsLoaded = loaded;
1457
- }));
1458
- }
1459
- Object.defineProperty(IoneProductComponent.prototype, "settings", {
1460
- get: function () {
1461
- return this._settings;
1462
- },
1463
- set: function (value) {
1464
- if (value) {
1465
- if (typeof value === 'string') {
1466
- this._settings = JSON.parse(value);
1467
- }
1468
- else {
1469
- this._settings = value;
1470
- }
1471
- }
1472
- },
1473
- enumerable: false,
1474
- configurable: true
1475
- });
1476
- IoneProductComponent.prototype.ngOnInit = function () {
1477
- return __awaiter(this, void 0, void 0, function () {
1478
- return __generator(this, function (_a) {
1479
- switch (_a.label) {
1480
- case 0: return [4 /*yield*/, this._settingsService.initializeSettings(this._settings === undefined)];
1481
- case 1:
1482
- _a.sent();
1483
- if (this._settings) {
1484
- this._settingsService.createSettingsFromObject(this._settings);
1485
- }
1486
- return [2 /*return*/];
1487
- }
1488
- });
1489
- });
1490
- };
1491
- IoneProductComponent.prototype.ngOnDestroy = function () {
1492
- this._subs.forEach(function (s) { return s.unsubscribe(); });
1493
- };
1494
- IoneProductComponent.prototype._handleAnswerInfoReceived = function (info) {
1495
- this.onArticleInfoReceived.next(info);
1496
- };
1497
- IoneProductComponent.prototype._handleAnswersAvailable = function (answers) {
1498
- this.onAnswersAvailable.next(answers);
1499
- };
1500
- IoneProductComponent.prototype._handleAddToCart = function (data) {
1501
- return __awaiter(this, void 0, void 0, function () {
1502
- var article, transactionId, transactionId;
1503
- return __generator(this, function (_a) {
1504
- switch (_a.label) {
1505
- case 0:
1506
- if (!this.handleAddToCartInternally) return [3 /*break*/, 7];
1507
- if (!(data && data.article)) return [3 /*break*/, 6];
1508
- if (!(typeof data.article === 'string')) return [3 /*break*/, 3];
1509
- article = JSON.parse(data.article);
1510
- if (!(article.selectorData && article.selectorData.compositions)) return [3 /*break*/, 2];
1511
- return [4 /*yield*/, this._productConnectorService.addWebSessionTransactionLine(this._localStorageService.id, article.selectorData.compositions[0].compositionArticleNo, data.quantity)];
1512
- case 1:
1513
- transactionId = _a.sent();
1514
- if (transactionId) {
1515
- this._localStorageService.id = transactionId;
1516
- }
1517
- _a.label = 2;
1518
- case 2: return [3 /*break*/, 5];
1519
- case 3:
1520
- if (!data.article.hasOwnProperty('articleNr')) return [3 /*break*/, 5];
1521
- return [4 /*yield*/, this._productConnectorService.addWebSessionTransactionLine(this._localStorageService.id, data.article['articleNr'], data.quantity)];
1522
- case 4:
1523
- transactionId = _a.sent();
1524
- if (transactionId) {
1525
- this._localStorageService.id = transactionId;
1526
- }
1527
- _a.label = 5;
1528
- case 5:
1529
- this.onAddToCart.next(data);
1530
- _a.label = 6;
1531
- case 6: return [3 /*break*/, 8];
1532
- case 7:
1533
- this.onAddToCart.emit(data);
1534
- _a.label = 8;
1535
- case 8: return [2 /*return*/];
1536
- }
1537
- });
1538
- });
1539
- };
1540
- IoneProductComponent.prototype.openStock = function () {
1541
- this.openStockEvent.emit();
1542
- };
1543
- return IoneProductComponent;
1544
- }());
1545
- IoneProductComponent.decorators = [
1546
- { type: i0.Component, args: [{
1547
- selector: 'app-ione-product',
1548
- template: "\n <app-product-page *ngIf=\"settingsLoaded\"\n [createFrozenArticle]=\"handleAddArticleInternally\"\n [isReturn]=\"isReturn\"\n [sku]=\"sku\"\n [showRelatedProductsPopup]=\"showRelatedProductsPopup\"\n [enableRenderCarousel]=\"enableRenderCarousel\"\n (openStockEvent)=\"openStock()\"\n ></app-product-page>\n <!-- <co-button [label]=\"'click'\" (click)=\"showHD = !showHD\"></co-button>\n <co-product-hd [sku]=\"'657946ca-e1e1-41fd-7ae0-08dbf7df0cef'\" *ngIf=\"showHD\"></co-product-hd>-->\n ",
1549
- providers: [
1550
- ProductSettingsService,
1551
- ProductConnectorService,
1552
- ProductEventService,
1553
- ProductConnectorAdapterService
1554
- ],
1555
- encapsulation: i0.ViewEncapsulation.Emulated,
1556
- styles: [""]
1557
- },] }
1558
- ];
1559
- IoneProductComponent.ctorParameters = function () { return [
1560
- { type: ProductEventService },
1561
- { type: ProductSettingsService },
1562
- { type: ProductConnectorService },
1563
- { type: LocalStorageService }
1564
- ]; };
1565
- IoneProductComponent.propDecorators = {
1566
- sku: [{ type: i0.Input }],
1567
- isReturn: [{ type: i0.Input }],
1568
- showRelatedProductsPopup: [{ type: i0.Input }],
1569
- enableRenderCarousel: [{ type: i0.Input }],
1570
- settings: [{ type: i0.Input }],
1571
- handleAddArticleInternally: [{ type: i0.Input }],
1572
- handleAddToCartInternally: [{ type: i0.Input }],
1573
- onAddToCart: [{ type: i0.Output }],
1574
- forceRenderImage: [{ type: i0.Output }],
1575
- getRenderForRenderCarousel: [{ type: i0.Output }],
1576
- onAlternativeClick: [{ type: i0.Output }],
1577
- onArticleInfoReceived: [{ type: i0.Output }],
1578
- onArticleReceived: [{ type: i0.Output }],
1579
- onSelectionsReceived: [{ type: i0.Output }],
1580
- onAddToQuote: [{ type: i0.Output }],
1581
- openStockEvent: [{ type: i0.Output }],
1582
- onAnswersAvailable: [{ type: i0.Output }]
1583
- };
1584
-
1585
- var StockAndDelivery = /** @class */ (function () {
1586
- function StockAndDelivery(stock, deliveryDescription) {
1587
- this.stock = 0;
1588
- this.stock = stock;
1589
- this.deliveryDescription = deliveryDescription;
1590
- }
1591
- return StockAndDelivery;
1592
- }());
1593
-
1594
- var SelectorType;
1595
- (function (SelectorType) {
1596
- SelectorType["TwoD"] = "2D";
1597
- SelectorType["ThreeD"] = "3D";
1598
- SelectorType["Omni"] = "Omni";
1599
- })(SelectorType || (SelectorType = {}));
1600
-
1601
- /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
1602
- var IconEnum;
1603
- (function (IconEnum) {
1604
- IconEnum["AddToCartDrop"] = "add_to_cart_drop";
1605
- IconEnum["ArrowPointLeft"] = "arrow_point_left";
1606
- IconEnum["ArrowPointRight"] = "arrow_point_right";
1607
- IconEnum["CrossSkinny"] = "cross_skinny";
1608
- IconEnum["DeliveryTruck"] = "delivery_truck";
1609
- IconEnum["Download"] = "download";
1610
- IconEnum["FullScreen"] = "full_screen";
1611
- IconEnum["LinkSimpleRegular"] = "link_simple_regular";
1612
- IconEnum["Location"] = "location";
1613
- IconEnum["Logo"] = "logo";
1614
- IconEnum["MagicWand"] = "magic_wand";
1615
- IconEnum["NormalScreen"] = "normal_screen";
1616
- IconEnum["Quote"] = "quote";
1617
- IconEnum["Refresh"] = "refresh";
1618
- IconEnum["SaveSkinny"] = "save_skinny";
1619
- IconEnum["ThreeD"] = "three_d";
1620
- IconEnum["Truck"] = "truck";
1621
- IconEnum["TwoD"] = "two_d";
1622
- IconEnum["Warehouse"] = "warehouse";
1623
- })(IconEnum || (IconEnum = {}));
1624
-
1625
- /** AUTO GENERATED FILE. DO NOT CHANGE.. **/
1626
- var IconSvg = {
1627
- "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>",
1628
- "arrow_point_left": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\"/></svg>",
1629
- "arrow_point_right": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\"/></svg>",
1630
- "cross_skinny": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\"><g ><polygon points=\"25.35 5.52 24.65 4.81 15 14.46 5.35 4.81 4.65 5.52 14.29 15.17 4.65 24.81 5.35 25.52 15 15.87 24.65 25.52 25.35 24.81 15.71 15.17 25.35 5.52\" fill=\"#484f60\"/></g></svg>",
1631
- "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>",
1632
- "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>",
1633
- "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>",
1634
- "link_simple_regular": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M0 256C0 167.6 71.6 96 160 96l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C98.1 144 48 194.1 48 256s50.1 112 112 112l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c88.4 0 160 71.6 160 160zM184 232l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"/></svg>",
1635
- "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>",
1636
- "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>",
1637
- "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>",
1638
- "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>",
1639
- "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>",
1640
- "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>",
1641
- "save_skinny": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 51 51\"><polygon points=\"23.8 38.1 14.9 25.6 15.7 25 23.6 36.2 35.2 12.9 36.1 13.4 23.8 38.1\" fill=\"#fff\"/></svg>",
1642
- "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>",
1643
- "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>",
1644
- "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>",
1645
- "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>"
1646
- };
1647
-
1648
- var IconCacheService = /** @class */ (function () {
1649
- function IconCacheService(_sanitizer) {
1650
- this._sanitizer = _sanitizer;
1651
- this._iconCache = {};
1652
- this._allIcons = IconSvg;
1653
- this.setIconCache();
1654
- }
1655
- Object.defineProperty(IconCacheService.prototype, "iconCache", {
1656
- /**
1657
- * All the icons as a large JSON object, from the all-icons.json file.
1658
- * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
1659
- */
1660
- get: function () {
1661
- return this._iconCache;
1662
- },
1663
- enumerable: false,
1664
- configurable: true
1665
- });
1666
- IconCacheService.prototype.getIcon = function (iconName) {
1667
- return this._iconCache[iconName.toLowerCase()];
1668
- };
1669
- IconCacheService.prototype.setIconCache = function () {
1670
- for (var key in this._allIcons) {
1671
- if (this._allIcons.hasOwnProperty(key)) {
1672
- this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(this._allIcons[key]);
1673
- }
1674
- }
1675
- };
1676
- return IconCacheService;
1677
- }());
1678
- IconCacheService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0__namespace.ɵɵinject(i1__namespace$1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
1679
- IconCacheService.decorators = [
1680
- { type: i0.Injectable, args: [{
1681
- providedIn: 'root'
1682
- },] }
1683
- ];
1684
- IconCacheService.ctorParameters = function () { return [
1685
- { type: i1$1.DomSanitizer }
1686
- ]; };
1687
-
1688
- var ProductPageComponent = /** @class */ (function () {
1689
- function ProductPageComponent(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
1690
- var _this = this;
1691
- this._ione = _ione;
1692
- this._renderer = _renderer;
1693
- this._changeDetector = _changeDetector;
1694
- this.iconCache = iconCache;
1695
- this.settingsService = settingsService;
1696
- this.appEventService = appEventService;
1697
- this.icon = IconEnum;
1698
- this.createFrozenArticle = true;
1699
- this.isReturn = false;
1700
- this.showRelatedProductsPopup = false;
1701
- this.openStockEvent = new i0.EventEmitter();
1702
- this.configurable = true;
1703
- this.threeD = false;
1704
- this.show2D = true;
1705
- this.show3D = false;
1706
- this.configuring = false;
1707
- this.showAddToCart = false;
1708
- this.fullscreenAnimationEnd = false;
1709
- this.settingsLoaded = false;
1710
- this._fullScreen = false;
1711
- this._subs = [];
1712
- this._subs.push(this.appEventService.onForceRenderImage.subscribe(function (x) {
1713
- if (_this.selections.nativeElement) {
1714
- _this.selections.nativeElement.forceRenderImage();
1715
- }
1716
- }), this.settingsService.settingsLoaded.subscribe(function (loaded) { return _this._handleSettingsLoaded(loaded); }), this._pageLoadedSubscription = rxjs.combineLatest([
1717
- this._ione.controllerInitialized,
1718
- this._ione.articleLoaded
1719
- ]).subscribe(function (_a) {
1720
- var _b = __read(_a, 2), initialized = _b[0], articleLoaded = _b[1];
1721
- if (initialized && articleLoaded) {
1722
- _this.settingsLoaded = initialized;
1723
- }
1724
- }),
1725
- // this._ione.controllerInitialized.subscribe((initialized: boolean) => {
1726
- // this.settingsLoaded = initialized;
1727
- // }),
1728
- this.appEventService.onAnswersAvailable.subscribe(function (answers) {
1729
- if (answers && _this.configurable) {
1730
- _this.showAddToCart = false;
1731
- }
1732
- else {
1733
- _this.showAddToCart = true;
1734
- }
1735
- }), this.appEventService.onGetRenderForRenderCarousel.subscribe(function (renderParameters) {
1736
- if (_this.selections.nativeElement) {
1737
- _this.selections.nativeElement.getRenderForRenderCarousel(renderParameters);
1738
- }
1739
- }));
1740
- }
1741
- Object.defineProperty(ProductPageComponent.prototype, "sku", {
1742
- get: function () {
1743
- return this._sku;
1744
- },
1745
- set: function (value) {
1746
- if (value) {
1747
- if (this.configuring) {
1748
- this.show3D = false;
1749
- this.fullScreen = false;
1750
- this.configuring = false;
1751
- this._changeDetector.detectChanges();
1752
- }
1753
- this._sku = value;
1754
- this._getArticle();
1755
- }
1756
- },
1757
- enumerable: false,
1758
- configurable: true
1759
- });
1760
- Object.defineProperty(ProductPageComponent.prototype, "settings", {
1761
- get: function () {
1762
- return this._settings;
1763
- },
1764
- set: function (value) {
1765
- if (value) {
1766
- if (typeof value === 'string') {
1767
- this._settings = JSON.parse(value);
1768
- }
1769
- else {
1770
- this._settings = value;
1771
- }
1772
- }
1773
- },
1774
- enumerable: false,
1775
- configurable: true
1776
- });
1777
- Object.defineProperty(ProductPageComponent.prototype, "fullScreen", {
1778
- get: function () {
1779
- return this._fullScreen;
1780
- },
1781
- set: function (value) {
1782
- this._fullScreen = value;
1783
- this.fullscreenAnimationEnd = true;
1784
- this._changeDetector.detectChanges();
1785
- // setTimeout(() => {
1786
- // this.fullscreenAnimationEnd = true;
1787
- // }, 400)
1788
- },
1789
- enumerable: false,
1790
- configurable: true
1791
- });
1792
- Object.defineProperty(ProductPageComponent.prototype, "fullScreenIcon", {
1793
- get: function () {
1794
- return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
1795
- },
1796
- enumerable: false,
1797
- configurable: true
1798
- });
1799
- Object.defineProperty(ProductPageComponent.prototype, "currentView", {
1800
- get: function () {
1801
- return this._currentView;
1802
- },
1803
- set: function (value) {
1804
- this._currentView = value;
1805
- this.show2D = this._currentView === SelectorType.TwoD;
1806
- this.show3D = this._currentView === SelectorType.ThreeD;
1807
- this._changeDetector.detectChanges();
1808
- },
1809
- enumerable: false,
1810
- configurable: true
1811
- });
1812
- ProductPageComponent.prototype.ngOnInit = function () {
1813
- if (this._settings) {
1814
- this.settingsService.settings = undefined;
1815
- this.settingsService.createSettingsFromObject(this._settings);
1816
- }
1817
- else {
1818
- this._settings = this.settingsService.settings;
1819
- }
1820
- };
1821
- ProductPageComponent.prototype.ngAfterViewInit = function () {
1822
- };
1823
- ProductPageComponent.prototype.ngOnDestroy = function () {
1824
- this._subs.forEach(function (s) { return s.unsubscribe(); });
1825
- if (this._initializedSub) {
1826
- this._initializedSub.unsubscribe();
1827
- }
1828
- this._pageLoadedSubscription.unsubscribe();
1829
- this.configurator = undefined;
1830
- this.selections = undefined;
1831
- this.fullscreenbutton = undefined;
1832
- };
1833
- ProductPageComponent.prototype.setInstance = function (event) {
1834
- if (event.detail) {
1835
- this._ione.setInstance(event.detail);
1836
- }
1837
- };
1838
- ProductPageComponent.prototype.handleStartConfiguration = function () {
1839
- this.configuring = true;
1840
- this._changeDetector.detectChanges();
1841
- };
1842
- ProductPageComponent.prototype.showFullScreen = function () {
1843
- this.fullScreen = !this.fullScreen;
1844
- };
1845
- ProductPageComponent.prototype._handleSettingsLoaded = function (loaded) {
1846
- if (loaded) {
1847
- this._ione.initConnection();
1848
- }
1849
- };
1850
- ProductPageComponent.prototype._getArticle = function () {
1851
- return __awaiter(this, void 0, void 0, function () {
1852
- var _this = this;
1853
- return __generator(this, function (_a) {
1854
- if (this._initializedSub) {
1855
- this._initializedSub.unsubscribe();
1856
- }
1857
- this._initializedSub = this._ione.controllerInitialized.subscribe(function (init) { return __awaiter(_this, void 0, void 0, function () {
1858
- var _this = this;
1859
- return __generator(this, function (_a) {
1860
- if (init) {
1861
- this._ione.getFullArticle(this._sku).then(function (article) {
1862
- _this.article = article;
1863
- if (_this.article) {
1864
- _this.configurable = _this.article.goodType === 'B' && (_this.article.isConfigurable || _this.article.isConfigurable === undefined);
1865
- // this.configurable = this.article.goodType === 'B';
1866
- if (_this.configurable) {
1867
- _this.showAddToCart = false;
1868
- _this.currentView = SelectorType.TwoD;
1869
- }
1870
- else {
1871
- _this.showAddToCart = true;
1872
- }
1873
- _this.threeD = _this.article.is3D;
1874
- _this.selectorType = _this.article.selectorTypeCustomer;
1875
- _this._ione.getDeliveryPrognosis(_this.article.goodId).then(function (stockInfo) {
1876
- var stockAndDelivery = stockInfo;
1877
- _this.stockAndDelivery = new StockAndDelivery(0, stockAndDelivery.returnValue ? stockAndDelivery.returnValue : ' ');
1878
- _this._changeDetector.detectChanges();
1879
- });
1880
- _this._changeDetector.detectChanges();
1881
- }
1882
- _this._ione.articleLoaded.next(true);
1883
- });
1884
- }
1885
- return [2 /*return*/];
1886
- });
1887
- }); });
1888
- this.showRelatedProductsPopup = false;
1889
- return [2 /*return*/];
1890
- });
1891
- });
1892
- };
1893
- ProductPageComponent.prototype.openStock = function () {
1894
- this.openStockEvent.emit();
1895
- };
1896
- ProductPageComponent.prototype.handlePopUpChange = function (event) {
1897
- this.showRelatedProductsPopup = event;
1898
- };
1899
- return ProductPageComponent;
1900
- }());
1901
- ProductPageComponent.decorators = [
1902
- { type: i0.Component, args: [{
1903
- selector: 'app-product-page',
1904
- 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\r\n <app-image-carousel\r\n *ngIf=\"!enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [images]=\"article?.images\"\r\n [showRefresh]=\"configurable && threeD\">\r\n </app-image-carousel>\r\n\r\n <app-render-carousel\r\n *ngIf=\"enableRenderCarousel\"\r\n [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\"\r\n [article]=\"article\">\r\n </app-render-carousel>\r\n\r\n <ng-container *ngIf=\"settingsLoaded && this.configurable\">\r\n <threed-configurator\r\n #configurator\r\n 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\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\"\r\n [class.show-selections]=\"configuring\"\r\n [@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 (onAnswersAvailable)=\"appEventService.onAnswersAvailable.next($event.detail)\"\r\n (onReadyToRender)=\"appEventService.onReadyToRender.next($event.detail)\"\r\n (onRenderImageReceived)=\"appEventService.onRenderImageReceived.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 [showAddToCart]=\"showAddToCart\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\r\n [isReturn]=\"isReturn\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n (showRelatedPopup)=\"handlePopUpChange($event)\"\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 [showAddToCart]=\"showAddToCart\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n [externalSource]=\"externalSource\"\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 [externalSource]=\"externalSource\"\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\" *ngIf=\"article\">\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\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n [label]=\"'RELATED_PRODUCTS' | localize\">\r\n </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\r\n *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [externalSource]=\"externalSource\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"4\"\r\n [isSmallModus]=\"false\"\r\n [label]=\"'ALTERNATIVE_PRODUCTS' | localize\">\r\n </app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"showRelatedProductsPopup\">\r\n <co-product-dialog\r\n [mainArticle]=\"article\"\r\n [articles]=\"article?.relatedArticles\"\r\n [refType]=\"1\"\r\n (closeRelatedPopup)=\"handlePopUpChange($event)\"\r\n >\r\n </co-product-dialog>\r\n\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\r\n\r\n </div>\r\n</ng-container>\r\n",
1905
- animations: [
1906
- animations.trigger('toggleFullScreen', [
1907
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
1908
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
1909
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
1910
- ]),
1911
- animations.trigger('toggleTopLeft', [
1912
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
1913
- animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
1914
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
1915
- ]),
1916
- animations.trigger('toggleTopRight', [
1917
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
1918
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
1919
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
1920
- ]),
1921
- animations.trigger('toggleFullScreenRight', [
1922
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
1923
- animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
1924
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out'))
1925
- ]),
1926
- animations.trigger('toggleVisibilityByState', [
1927
- animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
1928
- animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
1929
- animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out'))
1930
- ]),
1931
- animations.trigger('toggleVisibility', [
1932
- animations.state('void', animations.style({ 'opacity': '0' })),
1933
- animations.state('*', animations.style({ 'opacity': '1' })),
1934
- animations.transition('void => *', animations.animate('200ms ease-in-out'))
1935
- ])
1936
- ],
1937
- styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:100%;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:65%;flex-direction:column}.page-wrapper-right{display:flex;width:35%;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}.threed-selections ::ng-deep .co-summary-line{cursor:pointer}.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:none}.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;margin-bottom:10px}.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 10px;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{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"]
1938
- },] }
1939
- ];
1940
- ProductPageComponent.ctorParameters = function () { return [
1941
- { type: ProductConnectorService },
1942
- { type: i0.Renderer2 },
1943
- { type: i0.ChangeDetectorRef },
1944
- { type: IconCacheService },
1945
- { type: ProductSettingsService },
1946
- { type: ProductEventService }
1947
- ]; };
1948
- ProductPageComponent.propDecorators = {
1949
- configurator: [{ type: i0.ViewChild, args: ['configurator', { read: i0.ElementRef },] }],
1950
- selections: [{ type: i0.ViewChild, args: ['selections', { read: i0.ElementRef },] }],
1951
- fullscreenbutton: [{ type: i0.ViewChild, args: ['fullscreenbutton', { read: i0.ElementRef },] }],
1952
- sku: [{ type: i0.Input }],
1953
- settings: [{ type: i0.Input }],
1954
- externalSource: [{ type: i0.Input }],
1955
- createFrozenArticle: [{ type: i0.Input }],
1956
- isReturn: [{ type: i0.Input }],
1957
- showRelatedProductsPopup: [{ type: i0.Input }],
1958
- enableRenderCarousel: [{ type: i0.Input }],
1959
- openStockEvent: [{ type: i0.Output }]
1960
- };
1961
-
1962
- var ProductSelectorTypeComponent = /** @class */ (function () {
1963
- function ProductSelectorTypeComponent(_iconCache, _changeDetector) {
1964
- this._iconCache = _iconCache;
1965
- this._changeDetector = _changeDetector;
1966
- this.type = SelectorType;
1967
- this.icons = IconEnum;
1968
- this.onIconClick = new i0.EventEmitter();
1969
- this.currentTypeChange = new i0.EventEmitter();
1970
- this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);
1971
- this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);
1972
- }
1973
- ProductSelectorTypeComponent.prototype.ngOnInit = function () {
1974
- };
1975
- ProductSelectorTypeComponent.prototype.handleIconClick = function (type) {
1976
- this.currentType = type;
1977
- this.currentTypeChange.next(this.currentType);
1978
- this.onIconClick.next(this.currentType);
1979
- this._changeDetector.detectChanges();
1980
- };
1981
- return ProductSelectorTypeComponent;
1982
- }());
1983
- ProductSelectorTypeComponent.decorators = [
1984
- { type: i0.Component, args: [{
1985
- selector: 'app-product-selector-type',
1986
- template: "\n <div *ngIf=\"show2D || show3D\" class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\n <co-icon *ngIf=\"show2D && !showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show2D && showRenderCarousel\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n\n <co-icon *ngIf=\"show3D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.ThreeD\"\n [iconData]=\"threeDIcon\"\n (click)=\"handleIconClick(type.ThreeD)\"\n ></co-icon>\n ",
1987
- 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"]
1988
- },] }
1989
- ];
1990
- ProductSelectorTypeComponent.ctorParameters = function () { return [
1991
- { type: IconCacheService },
1992
- { type: i0.ChangeDetectorRef }
1993
- ]; };
1994
- ProductSelectorTypeComponent.propDecorators = {
1995
- show2D: [{ type: i0.Input }],
1996
- show3D: [{ type: i0.Input }],
1997
- showRenderCarousel: [{ type: i0.Input }],
1998
- currentType: [{ type: i0.Input }],
1999
- onIconClick: [{ type: i0.Output }],
2000
- currentTypeChange: [{ type: i0.Output }]
2001
- };
2002
-
2003
- // A pipe for localizing string values in view templates.
2004
- var LocalizePipe = /** @class */ (function () {
2005
- function LocalizePipe(_dictionaryService) {
2006
- this._dictionaryService = _dictionaryService;
2007
- }
2008
- LocalizePipe.prototype.transform = function (value, upperCaseFirst, replace) {
2009
- var _a;
2010
- if (upperCaseFirst === void 0) { upperCaseFirst = true; }
2011
- if (replace === void 0) { replace = []; }
2012
- if (!value) {
2013
- return '';
2014
- }
2015
- replace = replace ? replace : [];
2016
- if (!Array.isArray(replace)) {
2017
- replace = [replace];
2018
- }
2019
- return (_a = this._dictionaryService).get.apply(_a, __spreadArray([value, upperCaseFirst], __read(replace)));
2020
- };
2021
- return LocalizePipe;
2022
- }());
2023
- LocalizePipe.decorators = [
2024
- { type: i0.Pipe, args: [{
2025
- name: 'localize'
2026
- },] }
2027
- ];
2028
- LocalizePipe.ctorParameters = function () { return [
2029
- { type: DictionaryService }
2030
- ]; };
2031
-
2032
- var PipeModule = /** @class */ (function () {
2033
- function PipeModule() {
2034
- }
2035
- return PipeModule;
2036
- }());
2037
- PipeModule.decorators = [
2038
- { type: i0.NgModule, args: [{
2039
- declarations: [
2040
- LocalizePipe
2041
- ],
2042
- providers: [
2043
- LocalizePipe
2044
- ],
2045
- exports: [
2046
- LocalizePipe
2047
- ]
2048
- },] }
2049
- ];
2050
-
2051
- // import {IconModule} from '@colijnit/corecomponents';
2052
- var ProductSelectorTypeModule = /** @class */ (function () {
2053
- function ProductSelectorTypeModule() {
2054
- }
2055
- return ProductSelectorTypeModule;
2056
- }());
2057
- ProductSelectorTypeModule.decorators = [
2058
- { type: i0.NgModule, args: [{
2059
- imports: [
2060
- common.CommonModule,
2061
- PipeModule,
2062
- corecomponents.IconModule,
2063
- /*,
2064
- IconModule*/
2065
- ],
2066
- declarations: [
2067
- ProductSelectorTypeComponent
2068
- ],
2069
- exports: [
2070
- ProductSelectorTypeComponent
2071
- ]
2072
- },] }
2073
- ];
2074
-
2075
- var ImageViewModel = /** @class */ (function () {
2076
- function ImageViewModel() {
2077
- }
2078
- return ImageViewModel;
2079
- }());
2080
- var ImageCarouselComponent = /** @class */ (function () {
2081
- function ImageCarouselComponent(_ione, _appEventService, _changeDetector, _domSanitizer) {
2082
- var _this = this;
2083
- this._ione = _ione;
2084
- this._appEventService = _appEventService;
2085
- this._changeDetector = _changeDetector;
2086
- this._domSanitizer = _domSanitizer;
2087
- this.isPopupOpen = false;
2088
- this.showRefresh = false;
2089
- this.resizing = false;
2090
- this.imageViewModels = [];
2091
- this.showLoader = false;
2092
- this._currentIndex = 0;
2093
- this._images = [];
2094
- this._subs = [];
2095
- this._resizeCanvasHeight = 500;
2096
- this._subs.push(this._appEventService.onRenderStarted.subscribe(function () {
2097
- _this.showLoader = true;
2098
- _this._changeDetector.detectChanges();
2099
- setTimeout(function () {
2100
- _this.showLoader = false;
2101
- _this._changeDetector.detectChanges();
2102
- }, 10000);
2103
- }), this._appEventService.onDraftRenderImageReceived.subscribe(function (event) {
2104
- if (event && event.detail) {
2105
- if (_this._images[0] instanceof coDocument_bo.CoDocument) {
2106
- _this._images.unshift(event.detail);
2107
- }
2108
- else {
2109
- _this._images[0] = event.detail;
2110
- }
2111
- _this._loadAndRescaleImages();
2112
- }
2113
- _this.showLoader = false;
2114
- _this._changeDetector.detectChanges();
2115
- }));
2116
- }
2117
- // Close on ESC
2118
- ImageCarouselComponent.prototype.onEsc = function () {
2119
- if (this.isPopupOpen) {
2120
- this.closePopup();
2121
- }
2122
- };
2123
- Object.defineProperty(ImageCarouselComponent.prototype, "images", {
2124
- get: function () {
2125
- return this._images;
2126
- },
2127
- set: function (value) {
2128
- if (value && value.length > 0) {
2129
- this._images = this._filterValidImages(value);
2130
- this._loadAndRescaleImages();
2131
- this._changeDetector.detectChanges();
2132
- }
2133
- },
2134
- enumerable: false,
2135
- configurable: true
2136
- });
2137
- ImageCarouselComponent.prototype.handleWindowResize = function () {
2138
- var _this = this;
2139
- this.resizing = true;
2140
- this._scrollCarouselToIndex();
2141
- clearTimeout(this._resizeTimer);
2142
- this._resizeTimer = setTimeout(function () {
2143
- _this.resizing = false;
2144
- }, 200);
2145
- };
2146
- ImageCarouselComponent.prototype.gotoNextSlide = function () {
2147
- this.currentIndex++;
2148
- };
2149
- ImageCarouselComponent.prototype.gotoPrevSlide = function () {
2150
- this.currentIndex--;
2151
- };
2152
- ImageCarouselComponent.prototype.isCurrentIndex = function (index) {
2153
- return this.currentIndex === index;
2154
- };
2155
- Object.defineProperty(ImageCarouselComponent.prototype, "currentIndex", {
2156
- get: function () {
2157
- return this._currentIndex;
2158
- },
2159
- set: function (value) {
2160
- this._currentIndex = value;
2161
- this._scrollCarouselToIndex();
2162
- },
2163
- enumerable: false,
2164
- configurable: true
2165
- });
2166
- ImageCarouselComponent.prototype.ngOnDestroy = function () {
2167
- this.carousel = undefined;
2168
- this._subs.forEach(function (s) { return s.unsubscribe(); });
2169
- };
2170
- ImageCarouselComponent.prototype.handleThumbClick = function (index) {
2171
- this.currentIndex = index;
2172
- };
2173
- ImageCarouselComponent.prototype.onForceRenderImage = function () {
2174
- this._appEventService.onForceRenderImage.next();
2175
- };
2176
- ImageCarouselComponent.prototype.handleShowImage = function (imageViewModel) {
2177
- if (imageViewModel && imageViewModel.originalSource) {
2178
- this.selectedImage = imageViewModel;
2179
- this.isPopupOpen = true;
2180
- this._changeDetector.markForCheck();
2181
- }
2182
- };
2183
- ImageCarouselComponent.prototype.closePopup = function () {
2184
- this.isPopupOpen = false;
2185
- this.selectedImage = undefined;
2186
- this._changeDetector.markForCheck();
2187
- };
2188
- ImageCarouselComponent.prototype._filterValidImages = function (value) {
2189
- if (!value) {
2190
- return [];
2191
- }
2192
- return value.filter(function (doc) {
2193
- var pattern = /\.(jpg|jpeg|png|gif|bmp|tiff|webp)$/i;
2194
- return typeof doc === 'string' || (pattern.test(doc.fileName) || !!doc.filePath);
2195
- });
2196
- };
2197
- ImageCarouselComponent.prototype._loadAndRescaleImages = function () {
2198
- var _this = this;
2199
- this.imageViewModels.length = 0;
2200
- if (this._images) {
2201
- this._images.forEach(function (i) {
2202
- var imageViewModel = new ImageViewModel();
2203
- imageViewModel.image = i;
2204
- if (typeof i === 'string') { // is a rendered image coming from configurator
2205
- _this._resizeAndSanitizeSource(i, imageViewModel);
2206
- }
2207
- else {
2208
- if (i.filePath) {
2209
- _this._resizeAndSanitizeSource(i.filePath, imageViewModel);
2210
- }
2211
- else if (i.documentBody) {
2212
- _this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);
2213
- }
2214
- else {
2215
- _this._ione.getDocumentContent(i.documentId, false).then(function (content) {
2216
- if (content) {
2217
- i.documentBody = content.documentContent;
2218
- _this._resizeAndSanitizeSource(i.documentBodyAsDataUri, imageViewModel);
2219
- _this._changeDetector.detectChanges();
2220
- }
2221
- });
2222
- }
2223
- }
2224
- _this.imageViewModels.push(imageViewModel);
2225
- _this._changeDetector.detectChanges();
2226
- });
2227
- }
2228
- };
2229
- ImageCarouselComponent.prototype._resizeAndSanitizeSource = function (source, imageViewModel) {
2230
- var _this = this;
2231
- var resizeCanvas = document.createElement('canvas');
2232
- var ctx = resizeCanvas.getContext('2d');
2233
- var img = document.createElement('img');
2234
- img.crossOrigin = 'anonymous';
2235
- img.onload = function () {
2236
- ctx.imageSmoothingEnabled = true;
2237
- ctx.imageSmoothingQuality = 'high';
2238
- var ow = img.width;
2239
- var oh = img.height;
2240
- var aspect = ow / oh;
2241
- var newW = _this._resizeCanvasHeight;
2242
- var newH = _this._resizeCanvasHeight;
2243
- if (ow > oh) {
2244
- newH = _this._resizeCanvasHeight / aspect;
2245
- }
2246
- else {
2247
- newW = _this._resizeCanvasHeight * aspect;
2248
- }
2249
- resizeCanvas.width = Math.round(newW);
2250
- resizeCanvas.height = Math.round(newH);
2251
- // Ensure transparent background before drawing
2252
- ctx.clearRect(0, 0, resizeCanvas.width, resizeCanvas.height);
2253
- ctx.drawImage(img, 0, 0, resizeCanvas.width, resizeCanvas.height);
2254
- var mime = _this._detectPreferredMime(source);
2255
- var resizedSource = mime === 'image/jpeg'
2256
- ? resizeCanvas.toDataURL('image/jpeg', 0.92) // only if original was JPEG
2257
- : resizeCanvas.toDataURL(mime); // PNG/WebP keep alpha
2258
- imageViewModel.source = _this._domSanitizer.bypassSecurityTrustUrl(resizedSource);
2259
- imageViewModel.originalSource = source;
2260
- _this._changeDetector.detectChanges();
2261
- };
2262
- img.src = source;
2263
- };
2264
- ImageCarouselComponent.prototype._detectPreferredMime = function (source) {
2265
- // Data URI check
2266
- var m = source.match(/^data:(image\/[a-zA-Z+.-]+);base64,/);
2267
- if (m) {
2268
- var t = m[1].toLowerCase();
2269
- if (t === 'image/png' || t === 'image/webp' || t === 'image/jpeg')
2270
- return t;
2271
- }
2272
- var lower = source.toLowerCase();
2273
- if (lower.endsWith('.png'))
2274
- return 'image/png';
2275
- if (lower.endsWith('.webp'))
2276
- return 'image/webp';
2277
- if (lower.endsWith('.jpg') || lower.endsWith('.jpeg'))
2278
- return 'image/jpeg';
2279
- return 'image/png';
2280
- };
2281
- ImageCarouselComponent.prototype._scrollCarouselToIndex = function () {
2282
- if (this.currentIndex > -1 && this.currentIndex <= this.images.length) {
2283
- var movePx = this.currentIndex * this.carousel.nativeElement.clientWidth;
2284
- if (this.carousel && this.carousel.nativeElement) {
2285
- this.carousel.nativeElement.scrollLeft = movePx;
2286
- // this.carousel.nativeElement.scrollTo({
2287
- // left: movePx,
2288
- // behavior: 'smooth'
2289
- // });
2290
- }
2291
- }
2292
- };
2293
- return ImageCarouselComponent;
2294
- }());
2295
- ImageCarouselComponent.decorators = [
2296
- { type: i0.Component, args: [{
2297
- selector: 'app-image-carousel',
2298
- template: "\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"true\" *ngIf=\"showLoader\"></co-loader>\n <div #carousel class=\"inner-carousel\">\n <!-- This has been taken out of the for loop to prevent flashing images when updating. -->\n <div *ngIf=\"imageViewModels[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\" (click)=\"handleShowImage(imageViewModels[0])\">\n <img [src]=\"imageViewModels[0].source\">\n </div>\n <div *ngFor=\"let imageViewModel of imageViewModels.slice(1); let index = index\" class=\"carousel-item\"\n [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\" (click)=\"handleShowImage(imageViewModel)\">\n <img [src]=\"imageViewModel.source\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\" *ngIf=\"currentIndex > 0\"></div>\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\" *ngIf=\"currentIndex < images.length - 1\"></div>\n </div>\n </div>\n <!--\n <co-icon class=\"selector-type-icon refresh-button\" [iconData]=\"iconCache.getIcon(icons.Refresh)\" (click)=\"onForceRenderImage()\" [class.loading]=\"showLoader\" *ngIf=\"showRefresh\"></co-icon>\n -->\n </div>\n\n <div id=\"product_page_carousel_thumbs\">\n <co-scroll-container class=\"scroll-container\" *ngIf=\"imageViewModels && imageViewModels.length > 1\">\n <div *ngFor=\"let imageViewModel of imageViewModels; let index = index\" class=\"carousel-thumb\"\n [class.active]=\"index === currentIndex\">\n <img [src]=\"imageViewModel.source\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n </div>\n <!-- Modal (real popup) -->\n <div\n class=\"image-modal\"\n *ngIf=\"isPopupOpen\"\n (click)=\"closePopup()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Image preview\"\n >\n <div class=\"image-modal__content\" (click)=\"$event.stopPropagation()\">\n <button\n class=\"image-modal__close\"\n type=\"button\"\n aria-label=\"Close\"\n (click)=\"closePopup()\"\n >\n \u00D7\n </button>\n\n <img [src]=\"selectedImage?.originalSource\" alt=\"Image preview\" />\n </div>\n </div>\n ",
2299
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
2300
- 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;cursor:zoom-in;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}.image-modal{position:fixed;inset:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000}.image-modal__content{position:relative;max-width:90vw;max-height:90vh}.image-modal__content img{max-width:90vw;max-height:90vh;-o-object-fit:contain;object-fit:contain;display:block}.image-modal__close{position:fixed;top:15px;right:30px;background:transparent;border:none;color:#fff;font-size:60px;line-height:1;cursor:pointer}@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"]
2301
- },] }
2302
- ];
2303
- ImageCarouselComponent.ctorParameters = function () { return [
2304
- { type: ProductConnectorService },
2305
- { type: ProductEventService },
2306
- { type: i0.ChangeDetectorRef },
2307
- { type: i1$1.DomSanitizer }
2308
- ]; };
2309
- ImageCarouselComponent.propDecorators = {
2310
- carousel: [{ type: i0.ViewChild, args: ['carousel', { read: i0.ElementRef },] }],
2311
- onEsc: [{ type: i0.HostListener, args: ['document:keydown.escape',] }],
2312
- showRefresh: [{ type: i0.Input }],
2313
- images: [{ type: i0.Input }],
2314
- handleWindowResize: [{ type: i0.HostListener, args: ['window:resize',] }],
2315
- gotoNextSlide: [{ type: i0.HostListener, args: ['swipeleft',] }],
2316
- gotoPrevSlide: [{ type: i0.HostListener, args: ['swiperight',] }],
2317
- resizing: [{ type: i0.HostBinding, args: ['class.resizing',] }]
2318
- };
2319
-
2320
- var ImageCarouselModule = /** @class */ (function () {
2321
- function ImageCarouselModule() {
2322
- }
2323
- return ImageCarouselModule;
2324
- }());
2325
- ImageCarouselModule.decorators = [
2326
- { type: i0.NgModule, args: [{
2327
- imports: [
2328
- common.CommonModule,
2329
- corecomponents.LoaderModule,
2330
- // IconModule,
2331
- corecomponents.ScrollContainerModule
2332
- ],
2333
- declarations: [
2334
- ImageCarouselComponent
2335
- ],
2336
- exports: [
2337
- ImageCarouselComponent
2338
- ]
2339
- },] }
2340
- ];
2341
-
2342
- var ProductDescriptionComponent = /** @class */ (function () {
2343
- function ProductDescriptionComponent() {
2344
- }
2345
- ProductDescriptionComponent.prototype.ngOnInit = function () {
2346
- };
2347
- return ProductDescriptionComponent;
2348
- }());
2349
- ProductDescriptionComponent.decorators = [
2350
- { type: i0.Component, args: [{
2351
- selector: 'app-product-description',
2352
- template: "\n <div class=\"pd-title-wrapper\">\n <span class=\"pd-description\" [textContent]=\"article?.descriptionRetail\" *ngIf=\"article?.descriptionRetail\"></span>\n <span class=\"pd-sku\" [textContent]=\"article?.articleNr\" *ngIf=\"article?.articleNr\"></span>\n </div>\n ",
2353
- 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"]
2354
- },] }
2355
- ];
2356
- ProductDescriptionComponent.ctorParameters = function () { return []; };
2357
- ProductDescriptionComponent.propDecorators = {
2358
- article: [{ type: i0.Input }]
2359
- };
2360
-
2361
- var ProductDescriptionModule = /** @class */ (function () {
2362
- function ProductDescriptionModule() {
2363
- }
2364
- return ProductDescriptionModule;
2365
- }());
2366
- ProductDescriptionModule.decorators = [
2367
- { type: i0.NgModule, args: [{
2368
- imports: [
2369
- common.CommonModule
2370
- ],
2371
- declarations: [
2372
- ProductDescriptionComponent
2373
- ],
2374
- exports: [
2375
- ProductDescriptionComponent
2376
- ]
2377
- },] }
2378
- ];
2379
-
2380
- var BitUtils = /** @class */ (function () {
2381
- function BitUtils() {
2382
- }
2383
- BitUtils.IsShortDescription = function (bit) {
2384
- return (1 & bit) > 0;
2385
- };
2386
- BitUtils.IsFullDescription = function (bit) {
2387
- return (2 & bit) > 0;
2388
- };
2389
- BitUtils.IsMetaTitle = function (bit) {
2390
- return (4 & bit) > 0;
2391
- };
2392
- BitUtils.IsMetaDescription = function (bit) {
2393
- return (8 & bit) > 0;
2394
- };
2395
- BitUtils.IsMetaKeys = function (bit) {
2396
- return (16 & bit) > 0;
2397
- };
2398
- return BitUtils;
2399
- }());
2400
-
2401
- var ProductAdditionalDescriptionComponent = /** @class */ (function () {
2402
- function ProductAdditionalDescriptionComponent(_appEventService) {
2403
- this._appEventService = _appEventService;
2404
- }
2405
- Object.defineProperty(ProductAdditionalDescriptionComponent.prototype, "article", {
2406
- get: function () {
2407
- return this._article;
2408
- },
2409
- set: function (value) {
2410
- this._article = value;
2411
- if (this._article) {
2412
- this.description = this.article.additionalDescription;
2413
- this._prepareDescription();
2414
- }
2415
- },
2416
- enumerable: false,
2417
- configurable: true
2418
- });
2419
- ProductAdditionalDescriptionComponent.prototype.ngOnInit = function () {
2420
- };
2421
- ProductAdditionalDescriptionComponent.prototype.onReadMore = function () {
2422
- this._appEventService.onUpdateProductInfoTab.next(0);
2423
- };
2424
- ProductAdditionalDescriptionComponent.prototype._prepareDescription = function () {
2425
- var _this = this;
2426
- this.description = '';
2427
- if (this.article.texts && this.article.texts.length > 0) {
2428
- this.article.texts.forEach(function (txt) {
2429
- if (BitUtils.IsShortDescription(txt.publication)) {
2430
- _this.description += txt.text;
2431
- }
2432
- });
2433
- this.description = this.description.replace(/<[^>]*>?/gm, '');
2434
- if (this.description.length > 250) {
2435
- this.description = this.description.substr(0, 250) + ' [..]';
2436
- }
2437
- }
2438
- };
2439
- return ProductAdditionalDescriptionComponent;
2440
- }());
2441
- ProductAdditionalDescriptionComponent.decorators = [
2442
- { type: i0.Component, args: [{
2443
- selector: 'app-product-additional-description',
2444
- template: "\n <ng-container *ngIf=\"description !== ''\">\n <div class=\"pd-additional-description\">\n <p [innerHTML]=\"description\"></p>\n <button class=\"pd-read-more-btn\" [textContent]=\"'READ_MORE' | localize\" (click)=\"onReadMore()\"></button>\n </div>\n </ng-container>\n ",
2445
- 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"]
2446
- },] }
2447
- ];
2448
- ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
2449
- { type: ProductEventService }
2450
- ]; };
2451
- ProductAdditionalDescriptionComponent.propDecorators = {
2452
- article: [{ type: i0.Input }]
2453
- };
2454
-
2455
- var ProductAdditionalDescriptionModule = /** @class */ (function () {
2456
- function ProductAdditionalDescriptionModule() {
2457
- }
2458
- return ProductAdditionalDescriptionModule;
2459
- }());
2460
- ProductAdditionalDescriptionModule.decorators = [
2461
- { type: i0.NgModule, args: [{
2462
- imports: [
2463
- common.CommonModule,
2464
- PipeModule
2465
- ],
2466
- declarations: [
2467
- ProductAdditionalDescriptionComponent
2468
- ],
2469
- exports: [
2470
- ProductAdditionalDescriptionComponent
2471
- ]
2472
- },] }
2473
- ];
2474
-
2475
- var ProductPriceComponent = /** @class */ (function () {
2476
- function ProductPriceComponent(_changeDetector) {
2477
- this._changeDetector = _changeDetector;
2478
- this.showFromPrice = false;
2479
- this._configurable = false;
2480
- }
2481
- Object.defineProperty(ProductPriceComponent.prototype, "pricing", {
2482
- get: function () {
2483
- return this._pricing;
2484
- },
2485
- set: function (value) {
2486
- this._pricing = value;
2487
- this._setPrices();
2488
- },
2489
- enumerable: false,
2490
- configurable: true
2491
- });
2492
- Object.defineProperty(ProductPriceComponent.prototype, "configurable", {
2493
- set: function (value) {
2494
- this._configurable = value;
2495
- this._setPrices();
2496
- },
2497
- enumerable: false,
2498
- configurable: true
2499
- });
2500
- ProductPriceComponent.prototype.ngOnInit = function () {
2501
- };
2502
- ProductPriceComponent.prototype._setPrices = function () {
2503
- if (this._pricing) {
2504
- this.valutaSign = this._getSign(this._pricing.retailCurrency);
2505
- if (this._configurable) {
2506
- this.fromPrice = this._pricing.retailBasePrice ? this._pricing.retailBasePrice : this._pricing.priceBaseline;
2507
- this.fromLabel = this._pricing.retailBasePrice ? 'PRICE' : 'FROM';
2508
- this.toPrice = undefined;
2509
- this.toLabel = '';
2510
- }
2511
- else {
2512
- var hasSuggested = this._pricing.retailSuggestedPrice !== undefined && this._pricing.retailSuggestedPrice !== null;
2513
- this.fromPrice = hasSuggested ? this._pricing.retailSuggestedPrice : this._pricing.retailBasePrice;
2514
- this.fromLabel = hasSuggested ? 'Was' : 'PRICE';
2515
- // Always set toPrice to base price
2516
- this.toPrice = this._pricing.retailBasePrice;
2517
- this.toLabel = hasSuggested ? 'IS_NOW' : 'PRICE';
2518
- }
2519
- this._changeDetector.detectChanges();
2520
- }
2521
- };
2522
- ProductPriceComponent.prototype._getSign = function (currency) {
2523
- switch (currency) {
2524
- case 'EUR':
2525
- return '€';
2526
- default:
2527
- return '€';
2528
- }
2529
- };
2530
- return ProductPriceComponent;
2531
- }());
2532
- ProductPriceComponent.decorators = [
2533
- { type: i0.Component, args: [{
2534
- selector: 'app-product-price',
2535
- template: "\n <div *ngIf=\"toPrice\">\n <div class=\"price-wrapper\" *ngIf=\"fromPrice > toPrice\">\n <div class=\"from-price-label\" [textContent]=\"fromLabel | localize\"></div>\n <div class=\"from-price\" [textContent]=\"fromPrice | priceDisplay: valutaSign\"></div>\n </div>\n <div class=\"price-wrapper\">\n <div class=\"to-price-label\" [textContent]=\"toLabel | localize\"></div>\n <div class=\"to-price\" [textContent]=\"toPrice | priceDisplay: valutaSign\"></div>\n </div>\n </div>\n ",
2536
- 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"]
2537
- },] }
2538
- ];
2539
- ProductPriceComponent.ctorParameters = function () { return [
2540
- { type: i0.ChangeDetectorRef }
2541
- ]; };
2542
- ProductPriceComponent.propDecorators = {
2543
- pricing: [{ type: i0.Input }],
2544
- configurable: [{ type: i0.Input }]
2545
- };
2546
-
2547
- var ProductPriceModule = /** @class */ (function () {
2548
- function ProductPriceModule() {
2549
- }
2550
- return ProductPriceModule;
2551
- }());
2552
- ProductPriceModule.decorators = [
2553
- { type: i0.NgModule, args: [{
2554
- imports: [
2555
- common.CommonModule,
2556
- PipeModule,
2557
- corecomponents.PriceDisplayPipeModule
2558
- ],
2559
- declarations: [
2560
- ProductPriceComponent
2561
- ],
2562
- exports: [
2563
- ProductPriceComponent
2564
- ]
2565
- },] }
2566
- ];
2567
-
2568
- var ProductAddtocartComponent = /** @class */ (function () {
2569
- function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService, _productConnectorAdapterService) {
2570
- this.iconCache = iconCache;
2571
- this._ioneControllerService = _ioneControllerService;
2572
- this._appEventService = _appEventService;
2573
- this._settingsService = _settingsService;
2574
- this._productConnectorAdapterService = _productConnectorAdapterService;
2575
- this.icon = IconEnum;
2576
- this.createFrozenArticle = true;
2577
- this.configurable = false;
2578
- this.configuring = false;
2579
- this.showAddToCart = false;
2580
- this.isReturn = false;
2581
- this.fullscreen = false;
2582
- this.startConfiguration = new i0.EventEmitter();
2583
- this.addToCartClick = new i0.EventEmitter();
2584
- this.addToQuoteClick = new i0.EventEmitter();
2585
- this.showRelatedPopup = new i0.EventEmitter();
2586
- this.showQuoteButton = false;
2587
- this._quantity = 1;
2588
- }
2589
- Object.defineProperty(ProductAddtocartComponent.prototype, "quantity", {
2590
- get: function () {
2591
- return this._quantity;
2592
- },
2593
- set: function (value) {
2594
- if (this.isReturn) {
2595
- if (this._quantity === 1) {
2596
- this._quantity = -1;
2597
- }
2598
- else {
2599
- this._quantity = value;
2600
- }
2601
- }
2602
- else {
2603
- this._quantity = Math.max(1, value);
2604
- }
2605
- },
2606
- enumerable: false,
2607
- configurable: true
2608
- });
2609
- ProductAddtocartComponent.prototype.ngOnInit = function () {
2610
- };
2611
- ProductAddtocartComponent.prototype.ngOnDestroy = function () {
2612
- this.addToCartButton = undefined;
2613
- };
2614
- ProductAddtocartComponent.prototype.handleAddToCartClick = function (quantity) {
2615
- return __awaiter(this, void 0, void 0, function () {
2616
- var article, article, article;
2617
- return __generator(this, function (_a) {
2618
- switch (_a.label) {
2619
- case 0:
2620
- if (!this.createFrozenArticle) return [3 /*break*/, 10];
2621
- if (!(this.article.goodType === 'B')) return [3 /*break*/, 5];
2622
- if (!this.article.isConfigurable) return [3 /*break*/, 2];
2623
- return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
2624
- case 1:
2625
- article = _a.sent();
2626
- if (article) {
2627
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2628
- }
2629
- return [3 /*break*/, 4];
2630
- case 2: return [4 /*yield*/, this._handleGeneratedArticleDirectly(quantity)];
2631
- case 3:
2632
- _a.sent();
2633
- _a.label = 4;
2634
- case 4: return [3 /*break*/, 9];
2635
- case 5:
2636
- article = void 0;
2637
- if (!!!this.externalSource) return [3 /*break*/, 7];
2638
- return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
2639
- case 6:
2640
- article = _a.sent();
2641
- return [3 /*break*/, 8];
2642
- case 7:
2643
- article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
2644
- _a.label = 8;
2645
- case 8:
2646
- if (article) {
2647
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2648
- }
2649
- _a.label = 9;
2650
- case 9: return [3 /*break*/, 14];
2651
- case 10:
2652
- if (!(this.article.goodType === 'B')) return [3 /*break*/, 13];
2653
- if (!!this.article.isConfigurable) return [3 /*break*/, 12];
2654
- return [4 /*yield*/, this._handleGeneratedArticleDirectly(quantity)];
2655
- case 11:
2656
- _a.sent();
2657
- _a.label = 12;
2658
- case 12: return [3 /*break*/, 14];
2659
- case 13:
2660
- article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(this.article);
2661
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2662
- _a.label = 14;
2663
- case 14: return [2 /*return*/];
2664
- }
2665
- });
2666
- });
2667
- };
2668
- ProductAddtocartComponent.prototype.handleAddToQuoteClick = function (quantity) {
2669
- return __awaiter(this, void 0, void 0, function () {
2670
- var _a, _b;
2671
- return __generator(this, function (_c) {
2672
- switch (_c.label) {
2673
- case 0:
2674
- _b = (_a = this._appEventService.onAddToQuote).next;
2675
- return [4 /*yield*/, this._getJSONFromArticleObject({ article: this.article, quantity: quantity })];
2676
- case 1:
2677
- _b.apply(_a, [_c.sent()]);
2678
- return [2 /*return*/];
2679
- }
2680
- });
2681
- });
2682
- };
2683
- ProductAddtocartComponent.prototype._getJSONFromArticleObject = function (article) {
2684
- return __awaiter(this, void 0, void 0, function () {
2685
- var configuratorStatistics;
2686
- return __generator(this, function (_a) {
2687
- switch (_a.label) {
2688
- case 0:
2689
- configuratorStatistics = new configuratorStatisticsEnvironment.ConfiguratorStatisticsEnvironment();
2690
- configuratorStatistics.userType = 'iOneProductPage';
2691
- configuratorStatistics.transactionType = 'Sales';
2692
- configuratorStatistics.actionDomain = 'bundle';
2693
- configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
2694
- configuratorStatistics.webHost = window.location.host;
2695
- configuratorStatistics.bundleHost = window.location.host;
2696
- return [4 /*yield*/, this._ioneControllerService.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics)];
2697
- case 1: return [2 /*return*/, _a.sent()];
2698
- }
2699
- });
2700
- });
2701
- };
2702
- ProductAddtocartComponent.prototype._handleGeneratedArticleDirectly = function (quantity) {
2703
- return __awaiter(this, void 0, void 0, function () {
2704
- var generatedGoodId, articleFull, article;
2705
- return __generator(this, function (_a) {
2706
- switch (_a.label) {
2707
- case 0: return [4 /*yield*/, this._getGeneratedArtDirectly(this.article.goodId)];
2708
- case 1:
2709
- generatedGoodId = _a.sent();
2710
- if (!generatedGoodId) return [3 /*break*/, 3];
2711
- return [4 /*yield*/, this._productConnectorAdapterService.getArticleFullObject(generatedGoodId, true)];
2712
- case 2:
2713
- articleFull = _a.sent();
2714
- article = this._ioneControllerService.convertArticleFullObjectToArticleExtended(articleFull);
2715
- this._appEventService.onAddToCart.next({ article: article, quantity: quantity });
2716
- _a.label = 3;
2717
- case 3: return [2 /*return*/];
2718
- }
2719
- });
2720
- });
2721
- };
2722
- ProductAddtocartComponent.prototype._getGeneratedArtDirectly = function (goodId) {
2723
- return __awaiter(this, void 0, void 0, function () {
2724
- return __generator(this, function (_a) {
2725
- switch (_a.label) {
2726
- case 0: return [4 /*yield*/, this._ioneControllerService.getGeneratedArtDirectly(goodId, true)];
2727
- case 1: return [2 /*return*/, _a.sent()];
2728
- }
2729
- });
2730
- });
2731
- };
2732
- return ProductAddtocartComponent;
2733
- }());
2734
- ProductAddtocartComponent.decorators = [
2735
- { type: i0.Component, args: [{
2736
- selector: 'app-product-addtocart',
2737
- template: "\n <div class=\"atc-wrapper\">\n <ng-container *ngIf=\"isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"-100\" horizontal></co-number-picker>\n </ng-container>\n\n <ng-container *ngIf=\"!isReturn\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n </ng-container>\n\n <div class=\"button-wrapper\" *ngIf=\"configurable\">\n <co-button class=\"configure-button\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n </div>\n <div class=\"button-wrapper\" *ngIf=\"showAddToCart && !configurable\">\n <co-button #addtocartbutton class=\"cart-button\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n </div>\n ",
2738
- 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"]
2739
- },] }
2740
- ];
2741
- ProductAddtocartComponent.ctorParameters = function () { return [
2742
- { type: IconCacheService },
2743
- { type: ProductConnectorService },
2744
- { type: ProductEventService },
2745
- { type: ProductSettingsService },
2746
- { type: ProductConnectorAdapterService }
2747
- ]; };
2748
- ProductAddtocartComponent.propDecorators = {
2749
- addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],
2750
- article: [{ type: i0.Input }],
2751
- externalSource: [{ type: i0.Input }],
2752
- createFrozenArticle: [{ type: i0.Input }],
2753
- configurable: [{ type: i0.Input }],
2754
- configuring: [{ type: i0.Input }],
2755
- showAddToCart: [{ type: i0.Input }],
2756
- isReturn: [{ type: i0.Input }],
2757
- fullscreen: [{ type: i0.HostBinding, args: ['class.full-screen',] }, { type: i0.Input }],
2758
- quantity: [{ type: i0.Input }],
2759
- startConfiguration: [{ type: i0.Output }],
2760
- addToCartClick: [{ type: i0.Output }],
2761
- addToQuoteClick: [{ type: i0.Output }],
2762
- showRelatedPopup: [{ type: i0.Output }]
2763
- };
2764
-
2765
- var ProductAddtocartModule = /** @class */ (function () {
2766
- function ProductAddtocartModule() {
2767
- }
2768
- return ProductAddtocartModule;
2769
- }());
2770
- ProductAddtocartModule.decorators = [
2771
- { type: i0.NgModule, args: [{
2772
- imports: [
2773
- common.CommonModule,
2774
- corecomponents.NumberPickerModule,
2775
- corecomponents.ButtonModule,
2776
- PipeModule,
2777
- corecomponents_v12.LoaderModule
2778
- ],
2779
- declarations: [
2780
- ProductAddtocartComponent
2781
- ],
2782
- exports: [
2783
- ProductAddtocartComponent
2784
- ]
2785
- },] }
2786
- ];
2787
-
2788
- var ArticleViewModel = /** @class */ (function () {
2789
- function ArticleViewModel(article, imageData) {
2790
- this.article = article;
2791
- if (imageData) {
2792
- this.imageData = imageData;
2793
- }
2794
- }
2795
- return ArticleViewModel;
2796
- }());
2797
- var ProductRelatedComponent = /** @class */ (function () {
2798
- function ProductRelatedComponent(_iOne, _appEventService, _productConnectorAdapterService, _settingsService) {
2799
- this._iOne = _iOne;
2800
- this._appEventService = _appEventService;
2801
- this._productConnectorAdapterService = _productConnectorAdapterService;
2802
- this._settingsService = _settingsService;
2803
- this.isSmallModus = true;
2804
- this.createFrozenArticle = true;
2805
- this.articleViewModels = [];
2806
- this._articles = [];
2807
- }
2808
- Object.defineProperty(ProductRelatedComponent.prototype, "articles", {
2809
- get: function () {
2810
- return this._articles;
2811
- },
2812
- set: function (value) {
2813
- var _this = this;
2814
- if (value) {
2815
- if (this.refType && this.refType !== undefined) {
2816
- if (value.length > 0) {
2817
- value.forEach(function (x) {
2818
- if (x.refType === _this.refType) {
2819
- _this._articles.push(x);
2820
- }
2821
- });
2822
- }
2823
- }
2824
- else {
2825
- this._articles = value;
2826
- }
2827
- this.articleViewModels.length = 0;
2828
- this._articles.forEach(function (a) { return _this.articleViewModels.push(new ArticleViewModel(a)); });
2829
- this._loadImages();
2830
- }
2831
- },
2832
- enumerable: false,
2833
- configurable: true
2834
- });
2835
- ProductRelatedComponent.prototype.handleContentClick = function (article) {
2836
- this._appEventService.onAlternativeClick.next(article);
2837
- };
2838
- ProductRelatedComponent.prototype.handleAddToCartClick = function (article) {
2839
- return __awaiter(this, void 0, void 0, function () {
2840
- var quantity, articleFull, article_1, article_2;
2841
- return __generator(this, function (_a) {
2842
- switch (_a.label) {
2843
- case 0:
2844
- quantity = 1;
2845
- return [4 /*yield*/, this._productConnectorAdapterService.getArticleFullObject(article.goodId, true)];
2846
- case 1:
2847
- articleFull = _a.sent();
2848
- if (articleFull) {
2849
- if (this.createFrozenArticle) {
2850
- article_1 = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
2851
- this._appEventService.onAddToCart.next({ article: article_1, quantity: quantity });
2852
- // this._appEventService.onAddToCart.next({ article: await this._getJSONFromArticleObject({article: articleFull, quantity: quantity}), quantity: quantity });
2853
- }
2854
- else {
2855
- article_2 = this._iOne.convertArticleFullObjectToArticleExtended(articleFull);
2856
- this._appEventService.onAddToCart.next({ article: article_2, quantity: quantity });
2857
- }
2858
- }
2859
- return [2 /*return*/];
2860
- }
2861
- });
2862
- });
2863
- };
2864
- ProductRelatedComponent.prototype.handleConfigureButtonClick = function (article) {
2865
- };
2866
- ProductRelatedComponent.prototype.handleThreeDButtonClick = function (article) {
2867
- };
2868
- ProductRelatedComponent.prototype._getJSONFromArticleObject = function (article) {
2869
- return __awaiter(this, void 0, void 0, function () {
2870
- var configuratorStatistics;
2871
- return __generator(this, function (_a) {
2872
- switch (_a.label) {
2873
- case 0:
2874
- configuratorStatistics = new configuratorStatisticsEnvironment.ConfiguratorStatisticsEnvironment();
2875
- configuratorStatistics.userType = 'iOneProductPage';
2876
- configuratorStatistics.transactionType = 'Sales';
2877
- configuratorStatistics.actionDomain = 'bundle';
2878
- configuratorStatistics.sessionId = this._settingsService.settings.session ? this._settingsService.settings.session.sessionId : 'unknown';
2879
- configuratorStatistics.webHost = window.location.host;
2880
- configuratorStatistics.bundleHost = window.location.host;
2881
- return [4 /*yield*/, this._iOne.getJsonArticleFlatTree(article.article.goodId, article.article.goodType, article.quantity, !!this.externalSource, true, configuratorStatistics)];
2882
- case 1: return [2 /*return*/, _a.sent()];
2883
- }
2884
- });
2885
- });
2886
- };
2887
- ProductRelatedComponent.prototype._loadImages = function () {
2888
- return __awaiter(this, void 0, void 0, function () {
2889
- var _this = this;
2890
- return __generator(this, function (_a) {
2891
- this.articleViewModels.forEach(function (avm) {
2892
- if (avm.article.image) {
2893
- _this._iOne.getImageForCoDocument(avm.article.image, false).then(function (imageContent) { return avm.imageData = imageContent.image; });
2894
- }
2895
- });
2896
- return [2 /*return*/];
2897
- });
2898
- });
2899
- };
2900
- return ProductRelatedComponent;
2901
- }());
2902
- ProductRelatedComponent.decorators = [
2903
- { type: i0.Component, args: [{
2904
- selector: 'app-product-related',
2905
- template: "\n <div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let articleViewModel of articleViewModels\">\n <co-article-tile \n [imageData]=\"articleViewModel.imageData\"\n [description]=\"articleViewModel.article.description\"\n [price]=\"articleViewModel.article.price\"\n [level]=\"articleViewModel.article.stockStatus\"\n [hasCartButton]=\"true\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"articleViewModel.article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(articleViewModel.article)\"\n (cartButtonClick)=\"handleAddToCartClick(articleViewModel.article)\"\n (configureButtonClick)=\"handleContentClick(articleViewModel.article)\"\n (threeDButtonClick)=\"handleThreeDButtonClick(articleViewModel.article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n </div>\n ",
2906
- styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row;flex:1;min-width:25%}.article-wrapper ::ng-deep co-tile{transition:all .14s ease-out;border:1px solid transparent;padding:10px 20px;display:flex;flex-direction:column;color:#171721;justify-content:space-between}.article-wrapper ::ng-deep co-tile .price{display:block}.article-wrapper ::ng-deep co-tile .description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:30px}.article-wrapper ::ng-deep co-tile .tile-bottom{display:flex;flex-direction:column;grid-gap:5px;gap:5px}.article-wrapper ::ng-deep co-tile:hover{border:1px solid #DCE4EA}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon{width:24px;height:24px}.article-wrapper ::ng-deep co-tile .tile-extra-bottom co-button co-icon svg [fill]{fill:#fff}.article-wrapper ::ng-deep co-tile.small{max-width:189px;width:100%;height:100%;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;grid-gap:10px;gap:10px;display:flex;flex-direction:column}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::ng-deep co-button.card-button.mini{pointer-events:all;padding:0!important;font-size:0;width:42px;height:42px;text-align:center;margin:0;border-radius:100%;background:#3E7EFF;cursor:pointer;place-content:center;color:#fff}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-extra-bottom ::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"]
2907
- },] }
2908
- ];
2909
- ProductRelatedComponent.ctorParameters = function () { return [
2910
- { type: ProductConnectorService },
2911
- { type: ProductEventService },
2912
- { type: ProductConnectorAdapterService },
2913
- { type: ProductSettingsService }
2914
- ]; };
2915
- ProductRelatedComponent.propDecorators = {
2916
- refType: [{ type: i0.Input }],
2917
- label: [{ type: i0.Input }],
2918
- externalSource: [{ type: i0.Input }],
2919
- isSmallModus: [{ type: i0.Input }],
2920
- createFrozenArticle: [{ type: i0.Input }],
2921
- articles: [{ type: i0.Input }]
2922
- };
2923
-
2924
- var HeaderComponent = /** @class */ (function () {
2925
- function HeaderComponent() {
2926
- }
2927
- HeaderComponent.prototype.ngOnInit = function () {
2928
- };
2929
- return HeaderComponent;
2930
- }());
2931
- HeaderComponent.decorators = [
2932
- { type: i0.Component, args: [{
2933
- selector: 'app-header',
2934
- template: "\n <ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n </ng-container>\n ",
2935
- styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
2936
- },] }
2937
- ];
2938
- HeaderComponent.ctorParameters = function () { return []; };
2939
- HeaderComponent.propDecorators = {
2940
- label: [{ type: i0.Input }],
2941
- amount: [{ type: i0.Input }]
2942
- };
2943
-
2944
- var HeaderModule = /** @class */ (function () {
2945
- function HeaderModule() {
2946
- }
2947
- return HeaderModule;
2948
- }());
2949
- HeaderModule.decorators = [
2950
- { type: i0.NgModule, args: [{
2951
- imports: [
2952
- common.CommonModule
2953
- ],
2954
- declarations: [
2955
- HeaderComponent
2956
- ],
2957
- exports: [
2958
- HeaderComponent
2959
- ]
2960
- },] }
2961
- ];
2962
-
2963
- var ProductRelatedModule = /** @class */ (function () {
2964
- function ProductRelatedModule() {
2965
- }
2966
- return ProductRelatedModule;
2967
- }());
2968
- ProductRelatedModule.decorators = [
2969
- { type: i0.NgModule, args: [{
2970
- imports: [
2971
- common.CommonModule,
2972
- HeaderModule,
2973
- corecomponents.ScrollContainerModule,
2974
- corecomponents_v12.ArticleTileModule
2975
- ],
2976
- declarations: [
2977
- ProductRelatedComponent
2978
- ],
2979
- exports: [
2980
- ProductRelatedComponent
2981
- ]
2982
- },] }
2983
- ];
2984
-
2985
- var ProductStockComponent = /** @class */ (function () {
2986
- function ProductStockComponent(_iOne, _iconCache) {
2987
- this._iOne = _iOne;
2988
- this._iconCache = _iconCache;
2989
- this.icon = IconEnum;
2990
- this.openStockEvent = new i0.EventEmitter();
2991
- this.inStock = false;
2992
- this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
2993
- }
2994
- Object.defineProperty(ProductStockComponent.prototype, "goodId", {
2995
- get: function () {
2996
- return this._goodId;
2997
- },
2998
- set: function (value) {
2999
- this._goodId = value;
3000
- this._getStockStatus();
3001
- },
3002
- enumerable: false,
3003
- configurable: true
3004
- });
3005
- ProductStockComponent.prototype.openStock = function () {
3006
- this.openStockEvent.emit();
3007
- };
3008
- ProductStockComponent.prototype._getStockStatus = function () {
3009
- var _this = this;
3010
- if (this.goodId) {
3011
- this._iOne.getArtStockStatus(this.goodId).then(function (result) {
3012
- switch (result) {
3013
- case 1: // niet op voorraad
3014
- _this.stockLabel = 'PRODUCT_LIMITED_STOCK';
3015
- _this.inStock = true;
3016
- break;
3017
- case 2:
3018
- _this.stockLabel = 'PRODUCT_IN_STOCK';
3019
- _this.inStock = true;
3020
- break;
3021
- default:
3022
- _this.stockLabel = 'PRODUCT_NOT_IN_STOCK';
3023
- _this.inStock = false;
3024
- break;
3025
- }
3026
- });
3027
- }
3028
- };
3029
- return ProductStockComponent;
3030
- }());
3031
- ProductStockComponent.decorators = [
3032
- { type: i0.Component, args: [{
3033
- selector: 'app-product-stock',
3034
- template: "\n <!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n <!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n <div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\" (click)=\"openStock()\">\n <div class=\"pp-default-label\" [class.in-stock]=\"inStock\" [textContent]=\"stockLabel | localize\"></div>\n </div>\n </div>\n ",
3035
- 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"]
3036
- },] }
3037
- ];
3038
- ProductStockComponent.ctorParameters = function () { return [
3039
- { type: ProductConnectorService },
3040
- { type: IconCacheService }
3041
- ]; };
3042
- ProductStockComponent.propDecorators = {
3043
- goodId: [{ type: i0.Input }],
3044
- openStockEvent: [{ type: i0.Output }]
3045
- };
3046
-
3047
- var ProductStockModule = /** @class */ (function () {
3048
- function ProductStockModule() {
3049
- }
3050
- return ProductStockModule;
3051
- }());
3052
- ProductStockModule.decorators = [
3053
- { type: i0.NgModule, args: [{
3054
- imports: [
3055
- common.CommonModule,
3056
- corecomponents.IconModule,
3057
- PipeModule
3058
- ],
3059
- declarations: [
3060
- ProductStockComponent
3061
- ],
3062
- exports: [
3063
- ProductStockComponent
3064
- ]
3065
- },] }
3066
- ];
3067
-
3068
- var ProductDeliveryComponent = /** @class */ (function () {
3069
- function ProductDeliveryComponent(_localizePipe, _iOne, _iconCache) {
3070
- this._localizePipe = _localizePipe;
3071
- this._iOne = _iOne;
3072
- this._iconCache = _iconCache;
3073
- this.icon = IconEnum;
3074
- this.iconData = this._iconCache.getIcon(this.icon.Truck);
3075
- }
3076
- Object.defineProperty(ProductDeliveryComponent.prototype, "stockAndDelivery", {
3077
- set: function (value) {
3078
- if (value) {
3079
- this.deliveryDescription = value.deliveryDescription;
3080
- if (this.deliveryDescription.length > 0 && this.deliveryDescription[0] === ' ') {
3081
- this.deliveryDescription = this._localizePipe.transform('ASK_FOR_INFORMATION');
3082
- }
3083
- }
3084
- },
3085
- enumerable: false,
3086
- configurable: true
3087
- });
3088
- ProductDeliveryComponent.prototype.ngOnInit = function () {
3089
- };
3090
- return ProductDeliveryComponent;
3091
- }());
3092
- ProductDeliveryComponent.decorators = [
3093
- { type: i0.Component, args: [{
3094
- selector: 'app-product-delivery',
3095
- template: "\n <!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n <div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n </div>\n ",
3096
- 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"]
3097
- },] }
3098
- ];
3099
- ProductDeliveryComponent.ctorParameters = function () { return [
3100
- { type: LocalizePipe },
3101
- { type: ProductConnectorService },
3102
- { type: IconCacheService }
3103
- ]; };
3104
- ProductDeliveryComponent.propDecorators = {
3105
- stockAndDelivery: [{ type: i0.Input }]
3106
- };
3107
-
3108
- var ProductDeliveryModule = /** @class */ (function () {
3109
- function ProductDeliveryModule() {
3110
- }
3111
- return ProductDeliveryModule;
3112
- }());
3113
- ProductDeliveryModule.decorators = [
3114
- { type: i0.NgModule, args: [{
3115
- imports: [
3116
- common.CommonModule,
3117
- corecomponents.IconModule,
3118
- PipeModule
3119
- ],
3120
- declarations: [
3121
- ProductDeliveryComponent
3122
- ],
3123
- exports: [
3124
- ProductDeliveryComponent
3125
- ]
3126
- },] }
3127
- ];
3128
-
3129
- var ProductInfoTabsComponent = /** @class */ (function () {
3130
- function ProductInfoTabsComponent(_appEventService) {
3131
- var _this = this;
3132
- this._appEventService = _appEventService;
3133
- this.activeTabHeight = 0;
3134
- this.tabs = [];
3135
- this._subs = [];
3136
- this._subs.push(this._appEventService.onUpdateProductInfoTab.subscribe(function (index) {
3137
- _this.updateTab(index);
3138
- _this.tabContent.nativeElement.scrollIntoView({ behavior: 'smooth' });
3139
- }));
3140
- }
3141
- Object.defineProperty(ProductInfoTabsComponent.prototype, "article", {
3142
- set: function (value) {
3143
- if (value) {
3144
- this.articleObject = value;
3145
- this._setupTabs();
3146
- this.updateTab(0);
3147
- }
3148
- },
3149
- enumerable: false,
3150
- configurable: true
3151
- });
3152
- ProductInfoTabsComponent.prototype.ngOnDestroy = function () {
3153
- this._subs.forEach(function (s) { return s.unsubscribe(); });
3154
- };
3155
- ProductInfoTabsComponent.prototype.updateTab = function (tabIndex) {
3156
- this.activeTab = tabIndex;
3157
- this.updateHeight(tabIndex);
3158
- };
3159
- ProductInfoTabsComponent.prototype.updateHeight = function (tabIndex) {
3160
- if (this.tabContent && this.tabContent.nativeElement.children.length > 0) {
3161
- if (this.tabContent.nativeElement.children[tabIndex] !== undefined) {
3162
- this.activeTabHeight = this.tabContent.nativeElement.children[tabIndex].offsetHeight;
3163
- }
3164
- }
3165
- };
3166
- ProductInfoTabsComponent.prototype._setupTabs = function () {
3167
- this.tabs.push({ title: 'DESCRIPTION' });
3168
- this.tabs.push({ title: 'FEATURES' });
3169
- if (this.articleObject.documents !== undefined && this.articleObject.documents.length > 0) {
3170
- this.tabs.push({ title: 'DOWNLOADS' });
3171
- }
3172
- if (this.articleObject.symbols !== undefined && this.articleObject.symbols.length > 0) {
3173
- this.tabs.push({ title: 'SYMBOLS' });
3174
- }
3175
- };
3176
- return ProductInfoTabsComponent;
3177
- }());
3178
- ProductInfoTabsComponent.decorators = [
3179
- { type: i0.Component, args: [{
3180
- selector: 'app-product-info-tabs',
3181
- template: "\n <div class=\"tab-container\">\n <div class=\"tab-header\">\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\n </div>\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\n <ng-container *ngIf=\"i === 0\">\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\n </ng-container>\n <ng-container *ngIf=\"i === 1\">\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\n </ng-container>\n <ng-container *ngIf=\"i === 2\">\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\n </ng-container>\n <ng-container *ngIf=\"i === 3\">\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\n </ng-container>\n </div>\n </div>\n </div>\n ",
3182
- 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"]
3183
- },] }
3184
- ];
3185
- ProductInfoTabsComponent.ctorParameters = function () { return [
3186
- { type: ProductEventService }
3187
- ]; };
3188
- ProductInfoTabsComponent.propDecorators = {
3189
- tabContent: [{ type: i0.ViewChild, args: ['tabContent',] }],
3190
- article: [{ type: i0.Input }]
3191
- };
3192
-
3193
- var ProductAdditionalInfoComponent = /** @class */ (function () {
3194
- function ProductAdditionalInfoComponent(_sanitizer, _connectorService, _changeDetector) {
3195
- this._sanitizer = _sanitizer;
3196
- this._connectorService = _connectorService;
3197
- this._changeDetector = _changeDetector;
3198
- this.showLabel = false;
3199
- this.textParts = [];
3200
- this._superArticles = new Map();
3201
- }
3202
- Object.defineProperty(ProductAdditionalInfoComponent.prototype, "article", {
3203
- get: function () {
3204
- return this._article;
3205
- },
3206
- set: function (value) {
3207
- var _this = this;
3208
- if (value) {
3209
- this._article = value;
3210
- this._buildInfo().then(function () {
3211
- _this._changeDetector.detectChanges();
3212
- });
3213
- }
3214
- },
3215
- enumerable: false,
3216
- configurable: true
3217
- });
3218
- ProductAdditionalInfoComponent.prototype.ngOnInit = function () {
3219
- };
3220
- ProductAdditionalInfoComponent.prototype._getTextsSuperArticle = function () {
3221
- return __awaiter(this, void 0, void 0, function () {
3222
- var _this = this;
3223
- return __generator(this, function (_a) {
3224
- return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
3225
- var texts, mainArticle;
3226
- var _this = this;
3227
- return __generator(this, function (_a) {
3228
- switch (_a.label) {
3229
- case 0:
3230
- texts = [];
3231
- if (!this.article.superArticleNr) return [3 /*break*/, 4];
3232
- mainArticle = void 0;
3233
- if (!this._superArticles.has(this.article.superArticleNr)) return [3 /*break*/, 1];
3234
- mainArticle = this._superArticles.get(this.article.superArticleNr);
3235
- return [3 /*break*/, 3];
3236
- case 1: return [4 /*yield*/, this._connectorService.getSuperArticle(this.article.superArticleNr)];
3237
- case 2:
3238
- mainArticle = _a.sent();
3239
- this._superArticles.set(this.article.superArticleNr, mainArticle);
3240
- _a.label = 3;
3241
- case 3:
3242
- mainArticle.texts.forEach(function (txt) {
3243
- if (BitUtils.IsFullDescription(txt.publication)) {
3244
- var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
3245
- texts.push(safeTxt);
3246
- }
3247
- });
3248
- resolve(texts);
3249
- return [3 /*break*/, 5];
3250
- case 4:
3251
- resolve(texts);
3252
- _a.label = 5;
3253
- case 5: return [2 /*return*/];
3254
- }
3255
- });
3256
- }); })];
3257
- });
3258
- });
3259
- };
3260
- ProductAdditionalInfoComponent.prototype._prepareArticleTexts = function () {
3261
- return __awaiter(this, void 0, void 0, function () {
3262
- var texts;
3263
- var _a;
3264
- var _this = this;
3265
- return __generator(this, function (_b) {
3266
- switch (_b.label) {
3267
- case 0: return [4 /*yield*/, this._getTextsSuperArticle()];
3268
- case 1:
3269
- texts = _b.sent();
3270
- if (texts.length > 0) {
3271
- (_a = this.textParts).push.apply(_a, __spreadArray([], __read(texts)));
3272
- }
3273
- if (this.article.texts) {
3274
- this.article.texts.forEach(function (txt) {
3275
- if (BitUtils.IsFullDescription(txt.publication)) {
3276
- var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
3277
- _this.textParts.push(safeTxt);
3278
- }
3279
- });
3280
- }
3281
- return [2 /*return*/];
3282
- }
3283
- });
3284
- });
3285
- };
3286
- ProductAdditionalInfoComponent.prototype._buildInfo = function () {
3287
- return __awaiter(this, void 0, void 0, function () {
3288
- return __generator(this, function (_a) {
3289
- switch (_a.label) {
3290
- case 0:
3291
- this.textParts.length = 0;
3292
- return [4 /*yield*/, this._prepareArticleTexts()];
3293
- case 1:
3294
- _a.sent();
3295
- if (this.textParts.length === 0) {
3296
- if (this.article.additionalDescription) {
3297
- this.textParts.push(this.article.additionalDescription);
3298
- }
3299
- else if (this.article.description) {
3300
- this.textParts.push(this.article.description);
3301
- }
3302
- }
3303
- return [2 /*return*/];
3304
- }
3305
- });
3306
- });
3307
- };
3308
- return ProductAdditionalInfoComponent;
3309
- }());
3310
- ProductAdditionalInfoComponent.decorators = [
3311
- { type: i0.Component, args: [{
3312
- selector: 'app-product-additional-info',
3313
- template: "\n <h3 *ngIf=\"showLabel\" [textContent]=\"'ADDITIONAL_DATA' | localize\"></h3>\n <ng-container *ngIf=\"textParts && textParts.length > 0\">\n <div class=\"additional-info-parts\" *ngFor=\"let text of textParts\" [innerHTML]=\"text\"></div>\n </ng-container>\n ",
3314
- 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"]
3315
- },] }
3316
- ];
3317
- ProductAdditionalInfoComponent.ctorParameters = function () { return [
3318
- { type: i1$1.DomSanitizer },
3319
- { type: ProductConnectorService },
3320
- { type: i0.ChangeDetectorRef }
3321
- ]; };
3322
- ProductAdditionalInfoComponent.propDecorators = {
3323
- article: [{ type: i0.Input }],
3324
- showLabel: [{ type: i0.Input }]
3325
- };
3326
-
3327
- var ProductAdditionalInfoModule = /** @class */ (function () {
3328
- function ProductAdditionalInfoModule() {
3329
- }
3330
- return ProductAdditionalInfoModule;
3331
- }());
3332
- ProductAdditionalInfoModule.decorators = [
3333
- { type: i0.NgModule, args: [{
3334
- imports: [
3335
- common.CommonModule,
3336
- PipeModule
3337
- ],
3338
- declarations: [
3339
- ProductAdditionalInfoComponent
3340
- ],
3341
- exports: [
3342
- ProductAdditionalInfoComponent
3343
- ]
3344
- },] }
3345
- ];
3346
-
3347
- var propertyMap = new Map([
3348
- ['articleNr', 'ARTICLE_NUMBER'],
3349
- ['catExtra', 'CATEGORY'],
3350
- ['catType', 'CATEGORY_TYPE'],
3351
- ['description', 'DESCRIPTION'],
3352
- ['material', 'MATERIAL'],
3353
- ['title', 'TITLE'],
3354
- ['turnOverGroup', 'TURNOVERGROUP'],
3355
- ['height', 'HEIGHT'],
3356
- ['width', 'WIDTH']
3357
- ]);
3358
- var ProductPropertiesComponent = /** @class */ (function () {
3359
- function ProductPropertiesComponent() {
3360
- this.showLabel = false;
3361
- this.properties = [];
3362
- }
3363
- Object.defineProperty(ProductPropertiesComponent.prototype, "article", {
3364
- get: function () {
3365
- return this._article;
3366
- },
3367
- set: function (value) {
3368
- this._article = value;
3369
- this._prepareProperties();
3370
- },
3371
- enumerable: false,
3372
- configurable: true
3373
- });
3374
- ProductPropertiesComponent.prototype.ngOnInit = function () {
3375
- };
3376
- ProductPropertiesComponent.prototype._prepareProperties = function () {
3377
- var _this = this;
3378
- this.properties.length = 0;
3379
- if (!this._article) {
3380
- return;
3381
- }
3382
- propertyMap.forEach(function (value, key) {
3383
- if (_this.article.hasOwnProperty(key)) {
3384
- _this.properties.push({ key: value, value: _this.article[key] });
3385
- }
3386
- });
3387
- };
3388
- return ProductPropertiesComponent;
3389
- }());
3390
- ProductPropertiesComponent.decorators = [
3391
- { type: i0.Component, args: [{
3392
- selector: 'app-product-properties',
3393
- template: "\n <div class=\"article-properties-wrapper\">\n <h3 *ngIf=\"showLabel\" [textContent]=\"'PROPERTIES' | localize\"></h3>\n <ng-container *ngFor=\"let property of properties\">\n <div class=\"article-property\">\n <div class=\"article-property-key\" [textContent]=\"property.key | localize\"></div>\n <div class=\"article-property-value\" [textContent]=\"property.value\"></div>\n </div>\n </ng-container>\n </div>\n ",
3394
- 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"]
3395
- },] }
3396
- ];
3397
- ProductPropertiesComponent.ctorParameters = function () { return []; };
3398
- ProductPropertiesComponent.propDecorators = {
3399
- article: [{ type: i0.Input }],
3400
- showLabel: [{ type: i0.Input }]
3401
- };
3402
-
3403
- var ProductPropertiesModule = /** @class */ (function () {
3404
- function ProductPropertiesModule() {
3405
- }
3406
- return ProductPropertiesModule;
3407
- }());
3408
- ProductPropertiesModule.decorators = [
3409
- { type: i0.NgModule, args: [{
3410
- imports: [
3411
- common.CommonModule,
3412
- PipeModule
3413
- ],
3414
- declarations: [
3415
- ProductPropertiesComponent
3416
- ],
3417
- exports: [
3418
- ProductPropertiesComponent
3419
- ]
3420
- },] }
3421
- ];
3422
-
3423
- var ProductDocumentsComponent = /** @class */ (function () {
3424
- function ProductDocumentsComponent(iconCache) {
3425
- this.iconCache = iconCache;
3426
- this.icon = IconEnum;
3427
- this.showLabel = false;
3428
- this.documents = [];
3429
- }
3430
- return ProductDocumentsComponent;
3431
- }());
3432
- ProductDocumentsComponent.decorators = [
3433
- { type: i0.Component, args: [{
3434
- selector: 'app-product-documents',
3435
- template: "\n <app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n <div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n </div>\n ",
3436
- 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%0D%3Csvg%0D xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22%0D xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22%0D xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22%0D xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0D xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0D xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22%0D xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22%0D viewBox%3D%220 0 50 50%22%0D version%3D%221.1%22%0D id%3D%22svg8%22%0D sodipodi%3Adocname%3D%22download.svg%22%0D inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E%0D %3Cmetadata%0D id%3D%22metadata14%22%3E%0D %3Crdf%3ARDF%3E%0D %3Ccc%3AWork%0D rdf%3Aabout%3D%22%22%3E%0D %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E%0D %3Cdc%3Atype%0D rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E%0D %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E%0D %3C%2Fcc%3AWork%3E%0D %3C%2Frdf%3ARDF%3E%0D %3C%2Fmetadata%3E%0D %3Cdefs%0D id%3D%22defs12%22 %2F%3E%0D %3Csodipodi%3Anamedview%0D pagecolor%3D%22%23ffffff%22%0D bordercolor%3D%22%23666666%22%0D borderopacity%3D%221%22%0D objecttolerance%3D%2210%22%0D gridtolerance%3D%2210%22%0D guidetolerance%3D%2210%22%0D inkscape%3Apageopacity%3D%220%22%0D inkscape%3Apageshadow%3D%222%22%0D inkscape%3Awindow-width%3D%221920%22%0D inkscape%3Awindow-height%3D%221017%22%0D id%3D%22namedview10%22%0D showgrid%3D%22false%22%0D inkscape%3Azoom%3D%226.675088%22%0D inkscape%3Acx%3D%22-14.056273%22%0D inkscape%3Acy%3D%2229.806579%22%0D inkscape%3Awindow-x%3D%22-8%22%0D inkscape%3Awindow-y%3D%22-8%22%0D inkscape%3Awindow-maximized%3D%221%22%0D inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g62%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g64%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g66%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g68%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g70%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g72%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g74%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g76%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g78%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g80%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g82%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g84%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g86%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g88%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22%0D id%3D%22g90%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g6-0%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cg%0D id%3D%22g4-9%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cpath%0D inkscape%3Aconnector-curvature%3D%220%22%0D 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%0D id%3D%22path2%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g12-0%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cg%0D id%3D%22g10-8%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cpath%0D inkscape%3Aconnector-curvature%3D%220%22%0D 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%0D id%3D%22path8-3%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g18-4%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cg%0D id%3D%22g16-7%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E%0D %3Cpath%0D inkscape%3Aconnector-curvature%3D%220%22%0D 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%0D id%3D%22path14-9%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3C%2Fg%3E%0D %3C%2Fg%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g20%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g22-9%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g24-3%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g26%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g28-4%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g30-2%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g32%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g34-2%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g36-1%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g38%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g40-6%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g42-4%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g44%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g46-7%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D %3Cg%0D transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22%0D id%3D%22g48-3%22%0D style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%0D%3C%2Fsvg%3E%0D\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
3437
- },] }
3438
- ];
3439
- ProductDocumentsComponent.ctorParameters = function () { return [
3440
- { type: IconCacheService }
3441
- ]; };
3442
- ProductDocumentsComponent.propDecorators = {
3443
- showLabel: [{ type: i0.Input }],
3444
- documents: [{ type: i0.Input }]
3445
- };
3446
-
3447
- var ProductDocumentModule = /** @class */ (function () {
3448
- function ProductDocumentModule() {
3449
- }
3450
- return ProductDocumentModule;
3451
- }());
3452
- ProductDocumentModule.decorators = [
3453
- { type: i0.NgModule, args: [{
3454
- imports: [
3455
- common.CommonModule,
3456
- HeaderModule,
3457
- PipeModule,
3458
- corecomponents.FilesUploadModule
3459
- ],
3460
- declarations: [
3461
- ProductDocumentsComponent
3462
- ],
3463
- exports: [
3464
- ProductDocumentsComponent
3465
- ]
3466
- },] }
3467
- ];
3468
-
3469
- var ProductSymbolsComponent = /** @class */ (function () {
3470
- function ProductSymbolsComponent() {
3471
- this.symbolStrings = [];
3472
- }
3473
- Object.defineProperty(ProductSymbolsComponent.prototype, "symbols", {
3474
- get: function () {
3475
- return this._symbols;
3476
- },
3477
- set: function (value) {
3478
- this._symbols = value;
3479
- if (this._symbols && this._symbols.hasOwnProperty('fontCode')) {
3480
- this._className = this._symbols['fontCode'] === 'VLOER' ? 'floor' : (this._className === 'WAS' ? 'ginetex' : '');
3481
- }
3482
- if (this._symbols && this._symbols.hasOwnProperty('symbolString')) {
3483
- for (var i = 0; i < this._symbols['symbolString'].length; i++) {
3484
- this.symbolStrings.push(this._symbols['symbolString'][i]);
3485
- }
3486
- }
3487
- },
3488
- enumerable: false,
3489
- configurable: true
3490
- });
3491
- ProductSymbolsComponent.prototype.ngOnInit = function () {
3492
- };
3493
- return ProductSymbolsComponent;
3494
- }());
3495
- ProductSymbolsComponent.decorators = [
3496
- { type: i0.Component, args: [{
3497
- selector: 'app-product-symbols',
3498
- template: "\n <div *ngIf=\"symbols && symbols.length > 0\">\n <app-header [label]=\"'SYMBOLS' | localize\" [amount]=\"symbols?.length\"></app-header>\n <co-scroll-container>\n <co-tile small noImagePlaceholder *ngFor=\"let symbol of symbolStrings\">\n <ng-container tile-over-image>\n <div class=\"symbol\" [textContent]=\"symbol\"></div>\n </ng-container>\n <ng-container tile-extra-bottom-content>\n <div class=\"symbol-name\" [textContent]=\"'Wat moet hier?'\"></div>\n </ng-container>\n </co-tile>\n </co-scroll-container>\n </div>\n ",
3499
- styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
3500
- },] }
3501
- ];
3502
- ProductSymbolsComponent.ctorParameters = function () { return []; };
3503
- ProductSymbolsComponent.propDecorators = {
3504
- symbols: [{ type: i0.Input }],
3505
- _className: [{ type: i0.HostBinding, args: ['class',] }]
3506
- };
3507
-
3508
- var ProductSymbolsModule = /** @class */ (function () {
3509
- function ProductSymbolsModule() {
3510
- }
3511
- return ProductSymbolsModule;
3512
- }());
3513
- ProductSymbolsModule.decorators = [
3514
- { type: i0.NgModule, args: [{
3515
- imports: [
3516
- common.CommonModule,
3517
- HeaderModule,
3518
- PipeModule,
3519
- corecomponents.ScrollContainerModule,
3520
- corecomponents.TileModule
3521
- ],
3522
- declarations: [
3523
- ProductSymbolsComponent
3524
- ],
3525
- exports: [
3526
- ProductSymbolsComponent
3527
- ]
3528
- },] }
3529
- ];
3530
-
3531
- var ProductInfoTabsModule = /** @class */ (function () {
3532
- function ProductInfoTabsModule() {
3533
- }
3534
- return ProductInfoTabsModule;
3535
- }());
3536
- ProductInfoTabsModule.decorators = [
3537
- { type: i0.NgModule, args: [{
3538
- imports: [
3539
- common.CommonModule,
3540
- PipeModule,
3541
- ProductAdditionalInfoModule,
3542
- ProductPropertiesModule,
3543
- ProductDocumentModule,
3544
- ProductSymbolsModule
3545
- ],
3546
- declarations: [
3547
- ProductInfoTabsComponent
3548
- ],
3549
- exports: [
3550
- ProductInfoTabsComponent
3551
- ]
3552
- },] }
3553
- ];
3554
-
3555
- var ProductDialogComponent = /** @class */ (function () {
3556
- function ProductDialogComponent(iconCache, _sanitizer, _productConnectorService, _productConnectorAdapterService, _appEventService) {
3557
- this.iconCache = iconCache;
3558
- this._sanitizer = _sanitizer;
3559
- this._productConnectorService = _productConnectorService;
3560
- this._productConnectorAdapterService = _productConnectorAdapterService;
3561
- this._appEventService = _appEventService;
3562
- this.icon = IconEnum;
3563
- this.closeRelatedPopup = new i0.EventEmitter();
3564
- this.type = SelectorType;
3565
- }
3566
- ProductDialogComponent.prototype.showClass = function () {
3567
- return true;
3568
- };
3569
- ProductDialogComponent.prototype.ngOnInit = function () {
3570
- };
3571
- ProductDialogComponent.prototype.closeCatalog = function () {
3572
- // need to emit close
3573
- this.closeRelatedPopup.emit(false);
3574
- };
3575
- return ProductDialogComponent;
3576
- }());
3577
- ProductDialogComponent.decorators = [
3578
- { type: i0.Component, args: [{
3579
- selector: 'co-product-dialog',
3580
- template: "\n <div class=\"product-dialog-wrap\">\n <div class=\"product-dialog-container\">\n <div class=\"container-header\">\n <div class=\"header-info\">\n <h3>\n <co-icon [iconData]=\"iconCache.getIcon(icon.LinkSimpleRegular)\"\n (click)=\"closeCatalog()\"></co-icon>{{ 'SUGGESTION' | localize }} <b>{{ mainArticle.name }}</b> ({{ mainArticle.articleNr }})\n </h3>\n </div>\n <div class=\"close-icon\" (click)=\"closeCatalog()\">\n <co-icon class=\"fullscreen-button\"\n [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </div>\n </div>\n <div class=\"related-product-container\">\n <app-product-related\n class=\"no-padding\"\n *ngIf=\"articles\"\n [articles]=\"articles\">\n </app-product-related>\n </div>\n <div class=\"close-button-container\">\n <button class=\"ok-button\" (click)=\"closeCatalog()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.SaveSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </button>\n <button class=\"close-button\" (click)=\"closeCatalog()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.CrossSkinny)\"\n (click)=\"closeCatalog()\"></co-icon>\n </button>\n </div>\n </div>\n </div>\n ",
3581
- styles: [".product-dialog-wrap{display:flex;justify-content:center;position:absolute;z-index:800;top:0}.product-dialog-wrap .product-dialog-container{background:#fff;min-width:75vw;max-height:90vh;border:1px solid #F8F8F8}.product-dialog-wrap .product-dialog-container .container-header{display:flex;justify-content:space-between;border-bottom:1px solid #F8F8F8;padding:25px;box-sizing:border-box;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3{display:flex;align-items:center}.product-dialog-wrap .product-dialog-container .container-header .header-info h3 co-icon{margin-right:10px}.product-dialog-wrap .product-dialog-container .container-header .close-icon{cursor:pointer}.product-dialog-wrap .product-dialog-container .close-button-container{display:flex;justify-content:center;padding:10px}.product-dialog-wrap .product-dialog-container .close-button-container button{cursor:pointer;border:none;color:#fff;padding:8px;box-shadow:0 3px 3px #0000004d;height:auto;width:auto;margin:0 3px;border-radius:3px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon{height:20px;width:20px}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container button ::ng-deep co-icon svg polygon{fill:#fff}.product-dialog-wrap .product-dialog-container .close-button-container .ok-button{background:#1a73e8}.product-dialog-wrap .product-dialog-container .close-button-container .close-button{background:#475060}::ng-deep .content-wrapper{width:auto!important}\n"]
3582
- },] }
3583
- ];
3584
- ProductDialogComponent.ctorParameters = function () { return [
3585
- { type: IconCacheService },
3586
- { type: i1$1.DomSanitizer },
3587
- { type: ProductConnectorService },
3588
- { type: ProductConnectorAdapterService },
3589
- { type: ProductEventService }
3590
- ]; };
3591
- ProductDialogComponent.propDecorators = {
3592
- refType: [{ type: i0.Input }],
3593
- mainArticle: [{ type: i0.Input }],
3594
- articles: [{ type: i0.Input }],
3595
- closeRelatedPopup: [{ type: i0.Output }],
3596
- showClass: [{ type: i0.HostBinding, args: ['class.co-product-dialog',] }]
3597
- };
3598
-
3599
- var ProductDialogModule = /** @class */ (function () {
3600
- function ProductDialogModule() {
3601
- }
3602
- return ProductDialogModule;
3603
- }());
3604
- ProductDialogModule.decorators = [
3605
- { type: i0.NgModule, args: [{
3606
- imports: [
3607
- common.CommonModule,
3608
- PipeModule,
3609
- ProductRelatedModule,
3610
- corecomponents.IconModule
3611
- ],
3612
- declarations: [
3613
- ProductDialogComponent
3614
- ],
3615
- exports: [
3616
- ProductDialogComponent
3617
- ]
3618
- },] }
3619
- ];
3620
-
3621
- var VectorObject = /** @class */ (function () {
3622
- function VectorObject() {
3623
- }
3624
- return VectorObject;
3625
- }());
3626
- var RenderParameters = /** @class */ (function () {
3627
- function RenderParameters() {
3628
- }
3629
- return RenderParameters;
3630
- }());
3631
- var RenderCarouselComponent = /** @class */ (function () {
3632
- function RenderCarouselComponent(iconCache, _appEventService, _changeDetector) {
3633
- var _this = this;
3634
- this.iconCache = iconCache;
3635
- this._appEventService = _appEventService;
3636
- this._changeDetector = _changeDetector;
3637
- this.showRefresh = false;
3638
- this.resizing = false;
3639
- this.showLoader = true;
3640
- this.renderedImageLoaded = false;
3641
- // For now we will just use mock data
3642
- this.renderAngles = [0, -45, -90, -135, -180, -225, -270, -315];
3643
- this.currentRenderAngleIndex = 0;
3644
- this.icon = IconEnum;
3645
- this._subs = [];
3646
- this._subs.push(this._appEventService.onReadyToRender.subscribe(function (readyToRender) {
3647
- if (readyToRender) {
3648
- _this.showLoader = true;
3649
- _this._createNewRender();
3650
- }
3651
- }), this._appEventService.onRenderStarted.subscribe(function () {
3652
- _this.showLoader = true;
3653
- _this._changeDetector.detectChanges();
3654
- }), this._appEventService.onRenderImageReceived.subscribe(function (image) {
3655
- _this.renderedImage = image;
3656
- _this.showLoader = false;
3657
- _this._changeDetector.detectChanges();
3658
- }));
3659
- }
3660
- RenderCarouselComponent.prototype.handleWindowResize = function () {
3661
- var _this = this;
3662
- this.resizing = true;
3663
- clearTimeout(this._resizeTimer);
3664
- this._resizeTimer = setTimeout(function () {
3665
- _this.resizing = false;
3666
- }, 200);
3667
- };
3668
- RenderCarouselComponent.prototype.gotoNextSlide = function () {
3669
- this.showLoader = true;
3670
- this.currentRenderAngleIndex = (this.currentRenderAngleIndex + 1) % this.renderAngles.length;
3671
- this._createNewRender();
3672
- };
3673
- RenderCarouselComponent.prototype.gotoPrevSlide = function () {
3674
- this.showLoader = true;
3675
- this.currentRenderAngleIndex = (this.currentRenderAngleIndex - 1 + this.renderAngles.length) % this.renderAngles.length;
3676
- this._createNewRender();
3677
- };
3678
- RenderCarouselComponent.prototype.ngOnDestroy = function () {
3679
- this.carousel = undefined;
3680
- this._subs.forEach(function (s) { return s.unsubscribe(); });
3681
- };
3682
- RenderCarouselComponent.prototype.ngOnChanges = function () {
3683
- this.renderedImageLoaded = false;
3684
- };
3685
- RenderCarouselComponent.prototype.onRenderLoaded = function () {
3686
- this.renderedImageLoaded = true;
3687
- };
3688
- RenderCarouselComponent.prototype._getRenderSettings = function () {
3689
- var settings = new RenderParameters();
3690
- var rotation = new VectorObject();
3691
- rotation.x = 0;
3692
- rotation.y = this.renderAngles[this.currentRenderAngleIndex];
3693
- rotation.z = 0;
3694
- settings.objectRotation = rotation;
3695
- settings.margin = 15;
3696
- return settings;
3697
- };
3698
- RenderCarouselComponent.prototype._createNewRender = function () {
3699
- this.showLoader = true;
3700
- this.renderedImageLoaded = false;
3701
- var renderParams = this._getRenderSettings();
3702
- this._appEventService.onGetRenderForRenderCarousel.next(renderParams);
3703
- };
3704
- return RenderCarouselComponent;
3705
- }());
3706
- RenderCarouselComponent.decorators = [
3707
- { type: i0.Component, args: [{
3708
- selector: 'app-render-carousel',
3709
- template: "\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_render_items\">\n <co-loader [isShown]=\"showLoader\"></co-loader>\n <div #carousel class=\"inner-carousel\">\n <div class=\"inner-carousel-render\">\n <img\n [src]=\"renderedImage\"\n [class.loaded]=\"renderedImageLoaded\"\n (load)=\"onRenderLoaded()\"\n class=\"fade-image\"\n alt=\"\">\n </div>\n <div class=\"carousel-scroller-layer\">\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointLeft)\"></co-icon>\n </div>\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\">\n <co-icon [iconData]=\"iconCache.getIcon(icon.ArrowPointRight)\"></co-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n ",
3710
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
3711
- 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_render_items{position:relative;margin-bottom:10px;min-height:400px}#product_page_carousel #product_page_carousel_render_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:700px}#product_page_carousel .inner-carousel .inner-carousel-render img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;top:0;left:0;z-index:100}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller{opacity:0;position:absolute;border-radius:50%;z-index:100;background:rgba(255,255,255,.4);color:#fff;width:30px;height:30px;top:calc(50% - 15px);cursor:pointer;transition:opacity .3s}#product_page_carousel .carousel-scroller-layer .carousel-item-scroller co-icon{color:#fff}#product_page_carousel .carousel-scroller-layer .prev{left:15px}#product_page_carousel .carousel-scroller-layer .next{right:15px}#product_page_carousel .carousel-scroller-layer:hover .carousel-item-scroller{opacity:1}#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}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-image{opacity:0;transition:opacity 1.5s ease-in-out}.fade-image.loaded{opacity:1}\n"]
3712
- },] }
3713
- ];
3714
- RenderCarouselComponent.ctorParameters = function () { return [
3715
- { type: IconCacheService },
3716
- { type: ProductEventService },
3717
- { type: i0.ChangeDetectorRef }
3718
- ]; };
3719
- RenderCarouselComponent.propDecorators = {
3720
- carousel: [{ type: i0.ViewChild, args: ['carousel', { read: i0.ElementRef },] }],
3721
- showRefresh: [{ type: i0.Input }],
3722
- article: [{ type: i0.Input }],
3723
- handleWindowResize: [{ type: i0.HostListener, args: ['window:resize',] }],
3724
- gotoNextSlide: [{ type: i0.HostListener, args: ['swipeleft',] }],
3725
- gotoPrevSlide: [{ type: i0.HostListener, args: ['swiperight',] }],
3726
- resizing: [{ type: i0.HostBinding, args: ['class.resizing',] }]
3727
- };
3728
-
3729
- var RenderCarouselModule = /** @class */ (function () {
3730
- function RenderCarouselModule() {
3731
- }
3732
- return RenderCarouselModule;
3733
- }());
3734
- RenderCarouselModule.decorators = [
3735
- { type: i0.NgModule, args: [{
3736
- imports: [
3737
- common.CommonModule,
3738
- corecomponents.LoaderModule,
3739
- corecomponents.ScrollContainerModule,
3740
- corecomponents.IconModule,
3741
- corecomponents_v12.IconCollapseHandleModule
3742
- ],
3743
- declarations: [
3744
- RenderCarouselComponent
3745
- ],
3746
- exports: [
3747
- RenderCarouselComponent
3748
- ]
3749
- },] }
3750
- ];
3751
-
3752
- var ProductPageModule = /** @class */ (function () {
3753
- function ProductPageModule() {
3754
- }
3755
- return ProductPageModule;
3756
- }());
3757
- ProductPageModule.decorators = [
3758
- { type: i0.NgModule, args: [{
3759
- imports: [
3760
- common.CommonModule,
3761
- ProductSelectorTypeModule,
3762
- ImageCarouselModule,
3763
- corecomponents.IconModule,
3764
- ProductDescriptionModule,
3765
- ProductAdditionalDescriptionModule,
3766
- ProductPriceModule,
3767
- ProductAddtocartModule,
3768
- ProductRelatedModule,
3769
- ProductStockModule,
3770
- ProductDeliveryModule,
3771
- ProductInfoTabsModule,
3772
- PipeModule,
3773
- ProductDialogModule,
3774
- corecomponents_v12.LoaderModule,
3775
- RenderCarouselModule
3776
- ],
3777
- schemas: [i0.CUSTOM_ELEMENTS_SCHEMA],
3778
- declarations: [
3779
- ProductPageComponent
3780
- ],
3781
- exports: [
3782
- ProductPageComponent
3783
- ]
3784
- },] }
3785
- ];
3786
-
3787
- var ProductScriptLoaderService = /** @class */ (function () {
3788
- function ProductScriptLoaderService(platformId) {
3789
- this.platformId = platformId;
3790
- this._scriptsOrLinksElements = [];
3791
- }
3792
- ProductScriptLoaderService.prototype.loadScript = function (url, renderer) {
3793
- var _this = this;
3794
- return new Promise(function (resolve, reject) {
3795
- if (!common.isPlatformBrowser(_this.platformId)) {
3796
- reject('Not in browser environment');
3797
- return;
3798
- }
3799
- var existingScript = document.getElementById(url);
3800
- if (existingScript) {
3801
- resolve(); // Script already loaded
3802
- return;
3803
- }
3804
- var script = renderer.createElement('script');
3805
- script.id = url;
3806
- script.src = url;
3807
- script.type = 'text/javascript';
3808
- script.async = true;
3809
- script.onload = function () { return resolve(); };
3810
- script.onerror = function (error) { return reject("Error loading script: " + url); };
3811
- renderer.appendChild(document.head, script);
3812
- _this._scriptsOrLinksElements.push(script);
3813
- });
3814
- };
3815
- ProductScriptLoaderService.prototype.unloadScripts = function (renderer) {
3816
- for (var i = this._scriptsOrLinksElements.length - 1; i >= 0; i--) {
3817
- renderer.removeChild(document.head, this._scriptsOrLinksElements[i]);
3818
- this._scriptsOrLinksElements.pop();
3819
- }
3820
- };
3821
- ProductScriptLoaderService.prototype.addStyleSheet = function (url, renderer) {
3822
- var _this = this;
3823
- return new Promise(function (resolve, reject) {
3824
- if (!common.isPlatformBrowser(_this.platformId)) {
3825
- reject('Not in browser environment');
3826
- return;
3827
- }
3828
- var existingStyleSheet = document.getElementById(url);
3829
- if (existingStyleSheet) {
3830
- resolve(); // Script already loaded
3831
- return;
3832
- }
3833
- var link = renderer.createElement('link');
3834
- link.id = url;
3835
- link.href = url;
3836
- link.rel = 'stylesheet';
3837
- link.onload = function () { return resolve(); };
3838
- link.onerror = function (error) { return reject("Error loading styleSheet: " + url); };
3839
- renderer.appendChild(document.head, link);
3840
- _this._scriptsOrLinksElements.push(link);
3841
- });
3842
- };
3843
- return ProductScriptLoaderService;
3844
- }());
3845
- ProductScriptLoaderService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function ProductScriptLoaderService_Factory() { return new ProductScriptLoaderService(i0__namespace.ɵɵinject(i0__namespace.PLATFORM_ID)); }, token: ProductScriptLoaderService, providedIn: "root" });
3846
- ProductScriptLoaderService.decorators = [
3847
- { type: i0.Injectable, args: [{
3848
- providedIn: 'root'
3849
- },] }
3850
- ];
3851
- ProductScriptLoaderService.ctorParameters = function () { return [
3852
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.PLATFORM_ID,] }] }
3853
- ]; };
3854
-
3855
- var ProductHdComponent = /** @class */ (function () {
3856
- function ProductHdComponent(_scriptLoader, _renderer) {
3857
- this._scriptLoader = _scriptLoader;
3858
- this._renderer = _renderer;
3859
- this.variant = '';
3860
- this.urlParams = [];
3861
- this.configuratorFinished = new i0.EventEmitter();
3862
- this.configurationError = new i0.EventEmitter();
3863
- this.showClass = true;
3864
- }
3865
- Object.defineProperty(ProductHdComponent.prototype, "content", {
3866
- set: function (child) {
3867
- this.hdeConfigurator = child;
3868
- this._prepareAttributes();
3869
- },
3870
- enumerable: false,
3871
- configurable: true
3872
- });
3873
- Object.defineProperty(ProductHdComponent.prototype, "sku", {
3874
- get: function () {
3875
- return this._sku;
3876
- },
3877
- set: function (value) {
3878
- this._sku = value;
3879
- this._prepareAttributes();
3880
- },
3881
- enumerable: false,
3882
- configurable: true
3883
- });
3884
- ProductHdComponent.prototype.ngOnDestroy = function () {
3885
- this._scriptLoader.unloadScripts(this._renderer);
3886
- };
3887
- ProductHdComponent.prototype.handleConfigurationFinished = function (event) {
3888
- if (event.detail.variant && typeof event.detail.variant === 'string') {
3889
- this.configuratorFinished.emit(event.detail.variant);
3890
- }
3891
- else {
3892
- this.configuratorFinished.emit(this.variant);
3893
- }
3894
- };
3895
- ProductHdComponent.prototype.handleError = function (event) {
3896
- this.configurationError.emit(event.detail.status);
3897
- };
3898
- ProductHdComponent.prototype._prepareAttributes = function () {
3899
- if (this.hdeConfigurator && this.hdeConfigurator.nativeElement && this.urlParams && this.token && (this.sku || this.variant)) {
3900
- //for local testing please turn off for packing and publishing!
3901
- //this.prepareTestingUrlparams();
3902
- this._prepareConfiguratorUrls();
3903
- this.hdeConfigurator.nativeElement.setAttribute('bearerToken', this.token);
3904
- if (this._sku) {
3905
- this.hdeConfigurator.nativeElement.setAttribute('data-productId', this._sku);
3906
- }
3907
- if (this.variant) {
3908
- this.hdeConfigurator.nativeElement.setAttribute('data-productVariantId', this.variant);
3909
- }
3910
- this._loadTheScripts();
3911
- }
3912
- };
3913
- //set necessary references to configurator.
3914
- ProductHdComponent.prototype._prepareConfiguratorUrls = function () {
3915
- //fetch the setting from the external source
3916
- var apiurl = this.urlParams.find(function (item) { return item.key === 'apiurl'; }).value;
3917
- var productVariantCommandApiUrl = this.urlParams.find(function (item) { return item.key === 'productVariantCommandApiUrl'; }).value;
3918
- var productVariantQueryApiUrl = this.urlParams.find(function (item) { return item.key === 'productVariantQueryApiUrl'; }).value;
3919
- var localizationApiUrl = this.urlParams.find(function (item) { return item.key === 'localizationApiUrl'; }).value;
3920
- //apply to configurator
3921
- this.hdeConfigurator.nativeElement.setAttribute('apiurl', apiurl);
3922
- this.hdeConfigurator.nativeElement.setAttribute('productVariantCommandApiUrl', productVariantCommandApiUrl);
3923
- this.hdeConfigurator.nativeElement.setAttribute('productVariantQueryApiUrl', productVariantQueryApiUrl);
3924
- this.hdeConfigurator.nativeElement.setAttribute('localizationApiUrl', localizationApiUrl);
3925
- };
3926
- // load external scripts into client
3927
- ProductHdComponent.prototype._loadTheScripts = function () {
3928
- return __awaiter(this, void 0, void 0, function () {
3929
- var headerUrls, headerArray, i, styles, stylesArray, j;
3930
- return __generator(this, function (_a) {
3931
- switch (_a.label) {
3932
- case 0:
3933
- headerUrls = this.urlParams.find(function (item) { return item.key === 'header'; }).value;
3934
- headerArray = headerUrls.replace(/\s+/g, '').split(',');
3935
- i = 0;
3936
- _a.label = 1;
3937
- case 1:
3938
- if (!(i < headerArray.length)) return [3 /*break*/, 4];
3939
- return [4 /*yield*/, this._scriptLoader.loadScript(headerArray[i], this._renderer).catch(function (error) { return console.error(error); })];
3940
- case 2:
3941
- _a.sent();
3942
- _a.label = 3;
3943
- case 3:
3944
- i++;
3945
- return [3 /*break*/, 1];
3946
- case 4:
3947
- styles = this.urlParams.find(function (item) { return item.key === 'stylesheet'; }).value;
3948
- stylesArray = styles.replace(/\s+/g, '').split(',');
3949
- j = 0;
3950
- _a.label = 5;
3951
- case 5:
3952
- if (!(j < stylesArray.length)) return [3 /*break*/, 8];
3953
- return [4 /*yield*/, this._scriptLoader.addStyleSheet(stylesArray[j], this._renderer)];
3954
- case 6:
3955
- _a.sent();
3956
- _a.label = 7;
3957
- case 7:
3958
- j++;
3959
- return [3 /*break*/, 5];
3960
- case 8: return [2 /*return*/];
3961
- }
3962
- });
3963
- });
3964
- };
3965
- return ProductHdComponent;
3966
- }());
3967
- ProductHdComponent.decorators = [
3968
- { type: i0.Component, args: [{
3969
- selector: 'co-product-hd',
3970
- template: "\n <hde-configurator #hdeConfigurator\n language=\"nl\"\n localizationFileExtension=\".json\"\n (configurationFinished)=\"handleConfigurationFinished($event)\"\n (configurationFailed)=\"handleError($event)\"\n >\n <hde-progress-bar></hde-progress-bar>\n </hde-configurator>\n ",
3971
- encapsulation: i0.ViewEncapsulation.None
3972
- },] }
3973
- ];
3974
- ProductHdComponent.ctorParameters = function () { return [
3975
- { type: ProductScriptLoaderService },
3976
- { type: i0.Renderer2 }
3977
- ]; };
3978
- ProductHdComponent.propDecorators = {
3979
- content: [{ type: i0.ViewChild, args: ['hdeConfigurator', { read: i0.ElementRef },] }],
3980
- sku: [{ type: i0.Input }],
3981
- token: [{ type: i0.Input }],
3982
- variant: [{ type: i0.Input }],
3983
- urlParams: [{ type: i0.Input }],
3984
- configuratorFinished: [{ type: i0.Output }],
3985
- configurationError: [{ type: i0.Output }],
3986
- showClass: [{ type: i0.HostBinding, args: ['class.co-product-hd',] }]
3987
- };
3988
-
3989
- var ProductHdModule = /** @class */ (function () {
3990
- function ProductHdModule() {
3991
- }
3992
- return ProductHdModule;
3993
- }());
3994
- ProductHdModule.decorators = [
3995
- { type: i0.NgModule, args: [{
3996
- imports: [
3997
- common.CommonModule
3998
- ],
3999
- declarations: [
4000
- ProductHdComponent
4001
- ],
4002
- schemas: [
4003
- i0.CUSTOM_ELEMENTS_SCHEMA,
4004
- i0.NO_ERRORS_SCHEMA
4005
- ],
4006
- exports: [
4007
- ProductHdComponent
4008
- ]
4009
- },] }
4010
- ];
4011
-
4012
- var ProductExternalSourceComponent = /** @class */ (function () {
4013
- function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
4014
- this._sanitizer = _sanitizer;
4015
- this._productConnectorService = _productConnectorService;
4016
- this._appEventService = _appEventService;
4017
- this.addToCart = new i0.EventEmitter();
4018
- this.addToQuote = new i0.EventEmitter();
4019
- this.alternativeClick = new i0.EventEmitter();
4020
- this.configuratorFinished = new i0.EventEmitter();
4021
- this.showProduct = false;
4022
- this.showConfigurator = false;
4023
- this.showSource = false;
4024
- this.loaded = false;
4025
- this.externalSettings = {};
4026
- this.token = ""; //= "eyJhbGciOiJSUzI1NiIsImtpZCI6IkYxOThERkVEOEUwQTQ1MzY3M0M1MUE2Rjk1QUVDQzU3RTM0NjM4RkRSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6IjhaamY3WTRLUlRaenhScHZsYTdNVi1OR09QMCJ9.eyJuYmYiOjE3MzIxOTkyOTUsImV4cCI6MTczMjIwMjg5NSwiaXNzIjoiaHR0cHM6Ly9ibXNpZGVudGl0eS1hY2NlcHRhbmNlLmF6dXJld2Vic2l0ZXMubmV0IiwiYXVkIjpbImNhdGFsb2dxdWVyeWFwaSIsImNvbmZpZ3VyYXRvcmFwaSIsInByb2R1Y3R2YXJpYW50Y29tbWFuZGFwaSIsInByb2R1Y3R2YXJpYW50cXVlcnlhcGkiXSwiY2xpZW50X2lkIjoiaW1wZXJzb25hdGlvbi5jbGllbnQiLCJzdWIiOiIwOTMwZDI4Mi05NGU4LTQ5MGEtOGI2NC1mYTk1YmIyYzE1ODIiLCJhdXRoX3RpbWUiOjE3MzIxOTkyOTUsImlkcCI6ImxvY2FsIiwiZW52aXJvbm1lbnQiOiJNU0wiLCJzZWxsZXIiOiJTRTAwMDA5NiIsInNlbGxlcmd1aWQiOiIxMDk1MWJjNS1hZmMzLTQ1MGEtNmVkMS0wOGQ4NDNlNmE5OTQiLCJwZXJtaXNzaW9uIjpbInNhbGVzLmV4cG9ydHRlbXBsYXRlcy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LnRhZy5yZWFkIiwiZG9jdW1lbnRsaWJyYXJ5LmRvY3VtZW50LnJlYWQiLCJkb2N1bWVudGxpYnJhcnkudGFnZ3JvdXAucmVhZCIsInNhbGVzLm9yZGVyLndyaXRlIiwic2FsZXMuY3VzdG9tZXIucmVhZCIsInNhbGVzLm9yZGVyLmRlbGl2ZXJ5YWRkcmVzcy53cml0ZSIsInNlcnZpY2UucmVxdWVzdC5yZWFkIiwiY2F0YWxvZy50YWcucmVhZCIsInNhbGVzLm9yZGVyLnJlYWQiLCJzYWxlcy5jdXN0b21lci53cml0ZSIsInJlcXVlc3Rmb3JxdW90ZS53cml0ZSIsInNhbGVzLm9yZGVyLmJvb2siLCJyZXF1ZXN0Zm9ycXVvdGUucmVhZCIsInNhbGVzLmxlYWQucmVhZCIsInB1cmNoYXNlLm9yZGVyLnJlYWQiLCJzYWxlcy5xdW90ZS5yZWFkIiwic2FsZXMucXVvdGUud3JpdGUiLCJjYXRhbG9nLml0ZW0ucmVhZCIsInNhbGVzLmxlYWQud3JpdGUiLCJzZXJ2aWNlLnJlcXVlc3Quc3VibWl0Iiwic2FsZXMub3JkZXIuZGVsaXZlcnlhZGRyZXNzLnJlYWQiLCJwdXJjaGFzZS5vcmRlci53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy53cml0ZSIsInB1cmNoYXNlLm9yZGVyLnByaWNlcy5yZWFkIiwic2VydmljZS5yZXF1ZXN0LndyaXRlIiwiY2F0YWxvZy5jYXRhbG9nLnJlYWQiLCJjYXRhbG9nLmNhdGFsb2cud3JpdGUiLCJjYXRhbG9nLmN1cnJlbmN5LnJlYWQiLCJjYXRhbG9nLmN1cnJlbmN5LndyaXRlIiwiY2F0YWxvZy5pdGVtLndyaXRlIiwiY2F0YWxvZy5sb2NhbGl6YXRpb24ucmVhZCIsImNhdGFsb2cubG9jYWxpemF0aW9uLndyaXRlIiwiY2F0YWxvZy5wcm9kdWN0LnJlYWQiLCJjYXRhbG9nLnByb2R1Y3Qud3JpdGUiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLnJlYWQiLCJjYXRhbG9nLnByb2R1Y3RzZXR0aW5nLndyaXRlIiwiY2F0YWxvZy5zZWxsZXIucmVhZCIsImNhdGFsb2cuc2VsbGVyLndyaXRlIiwiY2F0YWxvZy50YWcud3JpdGUiLCJjYXRhbG9nLnVvbS5yZWFkIiwiY2F0YWxvZy51b20ud3JpdGUiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LnJlYWQiLCJjYXRhbG9nLnZhdGNhdGVnb3J5LndyaXRlIiwiY2F0YWxvZy52ZW5kb3IucmVhZCIsImNhdGFsb2cudmVuZG9yLndyaXRlIiwicHVyY2hhc2Uuc2VsbGVyLnJlYWQiLCJwdXJjaGFzZS5zZWxsZXIud3JpdGUiLCJjYXRhbG9nLmFydGljbGUucmVhZCIsImNhdGFsb2cuYXJ0aWNsZS53cml0ZSIsInNhbGVzLnF1b3RlLmxpbmVzLnJlYWQiLCJzYWxlcy5xdW90ZS5saW5lcy53cml0ZSIsInNhbGVzLnNlbGxlci5yZWFkIiwic2FsZXMuc2VsbGVyLndyaXRlIiwiYWNjb3VudGluZy52ZW5kb3JpbnZvaWNlLnJlYWQiLCJpZGVudGl0eS51c2VyLnJlYWQiLCJpZGVudGl0eS51c2VyLndyaXRlIiwiaWRlbnRpdHkucm9sZS5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy5yZWFkIiwic2VsbGVyLnByb2R1Y3RwcmljZS5zZXR0aW5ncy53cml0ZSIsImNvbmZpZ3VyYXRvci5wdXJjaGFzZXByaWNlLnJlYWQiLCJzdG9jay5mYWJyaWMucmVhZCJdLCJuYW1lIjoiUm9iaW4iLCJmYW1pbHlfbmFtZSI6ImRlIFdpbnRlciAoQ29saWpuLUlUKSIsInJvbGUiOlsic2VsbGVyIiwiZGVhbGVyX21hbmFnZXIiXSwiaWF0IjoxNzMyMTk5Mjk1LCJzY29wZSI6WyJjYXRhbG9ncXVlcnlhcGkiLCJjb25maWd1cmF0b3JhcGkiLCJwcm9kdWN0dmFyaWFudGNvbW1hbmRhcGkiLCJwcm9kdWN0dmFyaWFudHF1ZXJ5YXBpIl0sImFtciI6WyJpbXBlcnNvbmF0aW9uIl19.rbguVPnkXXDzsM6QKgXulhrF41jIjCuGDV13ig1GC8MewLCJ7wA038OSwT26sx2mCexjvuGYt45YScfPwfTkDy3ErPmHRods64X1dJWZnf-23NTP2iI32K_1vMZH5GOGbMzuFtbKAFQv4hgFAxoyWqFVWyJvuOtQcWyZStROyPHwjAnpnj-x1cVQpOhbO-kQUFvy_VUrPpF3aYVCcO2cFirQTXR6kxSGcYGGcsPY-_eiAd93UdG2EM6xLAocDLaFV72CQI6XEs0WQG1f4SqvH52v3OTkgWBLgYV35gpyIe0-2nazGL0R8pTNuDqrOb7OGmuTRMoTIiRi67-wTxx8cQ";
4027
- this.variant = "";
4028
- this.urlParams = [];
4029
- this._subs = [];
4030
- }
4031
- Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
4032
- get: function () {
4033
- return this._externalSource;
4034
- },
4035
- set: function (value) {
4036
- this._externalSource = value;
4037
- this.loaded = false;
4038
- this._prepareExternalSource();
4039
- },
4040
- enumerable: false,
4041
- configurable: true
4042
- });
4043
- Object.defineProperty(ProductExternalSourceComponent.prototype, "externalCatalogStartupInfo", {
4044
- get: function () {
4045
- return this._externalCatalogStartupInfo;
4046
- },
4047
- set: function (value) {
4048
- if (value) {
4049
- this._externalCatalogStartupInfo = value;
4050
- this.externalSource = value.externalSource;
4051
- this.loaded = false;
4052
- this._prepareExternalSource();
4053
- }
4054
- },
4055
- enumerable: false,
4056
- configurable: true
4057
- });
4058
- ProductExternalSourceComponent.prototype.showClass = function () {
4059
- return true;
4060
- };
4061
- ProductExternalSourceComponent.prototype.ngOnInit = function () {
4062
- var _this = this;
4063
- this._subs.push(this._appEventService.onAddToCart.subscribe(function (data) {
4064
- _this.addToCart.next({
4065
- article: data.article,
4066
- quantity: data.quantity,
4067
- catalogDefinition: _this.catalogDefinition,
4068
- externalSource: _this._externalSource
4069
- });
4070
- }), this._appEventService.onAddToQuote.subscribe(function (json) {
4071
- _this.addToQuote.next({
4072
- article: json,
4073
- quantity: 1,
4074
- catalogDefinition: _this.catalogDefinition,
4075
- externalSource: _this._externalSource
4076
- });
4077
- }), this._appEventService.onAlternativeClick.subscribe(function (article) { return _this.alternativeClick.next(article); }));
4078
- };
4079
- ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
4080
- this._subs.forEach(function (s) { return s.unsubscribe(); });
4081
- };
4082
- ProductExternalSourceComponent.prototype.handleConfigurationFinished = function (variantString) {
4083
- this.configuratorFinished.emit(variantString);
4084
- };
4085
- ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
4086
- return __awaiter(this, void 0, void 0, function () {
4087
- return __generator(this, function (_a) {
4088
- switch (_a.label) {
4089
- case 0:
4090
- if (!this._externalSource) {
4091
- return [2 /*return*/];
4092
- }
4093
- this.externalUrl = undefined;
4094
- this.externalSettings = {};
4095
- if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
4096
- return [4 /*yield*/, this._prepareCatFarm()];
4097
- case 1:
4098
- _a.sent();
4099
- return [3 /*break*/, 3];
4100
- case 2:
4101
- if (this.externalSource.type === 'HTDL') {
4102
- this._prepareConfigurator();
4103
- }
4104
- else {
4105
- this._prepareSource();
4106
- }
4107
- _a.label = 3;
4108
- case 3: return [2 /*return*/];
4109
- }
4110
- });
4111
- });
4112
- };
4113
- ProductExternalSourceComponent.prototype._prepareCatFarm = function () {
4114
- return __awaiter(this, void 0, void 0, function () {
4115
- var bundleSettings;
4116
- return __generator(this, function (_a) {
4117
- switch (_a.label) {
4118
- case 0: return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
4119
- case 1:
4120
- bundleSettings = _a.sent();
4121
- this.externalSettings = JSON.parse(bundleSettings);
4122
- if (this.options) {
4123
- this.externalSettings.options = this.options;
4124
- }
4125
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
4126
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
4127
- if (this.externalSource.username && this.externalSource.password) {
4128
- this.externalSettings.useLoginEncryption = true;
4129
- this.externalSettings.username = this.externalSource.username;
4130
- this.externalSettings.password = this.externalSource.password;
4131
- }
4132
- // finally show the catalog
4133
- this.switchToProduct();
4134
- this.loaded = true;
4135
- return [2 /*return*/];
4136
- }
4137
- });
4138
- });
4139
- };
4140
- ProductExternalSourceComponent.prototype._prepareConfigurator = function () {
4141
- if (this.externalCatalogStartupInfo) {
4142
- this.token = this.externalCatalogStartupInfo.token;
4143
- this.sku = this.externalCatalogStartupInfo.externalGoodId;
4144
- this.variant = this.externalCatalogStartupInfo.flattenedGoodId;
4145
- this.urlParams = this.externalCatalogStartupInfo.externalSource.parameters;
4146
- this.switchToConfigurator();
4147
- this.loaded = true;
4148
- }
4149
- };
4150
- ProductExternalSourceComponent.prototype._prepareSource = function () {
4151
- this.externalUrl = this.externalSource.url;
4152
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
4153
- this.switchToSource();
4154
- this.loaded = true;
4155
- };
4156
- ProductExternalSourceComponent.prototype.switchToProduct = function () {
4157
- this.showProduct = true;
4158
- this.showConfigurator = false;
4159
- this.showSource = false;
4160
- };
4161
- ProductExternalSourceComponent.prototype.switchToConfigurator = function () {
4162
- this.showProduct = false;
4163
- this.showConfigurator = true;
4164
- this.showSource = false;
4165
- };
4166
- ProductExternalSourceComponent.prototype.switchToSource = function () {
4167
- this.showProduct = false;
4168
- this.showConfigurator = false;
4169
- this.showSource = true;
4170
- };
4171
- return ProductExternalSourceComponent;
4172
- }());
4173
- ProductExternalSourceComponent.decorators = [
4174
- { type: i0.Component, args: [{
4175
- selector: 'co-product-external-source',
4176
- template: "\n <ng-container *ngIf=\"loaded\">\n <ng-container *ngIf=\"showProduct\">\n <app-product-page\n [sku]=\"sku\"\n [settings]=\"externalSettings\"\n [externalSource]=\"externalSource\"\n ></app-product-page>\n </ng-container>\n <ng-container *ngIf=\"showSource\">\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\n </ng-container>\n <ng-container *ngIf=\"showConfigurator\">\n <co-product-hd width=\"100%\" height=\"100%\"\n [sku]=\"sku\"\n [variant]=\"variant\"\n [token]=\"token\"\n [urlParams]=\"urlParams\"\n (configuratorFinished)=\"handleConfigurationFinished($event)\"></co-product-hd>\n </ng-container>\n </ng-container>\n ",
4177
- providers: [
4178
- ProductSettingsService,
4179
- ProductConnectorAdapterService,
4180
- ProductConnectorService
4181
- ],
4182
- encapsulation: i0.ViewEncapsulation.None
4183
- },] }
4184
- ];
4185
- ProductExternalSourceComponent.ctorParameters = function () { return [
4186
- { type: i1$1.DomSanitizer },
4187
- { type: ProductConnectorService },
4188
- { type: ProductEventService }
4189
- ]; };
4190
- ProductExternalSourceComponent.propDecorators = {
4191
- sku: [{ type: i0.Input }],
4192
- catalogDefinition: [{ type: i0.Input }],
4193
- externalSource: [{ type: i0.Input }],
4194
- externalCatalogStartupInfo: [{ type: i0.Input }],
4195
- options: [{ type: i0.Input }],
4196
- addToCart: [{ type: i0.Output }],
4197
- addToQuote: [{ type: i0.Output }],
4198
- alternativeClick: [{ type: i0.Output }],
4199
- configuratorFinished: [{ type: i0.Output }],
4200
- showClass: [{ type: i0.HostBinding, args: ['class.co-product-external-source',] }]
4201
- };
4202
-
4203
- var ProductExternalSourceModule = /** @class */ (function () {
4204
- function ProductExternalSourceModule() {
4205
- }
4206
- return ProductExternalSourceModule;
4207
- }());
4208
- ProductExternalSourceModule.decorators = [
4209
- { type: i0.NgModule, args: [{
4210
- imports: [
4211
- common.CommonModule,
4212
- ProductPageModule,
4213
- ProductHdModule
4214
- ],
4215
- declarations: [
4216
- ProductExternalSourceComponent
4217
- ],
4218
- exports: [
4219
- ProductExternalSourceComponent
4220
- ]
4221
- },] }
4222
- ];
4223
-
4224
- var IoneProductModule = /** @class */ (function () {
4225
- function IoneProductModule() {
4226
- }
4227
- return IoneProductModule;
4228
- }());
4229
- IoneProductModule.decorators = [
4230
- { type: i0.NgModule, args: [{
4231
- imports: [
4232
- // BrowserAnimationsModule,
4233
- common.CommonModule,
4234
- ProductPageModule,
4235
- ProductHdModule,
4236
- ProductExternalSourceModule,
4237
- corecomponents_v12.ButtonModule
4238
- ],
4239
- declarations: [
4240
- IoneProductComponent
4241
- ],
4242
- exports: [
4243
- IoneProductComponent
4244
- ],
4245
- schemas: [
4246
- i0.CUSTOM_ELEMENTS_SCHEMA,
4247
- i0.NO_ERRORS_SCHEMA
4248
- ],
4249
- bootstrap: [
4250
- IoneProductComponent
4251
- ]
4252
- },] }
4253
- ];
4254
-
4255
- /**
4256
- * Generated bundle index. Do not edit.
4257
- */
4258
-
4259
- exports.IoneProductComponent = IoneProductComponent;
4260
- exports.IoneProductModule = IoneProductModule;
4261
- exports.ProductConnectorAdapterService = ProductConnectorAdapterService;
4262
- exports.ProductConnectorService = ProductConnectorService;
4263
- exports.ProductEventService = ProductEventService;
4264
- exports.ProductExternalSourceComponent = ProductExternalSourceComponent;
4265
- exports.ProductExternalSourceModule = ProductExternalSourceModule;
4266
- exports.ProductSettingsService = ProductSettingsService;
4267
- exports.Version = Version;
4268
- exports["ɵa"] = ProductPageModule;
4269
- exports["ɵb"] = ProductSelectorTypeModule;
4270
- exports["ɵba"] = ProductInfoTabsModule;
4271
- exports["ɵbb"] = ProductAdditionalInfoModule;
4272
- exports["ɵbc"] = ProductAdditionalInfoComponent;
4273
- exports["ɵbd"] = ProductPropertiesModule;
4274
- exports["ɵbe"] = ProductPropertiesComponent;
4275
- exports["ɵbf"] = ProductDocumentModule;
4276
- exports["ɵbg"] = ProductDocumentsComponent;
4277
- exports["ɵbh"] = ProductSymbolsModule;
4278
- exports["ɵbi"] = ProductSymbolsComponent;
4279
- exports["ɵbj"] = ProductInfoTabsComponent;
4280
- exports["ɵbk"] = ProductDialogModule;
4281
- exports["ɵbl"] = ProductDialogComponent;
4282
- exports["ɵbm"] = RenderCarouselModule;
4283
- exports["ɵbn"] = RenderCarouselComponent;
4284
- exports["ɵbo"] = ProductPageComponent;
4285
- exports["ɵbp"] = ProductHdModule;
4286
- exports["ɵbq"] = ProductHdComponent;
4287
- exports["ɵbr"] = ProductScriptLoaderService;
4288
- exports["ɵbs"] = LocalStorageService;
4289
- exports["ɵc"] = PipeModule;
4290
- exports["ɵd"] = LocalizePipe;
4291
- exports["ɵe"] = DictionaryService;
4292
- exports["ɵf"] = JsonUtilsService;
4293
- exports["ɵg"] = ProductSelectorTypeComponent;
4294
- exports["ɵh"] = IconCacheService;
4295
- exports["ɵi"] = ImageCarouselModule;
4296
- exports["ɵj"] = ImageCarouselComponent;
4297
- exports["ɵk"] = ProductDescriptionModule;
4298
- exports["ɵl"] = ProductDescriptionComponent;
4299
- exports["ɵm"] = ProductAdditionalDescriptionModule;
4300
- exports["ɵn"] = ProductAdditionalDescriptionComponent;
4301
- exports["ɵo"] = ProductPriceModule;
4302
- exports["ɵp"] = ProductPriceComponent;
4303
- exports["ɵq"] = ProductAddtocartModule;
4304
- exports["ɵr"] = ProductAddtocartComponent;
4305
- exports["ɵs"] = ProductRelatedModule;
4306
- exports["ɵt"] = HeaderModule;
4307
- exports["ɵu"] = HeaderComponent;
4308
- exports["ɵv"] = ProductRelatedComponent;
4309
- exports["ɵw"] = ProductStockModule;
4310
- exports["ɵx"] = ProductStockComponent;
4311
- exports["ɵy"] = ProductDeliveryModule;
4312
- exports["ɵz"] = ProductDeliveryComponent;
4313
-
4314
- Object.defineProperty(exports, '__esModule', { value: true });
4315
-
4316
- }));
4317
- //# sourceMappingURL=colijnit-product.umd.js.map