@colijnit/product 2.9.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/app/components/core/header/header.module.d.ts +2 -0
  2. package/app/components/image-carousel/image-carousel.module.d.ts +2 -0
  3. package/app/components/product-additional-description/product-additional-description.module.d.ts +2 -0
  4. package/app/components/product-additional-info/product-additional-info.module.d.ts +2 -0
  5. package/app/components/product-addtocart/product-addtocart.module.d.ts +2 -0
  6. package/app/components/product-delivery/product-delivery.module.d.ts +2 -0
  7. package/app/components/product-description/product-description.module.d.ts +2 -0
  8. package/app/components/product-documents/product-document.module.d.ts +2 -0
  9. package/app/components/product-info-tabs/product-info-tabs.module.d.ts +2 -0
  10. package/app/components/product-page/product-page.component.d.ts +3 -1
  11. package/app/components/product-price/product-price.module.d.ts +2 -0
  12. package/app/components/product-properties/product-properties.module.d.ts +2 -0
  13. package/app/components/product-related/product-related.module.d.ts +2 -0
  14. package/app/components/product-selector-type/product-selector-type.module.d.ts +2 -0
  15. package/app/components/product-stock/product-stock.component.d.ts +3 -1
  16. package/app/components/product-stock/product-stock.module.d.ts +2 -0
  17. package/app/components/product-symbols/product-symbols.module.d.ts +2 -0
  18. package/app/ione-product.component.d.ts +6 -2
  19. package/app/ione-product.module.d.ts +0 -2
  20. package/bundles/colijnit-product.umd.js +1467 -998
  21. package/bundles/colijnit-product.umd.js.map +1 -1
  22. package/colijnit-product.d.ts +40 -28
  23. package/colijnit-product.metadata.json +1 -1
  24. package/esm2015/app/components/core/header/header.component.js +21 -17
  25. package/esm2015/app/components/core/header/header.module.js +19 -0
  26. package/esm2015/app/components/image-carousel/image-carousel.component.js +51 -35
  27. package/esm2015/app/components/image-carousel/image-carousel.module.js +23 -0
  28. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +20 -15
  29. package/esm2015/app/components/product-additional-description/product-additional-description.module.js +21 -0
  30. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +22 -20
  31. package/esm2015/app/components/product-additional-info/product-additional-info.module.js +21 -0
  32. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +43 -40
  33. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +24 -0
  34. package/esm2015/app/components/product-delivery/product-delivery.component.js +22 -15
  35. package/esm2015/app/components/product-delivery/product-delivery.module.js +23 -0
  36. package/esm2015/app/components/product-description/product-description.component.js +18 -14
  37. package/esm2015/app/components/product-description/product-description.module.js +19 -0
  38. package/esm2015/app/components/product-documents/product-document.module.js +25 -0
  39. package/esm2015/app/components/product-documents/product-documents.component.js +19 -18
  40. package/esm2015/app/components/product-external-source/product-external-source.component.js +32 -45
  41. package/esm2015/app/components/product-external-source/product-external-source.module.js +17 -19
  42. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +36 -18
  43. package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +29 -0
  44. package/esm2015/app/components/product-page/product-page.component.js +56 -60
  45. package/esm2015/app/components/product-page/product-page.module.js +40 -62
  46. package/esm2015/app/components/product-price/product-price.component.js +26 -19
  47. package/esm2015/app/components/product-price/product-price.module.js +23 -0
  48. package/esm2015/app/components/product-properties/product-properties.component.js +24 -17
  49. package/esm2015/app/components/product-properties/product-properties.module.js +21 -0
  50. package/esm2015/app/components/product-related/product-related.component.js +33 -24
  51. package/esm2015/app/components/product-related/product-related.module.js +24 -0
  52. package/esm2015/app/components/product-selector-type/product-selector-type.component.js +32 -28
  53. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +23 -0
  54. package/esm2015/app/components/product-stock/product-stock.component.js +29 -16
  55. package/esm2015/app/components/product-stock/product-stock.module.js +23 -0
  56. package/esm2015/app/components/product-symbols/product-symbols.component.js +28 -17
  57. package/esm2015/app/components/product-symbols/product-symbols.module.js +26 -0
  58. package/esm2015/app/enum/icon.enum.js +1 -1
  59. package/esm2015/app/enum/language-code.enum.js +1 -1
  60. package/esm2015/app/enum/selector-type.enum.js +1 -1
  61. package/esm2015/app/ione-product.component.js +58 -56
  62. package/esm2015/app/ione-product.module.js +21 -39
  63. package/esm2015/app/model/article-quantity.model.js +1 -1
  64. package/esm2015/app/model/icon.js +1 -1
  65. package/esm2015/app/model/productSettings.js +1 -1
  66. package/esm2015/app/model/render-modes.js +1 -1
  67. package/esm2015/app/model/render-parameters.js +1 -1
  68. package/esm2015/app/model/settings-options.js +1 -1
  69. package/esm2015/app/model/stock-and-delivery.js +1 -1
  70. package/esm2015/app/pipe/localize.pipe.js +8 -12
  71. package/esm2015/app/pipe/pipe.module.js +16 -18
  72. package/esm2015/app/product-version.js +3 -3
  73. package/esm2015/app/service/dictionary.service.js +10 -11
  74. package/esm2015/app/service/icon-cache.service.js +10 -12
  75. package/esm2015/app/service/product-connector-adapter.service.js +8 -8
  76. package/esm2015/app/service/product-connector.service.js +7 -8
  77. package/esm2015/app/service/product-event.service.js +12 -20
  78. package/esm2015/app/service/product-settings.service.js +7 -8
  79. package/esm2015/app/utils/bit-utils.js +1 -1
  80. package/esm2015/app/utils/json-utils.service.js +9 -10
  81. package/esm2015/assets/dictionary/text.properties.js +1 -1
  82. package/esm2015/colijnit-product.js +41 -29
  83. package/esm2015/public_api.js +2 -1
  84. package/fesm2015/colijnit-product.js +1070 -756
  85. package/fesm2015/colijnit-product.js.map +1 -1
  86. package/package.json +15 -18
  87. package/public_api.d.ts +1 -0
  88. package/app/components/product-info/product-info.component.d.ts +0 -14
  89. package/app/service/product-initializer.service.d.ts +0 -6
  90. package/bundles/colijnit-product.umd.min.js +0 -16
  91. package/bundles/colijnit-product.umd.min.js.map +0 -1
  92. package/esm2015/app/components/product-info/product-info.component.js +0 -38
  93. package/esm2015/app/service/product-initializer.service.js +0 -26
  94. package/esm5/app/components/core/header/header.component.js +0 -24
  95. package/esm5/app/components/image-carousel/image-carousel.component.js +0 -170
  96. package/esm5/app/components/product-additional-description/product-additional-description.component.js +0 -59
  97. package/esm5/app/components/product-additional-info/product-additional-info.component.js +0 -142
  98. package/esm5/app/components/product-addtocart/product-addtocart.component.js +0 -133
  99. package/esm5/app/components/product-delivery/product-delivery.component.js +0 -47
  100. package/esm5/app/components/product-description/product-description.component.js +0 -21
  101. package/esm5/app/components/product-documents/product-documents.component.js +0 -31
  102. package/esm5/app/components/product-external-source/product-external-source.component.js +0 -126
  103. package/esm5/app/components/product-external-source/product-external-source.module.js +0 -26
  104. package/esm5/app/components/product-info/product-info.component.js +0 -39
  105. package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +0 -70
  106. package/esm5/app/components/product-page/product-page.component.js +0 -247
  107. package/esm5/app/components/product-page/product-page.module.js +0 -69
  108. package/esm5/app/components/product-price/product-price.component.js +0 -74
  109. package/esm5/app/components/product-properties/product-properties.component.js +0 -60
  110. package/esm5/app/components/product-related/product-related.component.js +0 -78
  111. package/esm5/app/components/product-selector-type/product-selector-type.component.js +0 -54
  112. package/esm5/app/components/product-stock/product-stock.component.js +0 -41
  113. package/esm5/app/components/product-symbols/product-symbols.component.js +0 -43
  114. package/esm5/app/enum/icon.enum.js +0 -19
  115. package/esm5/app/enum/language-code.enum.js +0 -8
  116. package/esm5/app/enum/selector-type.enum.js +0 -7
  117. package/esm5/app/ione-product.component.js +0 -161
  118. package/esm5/app/ione-product.module.js +0 -47
  119. package/esm5/app/model/article-quantity.model.js +0 -7
  120. package/esm5/app/model/icon.js +0 -18
  121. package/esm5/app/model/productSettings.js +0 -18
  122. package/esm5/app/model/render-modes.js +0 -7
  123. package/esm5/app/model/render-parameters.js +0 -12
  124. package/esm5/app/model/settings-options.js +0 -15
  125. package/esm5/app/model/stock-and-delivery.js +0 -10
  126. package/esm5/app/pipe/localize.pipe.js +0 -33
  127. package/esm5/app/pipe/pipe.module.js +0 -23
  128. package/esm5/app/product-version.js +0 -12
  129. package/esm5/app/service/dictionary.service.js +0 -95
  130. package/esm5/app/service/icon-cache.service.js +0 -47
  131. package/esm5/app/service/product-connector-adapter.service.js +0 -248
  132. package/esm5/app/service/product-connector.service.js +0 -141
  133. package/esm5/app/service/product-event.service.js +0 -38
  134. package/esm5/app/service/product-initializer.service.js +0 -29
  135. package/esm5/app/service/product-settings.service.js +0 -107
  136. package/esm5/app/utils/bit-utils.js +0 -22
  137. package/esm5/app/utils/json-utils.service.js +0 -42
  138. package/esm5/assets/dictionary/text.properties.js +0 -67
  139. package/esm5/colijnit-product.js +0 -34
  140. package/esm5/public_api.js +0 -5
  141. package/fesm5/colijnit-product.js +0 -2582
  142. package/fesm5/colijnit-product.js.map +0 -1
@@ -1,10 +1,43 @@
1
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('@angular/common/http'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@angular/common'), require('@angular/platform-browser'), require('@angular/animations'), require('@colijnit/mainapi/build/model/co-document'), require('@colijnit/corecomponents'), require('@colijnit/articleapi/build/model/configurator-statistics-environment')) :
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', '@angular/common/http', '@colijnit/ioneconnector/build/utils/string-utils', '@angular/common', '@angular/platform-browser', '@angular/animations', '@colijnit/mainapi/build/model/co-document', '@colijnit/corecomponents', '@colijnit/articleapi/build/model/configurator-statistics-environment'], factory) :
4
- (global = 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.ng.common.http, global.stringUtils, global.ng.common, global.ng.platformBrowser, global.ng.animations, global.coDocument, global.corecomponents, global.configuratorStatisticsEnvironment));
5
- }(this, (function (exports, core, rxjs, options, articleFullObject, superArticle, articles, deliveryPrognosis, documentContent, businessObjectFactory, transaction, mainapi, http, stringUtils, common, platformBrowser, animations, coDocument, corecomponents, configuratorStatisticsEnvironment) { 'use strict';
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('@angular/common/http'), require('@colijnit/ioneconnector/build/utils/string-utils'), require('@angular/common'), require('@angular/animations'), require('@angular/platform-browser'), require('@colijnit/mainapi/build/model/co-document'), require('@colijnit/corecomponents'), require('@colijnit/articleapi/build/model/configurator-statistics-environment')) :
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', '@angular/common/http', '@colijnit/ioneconnector/build/utils/string-utils', '@angular/common', '@angular/animations', '@angular/platform-browser', '@colijnit/mainapi/build/model/co-document', '@colijnit/corecomponents', '@colijnit/articleapi/build/model/configurator-statistics-environment'], 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.ng.common.http, global.stringUtils, global.ng.common, global.ng.animations, global.ng.platformBrowser, global.coDocument, global.corecomponents, global.configuratorStatisticsEnvironment));
5
+ })(this, (function (exports, i0, rxjs, options, articleFullObject, superArticle, articles, deliveryPrognosis, documentContent, businessObjectFactory, transaction, mainapi, i1, stringUtils, common, animations, i1$1, coDocument, corecomponents, configuratorStatisticsEnvironment) { 'use strict';
6
6
 
7
- /*! *****************************************************************************
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 = "12.0.0";
35
+ this.publishDate = "23-9-2023 11:50:39";
36
+ }
37
+ return Version;
38
+ }());
39
+
40
+ /******************************************************************************
8
41
  Copyright (c) Microsoft Corporation.
9
42
 
10
43
  Permission to use, copy, modify, and/or distribute this software for any
@@ -18,36 +51,39 @@
18
51
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
52
  PERFORMANCE OF THIS SOFTWARE.
20
53
  ***************************************************************************** */
21
- /* global Reflect, Promise */
22
-
23
- var extendStatics = function(d, b) {
54
+ /* global Reflect, Promise, SuppressedError, Symbol */
55
+ var extendStatics = function (d, b) {
24
56
  extendStatics = Object.setPrototypeOf ||
25
57
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
58
+ function (d, b) { for (var p in b)
59
+ if (Object.prototype.hasOwnProperty.call(b, p))
60
+ d[p] = b[p]; };
27
61
  return extendStatics(d, b);
28
62
  };
29
-
30
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");
31
66
  extendStatics(d, b);
32
67
  function __() { this.constructor = d; }
33
68
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34
69
  }
35
-
36
- var __assign = function() {
70
+ var __assign = function () {
37
71
  __assign = Object.assign || function __assign(t) {
38
72
  for (var s, i = 1, n = arguments.length; i < n; i++) {
39
73
  s = arguments[i];
40
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
74
+ for (var p in s)
75
+ if (Object.prototype.hasOwnProperty.call(s, p))
76
+ t[p] = s[p];
41
77
  }
42
78
  return t;
43
79
  };
44
80
  return __assign.apply(this, arguments);
45
81
  };
46
-
47
82
  function __rest(s, e) {
48
83
  var t = {};
49
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
- t[p] = s[p];
84
+ for (var p in s)
85
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
86
+ t[p] = s[p];
51
87
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
88
  for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
53
89
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
@@ -55,184 +91,415 @@
55
91
  }
56
92
  return t;
57
93
  }
58
-
59
94
  function __decorate(decorators, target, key, desc) {
60
95
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
61
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
62
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
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;
63
102
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64
103
  }
65
-
66
104
  function __param(paramIndex, decorator) {
67
- return function (target, key) { decorator(target, key, paramIndex); }
105
+ return function (target, key) { decorator(target, key, paramIndex); };
68
106
  }
69
-
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
+ ;
70
165
  function __metadata(metadataKey, metadataValue) {
71
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
166
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
167
+ return Reflect.metadata(metadataKey, metadataValue);
72
168
  }
73
-
74
169
  function __awaiter(thisArg, _arguments, P, generator) {
75
170
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
76
171
  return new (P || (P = Promise))(function (resolve, reject) {
77
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
78
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
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
+ } }
79
184
  function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
80
185
  step((generator = generator.apply(thisArg, _arguments || [])).next());
81
186
  });
82
187
  }
83
-
84
188
  function __generator(thisArg, body) {
85
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
86
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
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;
87
192
  function verb(n) { return function (v) { return step([n, v]); }; }
88
193
  function step(op) {
89
- if (f) throw new TypeError("Generator is already executing.");
90
- while (_) try {
91
- 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) return t;
92
- if (y = 0, t) op = [op[0] & 2, t.value];
93
- switch (op[0]) {
94
- case 0: case 1: t = op; break;
95
- case 4: _.label++; return { value: op[1], done: false };
96
- case 5: _.label++; y = op[1]; op = [0]; continue;
97
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
98
- default:
99
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
100
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
101
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
102
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
103
- if (t[2]) _.ops.pop();
104
- _.trys.pop(); continue;
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, _);
105
244
  }
106
- op = body.call(thisArg, _);
107
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
108
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
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 };
109
255
  }
110
256
  }
111
-
112
- function __createBinding(o, m, k, k2) {
113
- if (k2 === undefined) k2 = k;
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;
114
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);
115
274
  }
116
-
117
- function __exportStar(m, exports) {
118
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
119
- }
120
-
121
275
  function __values(o) {
122
276
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
123
- if (m) return m.call(o);
124
- if (o && typeof o.length === "number") return {
125
- next: function () {
126
- if (o && i >= o.length) o = void 0;
127
- return { value: o && o[i++], done: !o };
128
- }
129
- };
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
+ };
130
287
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
131
288
  }
132
-
133
289
  function __read(o, n) {
134
290
  var m = typeof Symbol === "function" && o[Symbol.iterator];
135
- if (!m) return o;
291
+ if (!m)
292
+ return o;
136
293
  var i = m.call(o), r, ar = [], e;
137
294
  try {
138
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
295
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
296
+ ar.push(r.value);
297
+ }
298
+ catch (error) {
299
+ e = { error: error };
139
300
  }
140
- catch (error) { e = { error: error }; }
141
301
  finally {
142
302
  try {
143
- if (r && !r.done && (m = i["return"])) m.call(i);
303
+ if (r && !r.done && (m = i["return"]))
304
+ m.call(i);
305
+ }
306
+ finally {
307
+ if (e)
308
+ throw e.error;
144
309
  }
145
- finally { if (e) throw e.error; }
146
310
  }
147
311
  return ar;
148
312
  }
149
-
313
+ /** @deprecated */
150
314
  function __spread() {
151
315
  for (var ar = [], i = 0; i < arguments.length; i++)
152
316
  ar = ar.concat(__read(arguments[i]));
153
317
  return ar;
154
318
  }
155
-
319
+ /** @deprecated */
156
320
  function __spreadArrays() {
157
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
321
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
322
+ s += arguments[i].length;
158
323
  for (var r = Array(s), k = 0, i = 0; i < il; i++)
159
324
  for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
160
325
  r[k] = a[j];
161
326
  return r;
162
- };
163
-
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
+ }
164
339
  function __await(v) {
165
340
  return this instanceof __await ? (this.v = v, this) : new __await(v);
166
341
  }
167
-
168
342
  function __asyncGenerator(thisArg, _arguments, generator) {
169
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
343
+ if (!Symbol.asyncIterator)
344
+ throw new TypeError("Symbol.asyncIterator is not defined.");
170
345
  var g = generator.apply(thisArg, _arguments || []), i, q = [];
171
346
  return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
172
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
173
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
347
+ function verb(n) { if (g[n])
348
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
349
+ function resume(n, v) { try {
350
+ step(g[n](v));
351
+ }
352
+ catch (e) {
353
+ settle(q[0][3], e);
354
+ } }
174
355
  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
175
356
  function fulfill(value) { resume("next", value); }
176
357
  function reject(value) { resume("throw", value); }
177
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
358
+ function settle(f, v) { if (f(v), q.shift(), q.length)
359
+ resume(q[0][0], q[0][1]); }
178
360
  }
179
-
180
361
  function __asyncDelegator(o) {
181
362
  var i, p;
182
363
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
183
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
364
+ 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; }
184
365
  }
185
-
186
366
  function __asyncValues(o) {
187
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
367
+ if (!Symbol.asyncIterator)
368
+ throw new TypeError("Symbol.asyncIterator is not defined.");
188
369
  var m = o[Symbol.asyncIterator], i;
189
370
  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);
190
371
  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); }); }; }
191
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
372
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
192
373
  }
193
-
194
374
  function __makeTemplateObject(cooked, raw) {
195
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
375
+ if (Object.defineProperty) {
376
+ Object.defineProperty(cooked, "raw", { value: raw });
377
+ }
378
+ else {
379
+ cooked.raw = raw;
380
+ }
196
381
  return cooked;
382
+ }
383
+ ;
384
+ var __setModuleDefault = Object.create ? (function (o, v) {
385
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
386
+ }) : function (o, v) {
387
+ o["default"] = v;
197
388
  };
198
-
199
389
  function __importStar(mod) {
200
- if (mod && mod.__esModule) return mod;
390
+ if (mod && mod.__esModule)
391
+ return mod;
201
392
  var result = {};
202
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
203
- result.default = mod;
393
+ if (mod != null)
394
+ for (var k in mod)
395
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
396
+ __createBinding(result, mod, k);
397
+ __setModuleDefault(result, mod);
204
398
  return result;
205
399
  }
206
-
207
400
  function __importDefault(mod) {
208
401
  return (mod && mod.__esModule) ? mod : { default: mod };
209
402
  }
210
-
211
- function __classPrivateFieldGet(receiver, privateMap) {
212
- if (!privateMap.has(receiver)) {
213
- throw new TypeError("attempted to get private field on non-instance");
214
- }
215
- return privateMap.get(receiver);
403
+ function __classPrivateFieldGet(receiver, state, kind, f) {
404
+ if (kind === "a" && !f)
405
+ throw new TypeError("Private accessor was defined without a getter");
406
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
407
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
408
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
216
409
  }
217
-
218
- function __classPrivateFieldSet(receiver, privateMap, value) {
219
- if (!privateMap.has(receiver)) {
220
- throw new TypeError("attempted to set private field on non-instance");
410
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
411
+ if (kind === "m")
412
+ throw new TypeError("Private method is not writable");
413
+ if (kind === "a" && !f)
414
+ throw new TypeError("Private accessor was defined without a setter");
415
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
416
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
417
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
418
+ }
419
+ function __classPrivateFieldIn(state, receiver) {
420
+ if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
421
+ throw new TypeError("Cannot use 'in' operator on non-object");
422
+ return typeof state === "function" ? receiver === state : state.has(receiver);
423
+ }
424
+ function __addDisposableResource(env, value, async) {
425
+ if (value !== null && value !== void 0) {
426
+ if (typeof value !== "object" && typeof value !== "function")
427
+ throw new TypeError("Object expected.");
428
+ var dispose;
429
+ if (async) {
430
+ if (!Symbol.asyncDispose)
431
+ throw new TypeError("Symbol.asyncDispose is not defined.");
432
+ dispose = value[Symbol.asyncDispose];
433
+ }
434
+ if (dispose === void 0) {
435
+ if (!Symbol.dispose)
436
+ throw new TypeError("Symbol.dispose is not defined.");
437
+ dispose = value[Symbol.dispose];
438
+ }
439
+ if (typeof dispose !== "function")
440
+ throw new TypeError("Object not disposable.");
441
+ env.stack.push({ value: value, dispose: dispose, async: async });
442
+ }
443
+ else if (async) {
444
+ env.stack.push({ async: true });
221
445
  }
222
- privateMap.set(receiver, value);
223
446
  return value;
224
- }
225
-
226
- // this file is dynamically created, do not change this
227
- var Version = /** @class */ (function () {
228
- function Version() {
229
- this.name = "@colijnit/product";
230
- this.description = "Product detail page project for iOne";
231
- this.symVer = "2.9.0";
232
- this.publishDate = "7-9-2023 15:18:44";
447
+ }
448
+ var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
449
+ var e = new Error(message);
450
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
451
+ };
452
+ function __disposeResources(env) {
453
+ function fail(e) {
454
+ env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
455
+ env.hasError = true;
233
456
  }
234
- return Version;
235
- }());
457
+ function next() {
458
+ while (env.stack.length) {
459
+ var rec = env.stack.pop();
460
+ try {
461
+ var result = rec.dispose && rec.dispose.call(rec.value);
462
+ if (rec.async)
463
+ return Promise.resolve(result).then(next, function (e) { fail(e); return next(); });
464
+ }
465
+ catch (e) {
466
+ fail(e);
467
+ }
468
+ }
469
+ if (env.hasError)
470
+ throw env.error;
471
+ }
472
+ return next();
473
+ }
474
+ var tslib_es6 = {
475
+ __extends: __extends,
476
+ __assign: __assign,
477
+ __rest: __rest,
478
+ __decorate: __decorate,
479
+ __param: __param,
480
+ __metadata: __metadata,
481
+ __awaiter: __awaiter,
482
+ __generator: __generator,
483
+ __createBinding: __createBinding,
484
+ __exportStar: __exportStar,
485
+ __values: __values,
486
+ __read: __read,
487
+ __spread: __spread,
488
+ __spreadArrays: __spreadArrays,
489
+ __spreadArray: __spreadArray,
490
+ __await: __await,
491
+ __asyncGenerator: __asyncGenerator,
492
+ __asyncDelegator: __asyncDelegator,
493
+ __asyncValues: __asyncValues,
494
+ __makeTemplateObject: __makeTemplateObject,
495
+ __importStar: __importStar,
496
+ __importDefault: __importDefault,
497
+ __classPrivateFieldGet: __classPrivateFieldGet,
498
+ __classPrivateFieldSet: __classPrivateFieldSet,
499
+ __classPrivateFieldIn: __classPrivateFieldIn,
500
+ __addDisposableResource: __addDisposableResource,
501
+ __disposeResources: __disposeResources,
502
+ };
236
503
 
237
504
  var JsonUtilsService = /** @class */ (function () {
238
505
  function JsonUtilsService() {
@@ -263,14 +530,14 @@
263
530
  });
264
531
  });
265
532
  };
266
- JsonUtilsService.ɵprov = core.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
267
- JsonUtilsService = __decorate([
268
- core.Injectable({
269
- providedIn: 'root'
270
- })
271
- ], JsonUtilsService);
272
533
  return JsonUtilsService;
273
- }());
534
+ }());
535
+ JsonUtilsService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function JsonUtilsService_Factory() { return new JsonUtilsService(); }, token: JsonUtilsService, providedIn: "root" });
536
+ JsonUtilsService.decorators = [
537
+ { type: i0.Injectable, args: [{
538
+ providedIn: 'root'
539
+ },] }
540
+ ];
274
541
 
275
542
  var SettingsOptions = /** @class */ (function () {
276
543
  function SettingsOptions() {
@@ -547,11 +814,12 @@
547
814
  });
548
815
  });
549
816
  };
550
- ProductConnectorAdapterService = __decorate([
551
- core.Injectable()
552
- ], ProductConnectorAdapterService);
553
817
  return ProductConnectorAdapterService;
554
- }());
818
+ }());
819
+ ProductConnectorAdapterService.decorators = [
820
+ { type: i0.Injectable }
821
+ ];
822
+ ProductConnectorAdapterService.ctorParameters = function () { return []; };
555
823
 
556
824
  var LanguageCode;
557
825
  (function (LanguageCode) {
@@ -642,7 +910,7 @@
642
910
  get: function () {
643
911
  return this._language;
644
912
  },
645
- enumerable: true,
913
+ enumerable: false,
646
914
  configurable: true
647
915
  });
648
916
  Object.defineProperty(DictionaryService.prototype, "rootUrl", {
@@ -650,7 +918,7 @@
650
918
  this._rootUrl = value;
651
919
  this._dictBasePath = this._rootUrl + '/' + this.dictionaryUrl;
652
920
  },
653
- enumerable: true,
921
+ enumerable: false,
654
922
  configurable: true
655
923
  });
656
924
  // Loads the dictionary for given language in memory.
@@ -694,22 +962,22 @@
694
962
  text = text.charAt(0).toLowerCase() + text.slice(1);
695
963
  }
696
964
  if (replacementTexts.length > 0) {
697
- text = stringUtils.StringUtils.ReplaceOccurrencesIn.apply(stringUtils.StringUtils, __spread([text, this._placeholder], replacementTexts));
965
+ text = stringUtils.StringUtils.ReplaceOccurrencesIn.apply(stringUtils.StringUtils, __spreadArray([text, this._placeholder], __read(replacementTexts)));
698
966
  }
699
967
  return text;
700
968
  };
701
- DictionaryService.ctorParameters = function () { return [
702
- { type: http.HttpClient },
703
- { type: JsonUtilsService }
704
- ]; };
705
- DictionaryService.ɵprov = core.ɵɵdefineInjectable({ factory: function DictionaryService_Factory() { return new DictionaryService(core.ɵɵinject(http.HttpClient), core.ɵɵinject(JsonUtilsService)); }, token: DictionaryService, providedIn: "root" });
706
- DictionaryService = __decorate([
707
- core.Injectable({
708
- providedIn: 'root'
709
- })
710
- ], DictionaryService);
711
969
  return DictionaryService;
712
- }());
970
+ }());
971
+ 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" });
972
+ DictionaryService.decorators = [
973
+ { type: i0.Injectable, args: [{
974
+ providedIn: 'root'
975
+ },] }
976
+ ];
977
+ DictionaryService.ctorParameters = function () { return [
978
+ { type: i1.HttpClient },
979
+ { type: JsonUtilsService }
980
+ ]; };
713
981
 
714
982
  var ProductSettingsService = /** @class */ (function () {
715
983
  function ProductSettingsService(_jsonUtilsService, _dictionaryService) {
@@ -724,7 +992,7 @@
724
992
  set: function (value) {
725
993
  this._settings = value;
726
994
  },
727
- enumerable: true,
995
+ enumerable: false,
728
996
  configurable: true
729
997
  });
730
998
  ProductSettingsService.prototype.initializeSettings = function () {
@@ -800,15 +1068,15 @@
800
1068
  });
801
1069
  });
802
1070
  };
803
- ProductSettingsService.ctorParameters = function () { return [
804
- { type: JsonUtilsService },
805
- { type: DictionaryService }
806
- ]; };
807
- ProductSettingsService = __decorate([
808
- core.Injectable()
809
- ], ProductSettingsService);
810
1071
  return ProductSettingsService;
811
- }());
1072
+ }());
1073
+ ProductSettingsService.decorators = [
1074
+ { type: i0.Injectable }
1075
+ ];
1076
+ ProductSettingsService.ctorParameters = function () { return [
1077
+ { type: JsonUtilsService },
1078
+ { type: DictionaryService }
1079
+ ]; };
812
1080
 
813
1081
  // Holds all iONE backend related state and methods for a running HomeDecorator. To be used anywhere internally.
814
1082
  var ProductConnectorService = /** @class */ (function () {
@@ -825,7 +1093,7 @@
825
1093
  get: function () {
826
1094
  return this._shouldShowLoader;
827
1095
  },
828
- enumerable: true,
1096
+ enumerable: false,
829
1097
  configurable: true
830
1098
  });
831
1099
  ProductConnectorService.prototype.ngOnDestroy = function () {
@@ -934,15 +1202,15 @@
934
1202
  ProductConnectorService.prototype.onShowLoaderChange = function (showLoader) {
935
1203
  this._shouldShowLoader = showLoader;
936
1204
  };
937
- ProductConnectorService.ctorParameters = function () { return [
938
- { type: ProductConnectorAdapterService },
939
- { type: ProductSettingsService }
940
- ]; };
941
- ProductConnectorService = __decorate([
942
- core.Injectable()
943
- ], ProductConnectorService);
944
1205
  return ProductConnectorService;
945
- }());
1206
+ }());
1207
+ ProductConnectorService.decorators = [
1208
+ { type: i0.Injectable }
1209
+ ];
1210
+ ProductConnectorService.ctorParameters = function () { return [
1211
+ { type: ProductConnectorAdapterService },
1212
+ { type: ProductSettingsService }
1213
+ ]; };
946
1214
 
947
1215
  var ProductEventService = /** @class */ (function () {
948
1216
  function ProductEventService() {
@@ -959,27 +1227,22 @@
959
1227
  this.onArticleInfoReceived = new rxjs.Subject();
960
1228
  this.onUpdateProductInfoTab = new rxjs.Subject();
961
1229
  }
962
- __decorate([
963
- core.Output()
964
- ], ProductEventService.prototype, "onAddToCart", void 0);
965
- __decorate([
966
- core.Output()
967
- ], ProductEventService.prototype, "onAlternativeClick", void 0);
968
- __decorate([
969
- core.Output()
970
- ], ProductEventService.prototype, "onAddToQuote", void 0);
971
- __decorate([
972
- core.Output()
973
- ], ProductEventService.prototype, "onForceRenderImage", void 0);
974
- ProductEventService = __decorate([
975
- core.Directive(),
976
- core.Injectable()
977
- ], ProductEventService);
978
1230
  return ProductEventService;
979
- }());
1231
+ }());
1232
+ ProductEventService.decorators = [
1233
+ { type: i0.Directive },
1234
+ { type: i0.Injectable }
1235
+ ];
1236
+ ProductEventService.propDecorators = {
1237
+ onAddToCart: [{ type: i0.Output }],
1238
+ onAlternativeClick: [{ type: i0.Output }],
1239
+ onAddToQuote: [{ type: i0.Output }],
1240
+ onForceRenderImage: [{ type: i0.Output }]
1241
+ };
980
1242
 
981
1243
  var IoneProductComponent = /** @class */ (function () {
982
1244
  function IoneProductComponent(_dictionary, _jsonUtils, _ione, _changeDetector, _appEventService, _settingsService) {
1245
+ var _this = this;
983
1246
  // this.sku = 'CF-HILL';
984
1247
  // this.sku = 'CF-ALMADA';
985
1248
  // this.sku = 'CF-39904ANT';
@@ -990,27 +1253,30 @@
990
1253
  // this.sku = '1000234793';
991
1254
  // this.sku = '1066';
992
1255
  // this.sku = '104';
993
- var _this = this;
994
1256
  this._dictionary = _dictionary;
995
1257
  this._jsonUtils = _jsonUtils;
996
1258
  this._ione = _ione;
997
1259
  this._changeDetector = _changeDetector;
998
1260
  this._appEventService = _appEventService;
999
1261
  this._settingsService = _settingsService;
1000
- this.onAddToCart = new core.EventEmitter();
1001
- this.forceRenderImage = new core.EventEmitter();
1002
- this.onAlternativeClick = new core.EventEmitter();
1003
- this.onArticleInfoReceived = new core.EventEmitter();
1004
- this.onArticleReceived = new core.EventEmitter();
1005
- this.onSelectionsReceived = new core.EventEmitter();
1006
- this.onAddToQuote = new core.EventEmitter();
1262
+ this.onAddToCart = new i0.EventEmitter();
1263
+ this.forceRenderImage = new i0.EventEmitter();
1264
+ this.onAlternativeClick = new i0.EventEmitter();
1265
+ this.onArticleInfoReceived = new i0.EventEmitter();
1266
+ this.onArticleReceived = new i0.EventEmitter();
1267
+ this.onSelectionsReceived = new i0.EventEmitter();
1268
+ this.onAddToQuote = new i0.EventEmitter();
1269
+ this.openStockEvent = new i0.EventEmitter();
1270
+ this.settingsLoaded = false;
1007
1271
  this._subs = [];
1008
1272
  // this.sku = "70000107";
1009
1273
  this._subs.push(
1010
1274
  // this._dictionary.dictionaryLoaded.subscribe(d => this.upAndLoaded = true),
1011
1275
  this._appEventService.onAddToCart.subscribe(function (json) {
1012
1276
  _this._handleAddToCart(json);
1013
- }), 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); }));
1277
+ }), 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._settingsService.settingsLoaded.subscribe(function (loaded) {
1278
+ _this.settingsLoaded = loaded;
1279
+ }));
1014
1280
  }
1015
1281
  Object.defineProperty(IoneProductComponent.prototype, "settings", {
1016
1282
  get: function () {
@@ -1029,9 +1295,21 @@
1029
1295
  // this._initConnection(settings);
1030
1296
  }
1031
1297
  },
1032
- enumerable: true,
1298
+ enumerable: false,
1033
1299
  configurable: true
1034
1300
  });
1301
+ IoneProductComponent.prototype.ngOnInit = function () {
1302
+ return __awaiter(this, void 0, void 0, function () {
1303
+ return __generator(this, function (_a) {
1304
+ switch (_a.label) {
1305
+ case 0: return [4 /*yield*/, this._settingsService.initializeSettings()];
1306
+ case 1:
1307
+ _a.sent();
1308
+ return [2 /*return*/];
1309
+ }
1310
+ });
1311
+ });
1312
+ };
1035
1313
  IoneProductComponent.prototype.ngOnChanges = function (changes) {
1036
1314
  this._changeDetector.detectChanges();
1037
1315
  };
@@ -1043,7 +1321,7 @@
1043
1321
  };
1044
1322
  IoneProductComponent.prototype._handleAddToCart = function (json) {
1045
1323
  return __awaiter(this, void 0, void 0, function () {
1046
- var articleTreeData, i, good, subArticle;
1324
+ var articleTreeData, compositeGoods, _loop_1, this_1, i;
1047
1325
  return __generator(this, function (_a) {
1048
1326
  switch (_a.label) {
1049
1327
  case 0:
@@ -1052,14 +1330,32 @@
1052
1330
  articleTreeData = JSON.parse(json);
1053
1331
  if (!(articleTreeData.articleTree && articleTreeData.articleTree.article)) return [3 /*break*/, 7];
1054
1332
  if (!(articleTreeData.articleTree.compositeGoods && Array.isArray(articleTreeData.articleTree.compositeGoods) &&
1055
- articleTreeData.articleTree.compositeGoods.length > 0 && articleTreeData.articleTree.subArticles && Array.isArray(articleTreeData.articleTree.subArticles))) return [3 /*break*/, 5];
1333
+ articleTreeData.articleTree.compositeGoods.length > 0 &&
1334
+ articleTreeData.articleTree.subArticles && Array.isArray(articleTreeData.articleTree.subArticles))) return [3 /*break*/, 5];
1335
+ compositeGoods = articleTreeData.articleTree.compositeGoods;
1336
+ compositeGoods.sort(function (a, b) { return a.versionNumber < b.versionNumber ? -1 : 1; });
1337
+ _loop_1 = function (i) {
1338
+ var good, subArticle;
1339
+ return __generator(this, function (_b) {
1340
+ switch (_b.label) {
1341
+ case 0:
1342
+ good = compositeGoods[i];
1343
+ subArticle = articleTreeData.articleTree.subArticles.find(function (s) { return s.goodId === good.memberGoodId; });
1344
+ if (!subArticle) return [3 /*break*/, 2];
1345
+ return [4 /*yield*/, this_1._ione.addWebSessionTransactionLine(subArticle.articleNumber, good.quantity)];
1346
+ case 1:
1347
+ _b.sent();
1348
+ _b.label = 2;
1349
+ case 2: return [2 /*return*/];
1350
+ }
1351
+ });
1352
+ };
1353
+ this_1 = this;
1056
1354
  i = 0;
1057
1355
  _a.label = 1;
1058
1356
  case 1:
1059
- if (!(i < articleTreeData.articleTree.compositeGoods.length - 1)) return [3 /*break*/, 4];
1060
- good = articleTreeData.articleTree.compositeGoods[i];
1061
- subArticle = articleTreeData.articleTree.subArticles[i];
1062
- return [4 /*yield*/, this._ione.addWebSessionTransactionLine(subArticle.articleNumber, good.quantity)];
1357
+ if (!(i < compositeGoods.length)) return [3 /*break*/, 4];
1358
+ return [5 /*yield**/, _loop_1(i)];
1063
1359
  case 2:
1064
1360
  _a.sent();
1065
1361
  _a.label = 3;
@@ -1078,198 +1374,45 @@
1078
1374
  });
1079
1375
  });
1080
1376
  };
1081
- IoneProductComponent.ctorParameters = function () { return [
1082
- { type: DictionaryService },
1083
- { type: JsonUtilsService },
1084
- { type: ProductConnectorService },
1085
- { type: core.ChangeDetectorRef },
1086
- { type: ProductEventService },
1087
- { type: ProductSettingsService }
1088
- ]; };
1089
- __decorate([
1090
- core.Input()
1091
- ], IoneProductComponent.prototype, "sku", void 0);
1092
- __decorate([
1093
- core.Input()
1094
- ], IoneProductComponent.prototype, "settings", null);
1095
- __decorate([
1096
- core.Output()
1097
- ], IoneProductComponent.prototype, "onAddToCart", void 0);
1098
- __decorate([
1099
- core.Output()
1100
- ], IoneProductComponent.prototype, "forceRenderImage", void 0);
1101
- __decorate([
1102
- core.Output()
1103
- ], IoneProductComponent.prototype, "onAlternativeClick", void 0);
1104
- __decorate([
1105
- core.Output()
1106
- ], IoneProductComponent.prototype, "onArticleInfoReceived", void 0);
1107
- __decorate([
1108
- core.Output()
1109
- ], IoneProductComponent.prototype, "onArticleReceived", void 0);
1110
- __decorate([
1111
- core.Output()
1112
- ], IoneProductComponent.prototype, "onSelectionsReceived", void 0);
1113
- __decorate([
1114
- core.Output()
1115
- ], IoneProductComponent.prototype, "onAddToQuote", void 0);
1116
- IoneProductComponent = __decorate([
1117
- core.Component({
1118
- selector: 'app-ione-product',
1119
- template: "\n <app-product-page [sku]=\"sku\"\n ></app-product-page>\n ",
1120
- providers: [
1121
- ProductEventService,
1122
- ProductSettingsService,
1123
- ProductConnectorAdapterService,
1124
- ProductConnectorService
1125
- ],
1126
- encapsulation: core.ViewEncapsulation.Emulated,
1127
- styles: [""]
1128
- })
1129
- ], IoneProductComponent);
1130
- return IoneProductComponent;
1131
- }());
1132
-
1133
- var ProductInitializerService = /** @class */ (function () {
1134
- function ProductInitializerService(_settingsService) {
1135
- this._settingsService = _settingsService;
1136
- }
1137
- ProductInitializerService.prototype.initializeApp = function () {
1138
- return __awaiter(this, void 0, void 0, function () {
1139
- return __generator(this, function (_a) {
1140
- return [2 /*return*/, this._settingsService.initializeSettings()];
1141
- });
1142
- });
1377
+ IoneProductComponent.prototype.openStock = function () {
1378
+ this.openStockEvent.emit();
1143
1379
  };
1144
- ProductInitializerService.ctorParameters = function () { return [
1145
- { type: ProductSettingsService }
1146
- ]; };
1147
- ProductInitializerService.ɵprov = core.ɵɵdefineInjectable({ factory: function ProductInitializerService_Factory() { return new ProductInitializerService(core.ɵɵinject(ProductSettingsService)); }, token: ProductInitializerService, providedIn: "root" });
1148
- ProductInitializerService = __decorate([
1149
- core.Injectable({
1150
- providedIn: 'root',
1151
- })
1152
- ], ProductInitializerService);
1153
- return ProductInitializerService;
1154
- }());
1155
-
1156
- var ProductExternalSourceComponent = /** @class */ (function () {
1157
- function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
1158
- this._sanitizer = _sanitizer;
1159
- this._productConnectorService = _productConnectorService;
1160
- this._appEventService = _appEventService;
1161
- this.addToCart = new core.EventEmitter();
1162
- this.addToQuote = new core.EventEmitter();
1163
- this.alternativeClick = new core.EventEmitter();
1164
- this.showProduct = false;
1165
- this.loaded = false;
1166
- this.externalSettings = {};
1167
- this._subs = [];
1168
- }
1169
- Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
1170
- get: function () {
1171
- return this._externalSource;
1172
- },
1173
- set: function (value) {
1174
- this._externalSource = value;
1175
- this.loaded = false;
1176
- this._prepareExternalSource();
1177
- },
1178
- enumerable: true,
1179
- configurable: true
1180
- });
1181
- ProductExternalSourceComponent.prototype.showClass = function () {
1182
- return true;
1183
- };
1184
- ProductExternalSourceComponent.prototype.ngOnInit = function () {
1185
- var _this = this;
1186
- this._subs.push(this._appEventService.onAddToCart.subscribe(function (json) { return _this.addToCart.next(json); }), this._appEventService.onAddToQuote.subscribe(function (json) { return _this.addToQuote.next(json); }), this._appEventService.onAlternativeClick.subscribe(function (article) { return _this.alternativeClick.next(article); }));
1187
- };
1188
- ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
1189
- this._subs.forEach(function (s) { return s.unsubscribe(); });
1190
- };
1191
- ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
1192
- return __awaiter(this, void 0, void 0, function () {
1193
- var bundleSettings;
1194
- return __generator(this, function (_a) {
1195
- switch (_a.label) {
1196
- case 0:
1197
- if (!this._externalSource) {
1198
- return [2 /*return*/];
1199
- }
1200
- this.externalUrl = undefined;
1201
- this.externalSettings = {};
1202
- if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
1203
- return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
1204
- case 1:
1205
- bundleSettings = _a.sent();
1206
- this.externalSettings = JSON.parse(bundleSettings);
1207
- if (this.options) {
1208
- this.externalSettings.options = this.options;
1209
- }
1210
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
1211
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
1212
- if (this.externalSource.username && this.externalSource.password) {
1213
- this.externalSettings.useLoginEncryption = true;
1214
- this.externalSettings.username = this.externalSource.username;
1215
- this.externalSettings.password = this.externalSource.password;
1216
- }
1217
- // finally show the catalog
1218
- this.showProduct = true;
1219
- return [3 /*break*/, 3];
1220
- case 2:
1221
- this.externalUrl = this.externalSource.url;
1222
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
1223
- this.showProduct = false;
1224
- _a.label = 3;
1225
- case 3:
1226
- this.loaded = true;
1227
- return [2 /*return*/];
1228
- }
1229
- });
1230
- });
1231
- };
1232
- ProductExternalSourceComponent.ctorParameters = function () { return [
1233
- { type: platformBrowser.DomSanitizer },
1234
- { type: ProductConnectorService },
1235
- { type: ProductEventService }
1236
- ]; };
1237
- __decorate([
1238
- core.Input()
1239
- ], ProductExternalSourceComponent.prototype, "sku", void 0);
1240
- __decorate([
1241
- core.Input()
1242
- ], ProductExternalSourceComponent.prototype, "externalSource", null);
1243
- __decorate([
1244
- core.Input()
1245
- ], ProductExternalSourceComponent.prototype, "options", void 0);
1246
- __decorate([
1247
- core.Output()
1248
- ], ProductExternalSourceComponent.prototype, "addToCart", void 0);
1249
- __decorate([
1250
- core.Output()
1251
- ], ProductExternalSourceComponent.prototype, "addToQuote", void 0);
1252
- __decorate([
1253
- core.Output()
1254
- ], ProductExternalSourceComponent.prototype, "alternativeClick", void 0);
1255
- __decorate([
1256
- core.HostBinding('class.co-product-external-source')
1257
- ], ProductExternalSourceComponent.prototype, "showClass", null);
1258
- ProductExternalSourceComponent = __decorate([
1259
- core.Component({
1260
- selector: 'co-product-external-source',
1261
- template: "\n <ng-container *ngIf=\"loaded\">\n <ng-container *ngIf=\"showProduct\">\n <app-product-page\n [sku]=\"sku\"\n [settings]=\"externalSettings\"\n ></app-product-page>\n </ng-container>\n <ng-container *ngIf=\"!showProduct\">\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\n </ng-container>\n </ng-container>\n ",
1262
- providers: [
1263
- ProductEventService,
1264
- ProductSettingsService,
1265
- ProductConnectorAdapterService,
1266
- ProductConnectorService
1267
- ],
1268
- encapsulation: core.ViewEncapsulation.None
1269
- })
1270
- ], ProductExternalSourceComponent);
1271
- return ProductExternalSourceComponent;
1272
- }());
1380
+ return IoneProductComponent;
1381
+ }());
1382
+ IoneProductComponent.decorators = [
1383
+ { type: i0.Component, args: [{
1384
+ selector: 'app-ione-product',
1385
+ template: "\n <app-product-page *ngIf=\"settingsLoaded\"\n (openStockEvent)=\"openStock()\" [sku]=\"sku\"\n ></app-product-page>\n ",
1386
+ providers: [
1387
+ ProductEventService,
1388
+ ProductSettingsService,
1389
+ ProductConnectorAdapterService,
1390
+ ProductConnectorService
1391
+ ],
1392
+ encapsulation: i0.ViewEncapsulation.Emulated,
1393
+ styles: [""]
1394
+ },] }
1395
+ ];
1396
+ IoneProductComponent.ctorParameters = function () { return [
1397
+ { type: DictionaryService },
1398
+ { type: JsonUtilsService },
1399
+ { type: ProductConnectorService },
1400
+ { type: i0.ChangeDetectorRef },
1401
+ { type: ProductEventService },
1402
+ { type: ProductSettingsService }
1403
+ ]; };
1404
+ IoneProductComponent.propDecorators = {
1405
+ sku: [{ type: i0.Input }],
1406
+ settings: [{ type: i0.Input }],
1407
+ onAddToCart: [{ type: i0.Output }],
1408
+ forceRenderImage: [{ type: i0.Output }],
1409
+ onAlternativeClick: [{ type: i0.Output }],
1410
+ onArticleInfoReceived: [{ type: i0.Output }],
1411
+ onArticleReceived: [{ type: i0.Output }],
1412
+ onSelectionsReceived: [{ type: i0.Output }],
1413
+ onAddToQuote: [{ type: i0.Output }],
1414
+ openStockEvent: [{ type: i0.Output }]
1415
+ };
1273
1416
 
1274
1417
  var StockAndDelivery = /** @class */ (function () {
1275
1418
  function StockAndDelivery(stock, deliveryDescription) {
@@ -1339,7 +1482,7 @@
1339
1482
  get: function () {
1340
1483
  return this._iconCache;
1341
1484
  },
1342
- enumerable: true,
1485
+ enumerable: false,
1343
1486
  configurable: true
1344
1487
  });
1345
1488
  IconCacheService.prototype.getIcon = function (iconName) {
@@ -1352,17 +1495,17 @@
1352
1495
  }
1353
1496
  }
1354
1497
  };
1355
- IconCacheService.ctorParameters = function () { return [
1356
- { type: platformBrowser.DomSanitizer }
1357
- ]; };
1358
- IconCacheService.ɵprov = core.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(core.ɵɵinject(platformBrowser.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
1359
- IconCacheService = __decorate([
1360
- core.Injectable({
1361
- providedIn: 'root'
1362
- })
1363
- ], IconCacheService);
1364
1498
  return IconCacheService;
1365
- }());
1499
+ }());
1500
+ IconCacheService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0__namespace.ɵɵinject(i1__namespace$1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
1501
+ IconCacheService.decorators = [
1502
+ { type: i0.Injectable, args: [{
1503
+ providedIn: 'root'
1504
+ },] }
1505
+ ];
1506
+ IconCacheService.ctorParameters = function () { return [
1507
+ { type: i1$1.DomSanitizer }
1508
+ ]; };
1366
1509
 
1367
1510
  var ProductPageComponent = /** @class */ (function () {
1368
1511
  function ProductPageComponent(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
@@ -1374,6 +1517,7 @@
1374
1517
  this.settingsService = settingsService;
1375
1518
  this.appEventService = appEventService;
1376
1519
  this.icon = IconEnum;
1520
+ this.openStockEvent = new i0.EventEmitter();
1377
1521
  this.configurable = false;
1378
1522
  this.threeD = false;
1379
1523
  this.show2D = true;
@@ -1407,7 +1551,7 @@
1407
1551
  this._getArticle();
1408
1552
  }
1409
1553
  },
1410
- enumerable: true,
1554
+ enumerable: false,
1411
1555
  configurable: true
1412
1556
  });
1413
1557
  Object.defineProperty(ProductPageComponent.prototype, "settings", {
@@ -1424,7 +1568,7 @@
1424
1568
  }
1425
1569
  }
1426
1570
  },
1427
- enumerable: true,
1571
+ enumerable: false,
1428
1572
  configurable: true
1429
1573
  });
1430
1574
  Object.defineProperty(ProductPageComponent.prototype, "fullScreen", {
@@ -1439,14 +1583,14 @@
1439
1583
  // this.fullscreenAnimationEnd = true;
1440
1584
  // }, 400)
1441
1585
  },
1442
- enumerable: true,
1586
+ enumerable: false,
1443
1587
  configurable: true
1444
1588
  });
1445
1589
  Object.defineProperty(ProductPageComponent.prototype, "fullScreenIcon", {
1446
1590
  get: function () {
1447
1591
  return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
1448
1592
  },
1449
- enumerable: true,
1593
+ enumerable: false,
1450
1594
  configurable: true
1451
1595
  });
1452
1596
  Object.defineProperty(ProductPageComponent.prototype, "currentView", {
@@ -1459,7 +1603,7 @@
1459
1603
  this.show3D = this._currentView === SelectorType.ThreeD;
1460
1604
  this._changeDetector.detectChanges();
1461
1605
  },
1462
- enumerable: true,
1606
+ enumerable: false,
1463
1607
  configurable: true
1464
1608
  });
1465
1609
  ProductPageComponent.prototype.ngOnInit = function () {
@@ -1535,70 +1679,66 @@
1535
1679
  });
1536
1680
  });
1537
1681
  };
1538
- ProductPageComponent.ctorParameters = function () { return [
1539
- { type: ProductConnectorService },
1540
- { type: core.Renderer2 },
1541
- { type: core.ChangeDetectorRef },
1542
- { type: IconCacheService },
1543
- { type: ProductSettingsService },
1544
- { type: ProductEventService }
1545
- ]; };
1546
- __decorate([
1547
- core.ViewChild('configurator', { read: core.ElementRef })
1548
- ], ProductPageComponent.prototype, "configurator", void 0);
1549
- __decorate([
1550
- core.ViewChild('selections', { read: core.ElementRef })
1551
- ], ProductPageComponent.prototype, "selections", void 0);
1552
- __decorate([
1553
- core.ViewChild('fullscreenbutton', { read: core.ElementRef })
1554
- ], ProductPageComponent.prototype, "fullscreenbutton", void 0);
1555
- __decorate([
1556
- core.Input()
1557
- ], ProductPageComponent.prototype, "sku", null);
1558
- __decorate([
1559
- core.Input()
1560
- ], ProductPageComponent.prototype, "settings", null);
1561
- ProductPageComponent = __decorate([
1562
- core.Component({
1563
- selector: 'app-product-page',
1564
- template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
1565
- animations: [
1566
- animations.trigger('toggleFullScreen', [
1567
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
1568
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
1569
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1570
- ]),
1571
- animations.trigger('toggleTopLeft', [
1572
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
1573
- animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
1574
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1575
- ]),
1576
- animations.trigger('toggleTopRight', [
1577
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
1578
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
1579
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1580
- ]),
1581
- animations.trigger('toggleFullScreenRight', [
1582
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
1583
- animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
1584
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1585
- ]),
1586
- animations.trigger('toggleVisibilityByState', [
1587
- animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
1588
- animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
1589
- animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out')),
1590
- ]),
1591
- animations.trigger('toggleVisibility', [
1592
- animations.state('void', animations.style({ 'opacity': '0' })),
1593
- animations.state('*', animations.style({ 'opacity': '1' })),
1594
- animations.transition('void => *', animations.animate('200ms ease-in-out')),
1595
- ])
1596
- ],
1597
- styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content.no-top-margin,.page-wrapper-content:first-child{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:.2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional,.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74b77f}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px 0 rgba(0,0,0,.2)}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:.14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:0;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:.2s}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:.2s;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313c;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:0;padding:15px 0;background:0 0!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:700;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:700;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width:950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left,.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width:650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}"]
1598
- })
1599
- ], ProductPageComponent);
1682
+ ProductPageComponent.prototype.openStock = function () {
1683
+ this.openStockEvent.emit();
1684
+ };
1600
1685
  return ProductPageComponent;
1601
- }());
1686
+ }());
1687
+ ProductPageComponent.decorators = [
1688
+ { type: i0.Component, args: [{
1689
+ selector: 'app-product-page',
1690
+ template: "<ng-container *ngIf=\"settingsLoaded\">\r\n <div class=\"page-wrapper\">\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <div class=\"product-image-container\">\r\n <div class=\"product-page-block-selector-type\">\r\n <app-product-selector-type class=\"default-padding\"\r\n [(currentType)]=\"currentView\"\r\n [show2D]=\"configurable\"\r\n [show3D]=\"threeD\"\r\n ></app-product-selector-type>\r\n </div>\r\n <div class=\"product-page-block-image default-padding\" [class.full]=\"fullScreen\">\r\n <app-image-carousel [@toggleVisibilityByState]=\"show2D ? 'show' : 'hide'\" [images]=\"article?.images\" [showRefresh]=\"configurable && threeD\"></app-image-carousel>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-configurator #configurator class=\"threed-configurator\"\r\n [class.configurator-full-screen]=\"fullScreen\"\r\n [@toggleVisibilityByState]=\"show3D ? 'show' : 'hide'\"\r\n [@toggleFullScreen]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n ></threed-configurator>\r\n </ng-container>\r\n <co-icon #fullscreenbutton class=\"fullscreen-button\" *ngIf=\"show3D\"\r\n [@toggleTopLeft]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [iconData]=\"iconCache.getIcon(fullScreenIcon)\"\r\n (click)=\"showFullScreen()\"></co-icon>\r\n <co-icon class=\"threed-watermark\" *ngIf=\"show3D && fullScreen\"\r\n [iconData]=\"iconCache.getIcon(icon.Logo)\"></co-icon>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-description\">\r\n <app-product-description class=\"default-padding\" [article]=\"article\"></app-product-description>\r\n </div>\r\n <div class=\"product-page-block-additional\">\r\n <div class=\"product-page-block-additional-description\">\r\n <app-product-additional-description class=\"default-padding\" [article]=\"article\"></app-product-additional-description>\r\n </div>\r\n <div class=\"product-page-block-price\" [class.full]=\"configuring\">\r\n <app-product-price class=\"s-padding\" *ngIf=\"!configuring\"\r\n [pricing]=\"article?.pricing\"\r\n [configurable]=\"configurable\"\r\n ></app-product-price>\r\n <ng-container *ngIf=\"settingsLoaded\">\r\n <threed-selections #selections class=\"threed-selections\" [class.show-selections]=\"configuring\" [@toggleFullScreenRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\"\r\n [class.default-padding]=\"!fullScreen\"\r\n [class.show-full-screen]=\"fullScreen\"\r\n [class.mini-scrollbar]=\"fullScreen\"\r\n [sku]=\"sku\"\r\n [settings]=\"settings\"\r\n (onUserActionFromThreeD)=\"configuring = true\"\r\n (instanceSet)=\"setInstance($event)\"\r\n (onImageReceived)=\"appEventService.onImageReceived.next($event)\"\r\n (onRenderStarted)=\"appEventService.onRenderStarted.next()\"\r\n (onDraftRenderImageReceived)=\"appEventService.onDraftRenderImageReceived.next($event)\"\r\n (onArticleReceived)=\"appEventService.onArticleReceived.next($event.detail)\"\r\n (onSelectionsReceived)=\"appEventService.onSelectionsReceived.next($event.detail)\"\r\n (onArticleInfoReceived)=\"appEventService.onArticleInfoReceived.next($event.detail)\"\r\n ></threed-selections>\r\n </ng-container>\r\n </div>\r\n <div class=\"product-page-block-addtocart no-padding product-action-buttons\" *ngIf=\"!configuring\" [@toggleTopRight]=\"fullScreen ? 'fullscreen' : 'halfscreen'\">\r\n <app-product-addtocart\r\n [configurable]=\"configurable\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"addtocart-reserved product-action-buttons\" *ngIf=\"configuring\" [class.full-screen]=\"fullScreen\">\r\n <app-product-addtocart class=\"default-padding\"\r\n [configurable]=\"false\"\r\n [fullscreen]=\"fullScreen\"\r\n [configuring]=\"configuring\"\r\n [article]=\"article\"\r\n (startConfiguration)=\"handleStartConfiguration()\"\r\n ></app-product-addtocart>\r\n </div>\r\n <div class=\"product-page-block-variants\">\r\n <app-product-related class=\"no-padding\" *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"64\" [label]=\"'VARIANTS' | localize\"></app-product-related>\r\n </div>\r\n <div class=\"product-page-block-stock\">\r\n <app-product-stock class=\"no-padding\" (openStockEvent)=\"openStock()\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-stock>\r\n </div>\r\n <div class=\"product-page-block-delivery\">\r\n <app-product-delivery class=\"no-padding\" [stockAndDelivery]=\"stockAndDelivery\"></app-product-delivery>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content\">\r\n <div class=\"page-wrapper-left\">\r\n <app-product-info-tabs class=\"no-padding\" [article]=\"article\"></app-product-info-tabs>\r\n </div>\r\n <div class=\"page-wrapper-right\">\r\n <div class=\"product-page-block-related s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"1\" [label]=\"'RELATED_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"page-wrapper-content no-top-margin\">\r\n <div class=\"page-wrapper-full\">\r\n <div class=\"product-page-block-alternatives s-padding\">\r\n <app-product-related *ngIf=\"article?.relatedArticles && article?.relatedArticles.length > 0\"\r\n [articles]=\"article?.relatedArticles\" [refType]=\"4\" [isSmallModus]=\"false\" [label]=\"'ALTERNATIVE_PRODUCTS' | localize\"></app-product-related>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n",
1691
+ animations: [
1692
+ animations.trigger('toggleFullScreen', [
1693
+ animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
1694
+ animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
1695
+ animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1696
+ ]),
1697
+ animations.trigger('toggleTopLeft', [
1698
+ animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
1699
+ animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
1700
+ animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1701
+ ]),
1702
+ animations.trigger('toggleTopRight', [
1703
+ animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
1704
+ animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
1705
+ animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1706
+ ]),
1707
+ animations.trigger('toggleFullScreenRight', [
1708
+ animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
1709
+ animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
1710
+ animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1711
+ ]),
1712
+ animations.trigger('toggleVisibilityByState', [
1713
+ animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
1714
+ animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
1715
+ animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out')),
1716
+ ]),
1717
+ animations.trigger('toggleVisibility', [
1718
+ animations.state('void', animations.style({ 'opacity': '0' })),
1719
+ animations.state('*', animations.style({ 'opacity': '1' })),
1720
+ animations.transition('void => *', animations.animate('200ms ease-in-out')),
1721
+ ])
1722
+ ],
1723
+ styles: [".page-wrapper{font-family:iOneMontserrat;font-size:12px;display:flex;flex-direction:column;max-width:1400px;padding:0 15px;margin:0 auto}.page-wrapper-content{display:flex;flex-direction:row;margin:40px 0}.page-wrapper-content:first-child{margin-top:0}.page-wrapper-content.no-top-margin{margin-top:0}.page-wrapper-left{display:flex;width:55%;flex-direction:column}.page-wrapper-right{display:flex;width:45%;flex-direction:column}.page-wrapper-full{display:flex;width:100%;flex-direction:column}.page-wrapper-66{display:flex;width:60%;flex-direction:column}.page-wrapper-33{display:flex;width:40%;flex-direction:column}.threed-selections{display:none}.threed-selections.show-selections{display:block}.threed-selections ::ng-deep .rp-lite-selector .rp-answers-slideout ::ng-deep co-slideout{width:480px;z-index:3}.product-action-buttons{position:relative}.product-action-buttons.full-screen{z-index:10}.product-image-container{grid-column:1/7;grid-row:1/6;position:relative}.product-page-block-selector-type{width:auto;position:absolute;top:10px;right:10px;z-index:2}.product-page-block-image{box-sizing:border-box;width:100%;z-index:1;position:relative}.product-page-block-image .threed-configurator{border:1px solid #efefef}.product-page-block-image .threed-configurator .layer .viewer canvas{height:100%;width:100%}.product-page-block-image .threed-configurator ::ng-deep .rp-element-toolbar{top:30px}.product-page-block-image app-image-carousel.show-animated,.product-page-block-image threed-configurator.show-animated{opacity:1;z-index:0;transition:all .2s ease-in-out}.product-page-block-image .fullscreen-button{cursor:pointer;height:50px;width:50px;position:absolute;left:30px;z-index:100;top:30px}.product-page-block-image.full{grid-column:1/11;grid-row:2/span 10;z-index:3}.product-page-block-description{grid-column:7/12;grid-row:1/1}.product-page-block-additional{width:100%}.product-page-block-additional-description{width:100%}.product-page-block-price{grid-column:1/3;grid-row:2/2;align-self:center}.product-page-block-price.full{grid-column:1/5}.product-page-block-addtocart{grid-column:3/5;grid-row:2/2;align-self:center;padding-top:30px!important}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button:hover div.rippler{background:#f6f5f4}.product-page-block-addtocart ::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon{position:relative;z-index:2}.product-page-block-addtocart ::ng-deep co-button.cart-button{cursor:pointer}.product-page-block-addtocart ::ng-deep co-button.cart-button:hover{background:#74B77F}.addtocart-reserved{grid-column:1/3;grid-row:3/3}.product-page-block-stock{grid-column:1/3;grid-row:4/4}.product-page-block-delivery{grid-column:3/5;grid-row:4/4}::ng-deep co-scroll-container{overflow:hidden;position:relative}::ng-deep co-scroll-container .content-wrapper{padding:0}::ng-deep co-scroll-container .scroll-layer{left:0;top:0}::ng-deep co-scroll-container .scroll-layer .scroller{width:34px;height:34px;border-radius:36px;background:#fff;cursor:pointer;box-shadow:0 0 5px #0003}::ng-deep co-scroll-container .scroll-layer .scroller:hover{background:#f6f5f4}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll{left:5px}::ng-deep co-scroll-container .scroll-layer .scroller.left-scroll:before{border-width:0 3px 3px 0;padding:4px;margin-left:13px;margin-top:11px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll{right:5px}::ng-deep co-scroll-container .scroll-layer .scroller.right-scroll:after{border-width:0 3px 3px 0;padding:4px;margin-left:9px;margin-top:11px}.product-page-block-variants{margin:20px 0 0}.product-page-block-variants ::ng-deep app-product-related>div{display:flex;grid-gap:15px;gap:15px;align-items:center;border-top:1px solid #f6f5f4;padding:5px 0 7px 15px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep app-header h3{font-size:14px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container{width:320px;max-width:100%;padding:0 16px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller{width:26px;height:26px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll{left:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.left-scroll:before{border-width:0 2px 2px 0;margin-left:9px;margin-top:9px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll{right:5px}.product-page-block-variants ::ng-deep app-product-related>div ::ng-deep co-scroll-container .scroller.right-scroll:after{border-width:0 2px 2px 0;margin-left:6px;margin-top:9px}.product-page-block-variants ::ng-deep co-tile.small{min-width:50px!important;max-width:50px!important;border:1px solid #f6f5f4;margin:0 10px 0 0;border-radius:4px}.product-page-block-variants ::ng-deep co-tile.small:hover{border-color:#22313c}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper{padding:0}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-top{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image{height:40px!important;padding:5px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper .no-image{width:40px;height:40px}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .image .no-image-wrapper span{display:none!important}.product-page-block-variants ::ng-deep co-tile.small .tile-wrapper .tile-bottom{display:none}.product-page-block-variants ::ng-deep co-tile.small .tile-extra-bottom{display:none}.product-page-block-alternatives ::ng-deep .article-wrapper{margin:0 20px 0 0}.product-page-block-alternatives ::ng-deep .article-wrapper:last-child{margin:0}.product-page-block-alternatives ::ng-deep co-tile{cursor:pointer;transition:all .14s ease-out;border:1px solid transparent;border-bottom-color:#f6f5f4;padding:15px 10px 0;width:319px;max-width:none;min-width:0;box-sizing:border-box}.product-page-block-alternatives ::ng-deep co-tile:hover{box-shadow:none;border-color:#f6f5f4}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper div.image co-image{transform:scale(1.05)}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-wrapper .tile-bottom{margin:0}.product-page-block-alternatives ::ng-deep co-tile:hover .tile-extra-bottom .main .description{text-decoration:underline}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper{padding:0;position:relative;outline:none;overflow:hidden}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-top{position:absolute;left:0;top:0;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image{position:relative;padding:1px;display:flex;align-items:center;justify-content:center;overflow:hidden;max-width:250px;margin:0 auto;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image:after{content:\"\";padding:100% 0 0;float:left;width:100%}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image co-image{position:absolute;left:0;top:0;overflow:hidden;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;z-index:-1;transition:all .2s ease}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper div.image .no-image-wrapper{position:absolute;display:flex;left:50%;top:50%;margin:-48px 0 0 -54px;flex-direction:column;align-items:center;opacity:.25}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom{position:absolute;right:0;bottom:0;margin:0 -40px 0 0;transition:all .2s ease;height:auto}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button{margin:0 0 5px!important;width:36px;height:36px;border:1px solid #22313C;cursor:pointer;border-radius:4px;padding:0!important;font-size:0}.product-page-block-alternatives ::ng-deep co-tile .tile-wrapper .tile-bottom ::ng-deep co-button co-icon{width:32px;height:32px;margin:0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom{outline:none;padding:15px 0;background:transparent!important;min-height:60px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main{padding:0 10px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .description{font-size:15px;font-weight:bold;margin:0 0 2px}.product-page-block-alternatives ::ng-deep co-tile .tile-extra-bottom .main .price{font-size:16px;margin:15px 0 0;font-weight:bold;color:#2b60a7}.product-page-block-additional-information{grid-column:1/6;grid-row:4/4}.product-page-block-properties{grid-column:7/10;grid-row:3/3}.product-page-block-related-articles{grid-column:2/6;grid-row:4/4}.product-page-block-alternative-articles{grid-column:6/10;grid-row:4/4}.product-page-block-documents{grid-column:2/6;grid-row:5/5}.product-page-block-symbols{grid-column:6/10;grid-row:5/5}@media screen and (max-width: 950px){.default-padding{padding-top:20px;padding-bottom:20px}.m-padding{padding-top:15px;padding-bottom:15px}.s-padding{padding-top:5px;padding-bottom:5px}.page-wrapper{max-width:650px}.page-wrapper .page-wrapper-content{flex-direction:column;margin:30px 0}.page-wrapper .page-wrapper-content .page-wrapper-left{width:100%}.page-wrapper .page-wrapper-content .page-wrapper-right{width:100%}.product-page-block-alternatives ::ng-deep co-tile{width:284px!important}}@media screen and (max-width: 650px){[class*=-padding]{padding-left:0!important;padding-right:0!important}.product-page-block-addtocart ::ng-deep co-number-picker co-button{height:38px!important}.product-page-block-addtocart ::ng-deep co-number-picker co-input-text{height:38px!important;width:36px!important}.product-page-block-addtocart ::ng-deep co-button.cart-button{height:40px;font-size:13px}}\n"]
1724
+ },] }
1725
+ ];
1726
+ ProductPageComponent.ctorParameters = function () { return [
1727
+ { type: ProductConnectorService },
1728
+ { type: i0.Renderer2 },
1729
+ { type: i0.ChangeDetectorRef },
1730
+ { type: IconCacheService },
1731
+ { type: ProductSettingsService },
1732
+ { type: ProductEventService }
1733
+ ]; };
1734
+ ProductPageComponent.propDecorators = {
1735
+ configurator: [{ type: i0.ViewChild, args: ['configurator', { read: i0.ElementRef },] }],
1736
+ selections: [{ type: i0.ViewChild, args: ['selections', { read: i0.ElementRef },] }],
1737
+ fullscreenbutton: [{ type: i0.ViewChild, args: ['fullscreenbutton', { read: i0.ElementRef },] }],
1738
+ sku: [{ type: i0.Input }],
1739
+ settings: [{ type: i0.Input }],
1740
+ openStockEvent: [{ type: i0.Output }]
1741
+ };
1602
1742
 
1603
1743
  var ProductSelectorTypeComponent = /** @class */ (function () {
1604
1744
  function ProductSelectorTypeComponent(_iconCache, _changeDetector) {
@@ -1606,8 +1746,8 @@
1606
1746
  this._changeDetector = _changeDetector;
1607
1747
  this.type = SelectorType;
1608
1748
  this.icons = IconEnum;
1609
- this.onIconClick = new core.EventEmitter();
1610
- this.currentTypeChange = new core.EventEmitter();
1749
+ this.onIconClick = new i0.EventEmitter();
1750
+ this.currentTypeChange = new i0.EventEmitter();
1611
1751
  this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);
1612
1752
  this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);
1613
1753
  }
@@ -1619,34 +1759,96 @@
1619
1759
  this.onIconClick.next(this.currentType);
1620
1760
  this._changeDetector.detectChanges();
1621
1761
  };
1622
- ProductSelectorTypeComponent.ctorParameters = function () { return [
1623
- { type: IconCacheService },
1624
- { type: core.ChangeDetectorRef }
1625
- ]; };
1626
- __decorate([
1627
- core.Input()
1628
- ], ProductSelectorTypeComponent.prototype, "show2D", void 0);
1629
- __decorate([
1630
- core.Input()
1631
- ], ProductSelectorTypeComponent.prototype, "show3D", void 0);
1632
- __decorate([
1633
- core.Input()
1634
- ], ProductSelectorTypeComponent.prototype, "currentType", void 0);
1635
- __decorate([
1636
- core.Output()
1637
- ], ProductSelectorTypeComponent.prototype, "onIconClick", void 0);
1638
- __decorate([
1639
- core.Output()
1640
- ], ProductSelectorTypeComponent.prototype, "currentTypeChange", void 0);
1641
- ProductSelectorTypeComponent = __decorate([
1642
- core.Component({
1643
- selector: 'app-product-selector-type',
1644
- template: "<div *ngIf=\"show2D || show3D\" class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\n<co-icon *ngIf=\"show2D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n></co-icon>\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",
1645
- 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:0 0;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74b77f;transition:.2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}"]
1646
- })
1647
- ], ProductSelectorTypeComponent);
1648
1762
  return ProductSelectorTypeComponent;
1649
- }());
1763
+ }());
1764
+ ProductSelectorTypeComponent.decorators = [
1765
+ { type: i0.Component, args: [{
1766
+ selector: 'app-product-selector-type',
1767
+ template: "\n <div *ngIf=\"show2D || show3D\" class=\"show-in\" [textContent]=\"'SHOW_IN' | localize\"></div>\n<!--\n <co-icon *ngIf=\"show2D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\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-->\n ",
1768
+ 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"]
1769
+ },] }
1770
+ ];
1771
+ ProductSelectorTypeComponent.ctorParameters = function () { return [
1772
+ { type: IconCacheService },
1773
+ { type: i0.ChangeDetectorRef }
1774
+ ]; };
1775
+ ProductSelectorTypeComponent.propDecorators = {
1776
+ show2D: [{ type: i0.Input }],
1777
+ show3D: [{ type: i0.Input }],
1778
+ currentType: [{ type: i0.Input }],
1779
+ onIconClick: [{ type: i0.Output }],
1780
+ currentTypeChange: [{ type: i0.Output }]
1781
+ };
1782
+
1783
+ // A pipe for localizing string values in view templates.
1784
+ var LocalizePipe = /** @class */ (function () {
1785
+ function LocalizePipe(_dictionaryService) {
1786
+ this._dictionaryService = _dictionaryService;
1787
+ }
1788
+ LocalizePipe.prototype.transform = function (value, upperCaseFirst, replace) {
1789
+ var _a;
1790
+ if (upperCaseFirst === void 0) { upperCaseFirst = true; }
1791
+ if (replace === void 0) { replace = []; }
1792
+ if (!value) {
1793
+ return '';
1794
+ }
1795
+ replace = replace ? replace : [];
1796
+ if (!Array.isArray(replace)) {
1797
+ replace = [replace];
1798
+ }
1799
+ return (_a = this._dictionaryService).get.apply(_a, __spreadArray([value, upperCaseFirst], __read(replace)));
1800
+ };
1801
+ return LocalizePipe;
1802
+ }());
1803
+ LocalizePipe.decorators = [
1804
+ { type: i0.Pipe, args: [{
1805
+ name: 'localize'
1806
+ },] }
1807
+ ];
1808
+ LocalizePipe.ctorParameters = function () { return [
1809
+ { type: DictionaryService }
1810
+ ]; };
1811
+
1812
+ var PipeModule = /** @class */ (function () {
1813
+ function PipeModule() {
1814
+ }
1815
+ return PipeModule;
1816
+ }());
1817
+ PipeModule.decorators = [
1818
+ { type: i0.NgModule, args: [{
1819
+ declarations: [
1820
+ LocalizePipe
1821
+ ],
1822
+ providers: [
1823
+ LocalizePipe
1824
+ ],
1825
+ exports: [
1826
+ LocalizePipe
1827
+ ]
1828
+ },] }
1829
+ ];
1830
+
1831
+ // import {IconModule} from '@colijnit/corecomponents';
1832
+ var ProductSelectorTypeModule = /** @class */ (function () {
1833
+ function ProductSelectorTypeModule() {
1834
+ }
1835
+ return ProductSelectorTypeModule;
1836
+ }());
1837
+ ProductSelectorTypeModule.decorators = [
1838
+ { type: i0.NgModule, args: [{
1839
+ imports: [
1840
+ common.CommonModule,
1841
+ PipeModule /*,
1842
+ IconModule*/
1843
+ ],
1844
+ declarations: [
1845
+ ProductSelectorTypeComponent
1846
+ ],
1847
+ exports: [
1848
+ ProductSelectorTypeComponent
1849
+ ]
1850
+ },] }
1851
+ ];
1650
1852
 
1651
1853
  var ImageCarouselComponent = /** @class */ (function () {
1652
1854
  function ImageCarouselComponent(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
@@ -1686,7 +1888,7 @@
1686
1888
  this._changeDetector.detectChanges();
1687
1889
  }
1688
1890
  },
1689
- enumerable: true,
1891
+ enumerable: false,
1690
1892
  configurable: true
1691
1893
  });
1692
1894
  ImageCarouselComponent.prototype.handleWindowResize = function () {
@@ -1715,7 +1917,7 @@
1715
1917
  this._currentIndex = value;
1716
1918
  this._scrollCarouselToIndex();
1717
1919
  },
1718
- enumerable: true,
1920
+ enumerable: false,
1719
1921
  configurable: true
1720
1922
  });
1721
1923
  ImageCarouselComponent.prototype.ngOnInit = function () {
@@ -1771,61 +1973,91 @@
1771
1973
  }
1772
1974
  }
1773
1975
  };
1774
- ImageCarouselComponent.ctorParameters = function () { return [
1775
- { type: ProductConnectorService },
1776
- { type: ProductEventService },
1777
- { type: core.ChangeDetectorRef },
1778
- { type: platformBrowser.DomSanitizer },
1779
- { type: IconCacheService }
1780
- ]; };
1781
- __decorate([
1782
- core.ViewChild('carousel', { read: core.ElementRef })
1783
- ], ImageCarouselComponent.prototype, "carousel", void 0);
1784
- __decorate([
1785
- core.Input()
1786
- ], ImageCarouselComponent.prototype, "showRefresh", void 0);
1787
- __decorate([
1788
- core.Input()
1789
- ], ImageCarouselComponent.prototype, "images", null);
1790
- __decorate([
1791
- core.HostListener('window:resize')
1792
- ], ImageCarouselComponent.prototype, "handleWindowResize", null);
1793
- __decorate([
1794
- core.HostListener('swipeleft')
1795
- ], ImageCarouselComponent.prototype, "gotoNextSlide", null);
1796
- __decorate([
1797
- core.HostListener('swiperight')
1798
- ], ImageCarouselComponent.prototype, "gotoPrevSlide", null);
1799
- __decorate([
1800
- core.HostBinding('class.resizing')
1801
- ], ImageCarouselComponent.prototype, "resizing", void 0);
1802
- ImageCarouselComponent = __decorate([
1803
- core.Component({
1804
- selector: 'app-image-carousel',
1805
- template: "<div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"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=\"images[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\">\n <img [src]=\"getImageSrc(images[0])\">\n </div>\n <div *ngFor=\"let image of images.slice(1); let index = index\" class=\"carousel-item\" [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\">\n <img [src]=\"getImageSrc(image)\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"images && images.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 <co-icon class=\"selector-type-icon refresh-button\" [iconData]=\"iconCache.getIcon(icons.Refresh)\" (click)=\"onForceRenderImage()\" [class.loading]=\"showLoader\" *ngIf=\"showRefresh\"></co-icon>\n </div>\n\n <div id=\"product_page_carousel_thumbs\">\n <co-scroll-container class=\"scroll-container\" *ngIf=\"images && images.length > 1\">\n <div *ngFor=\"let image of images; let index = index\" class=\"carousel-thumb\" [class.active]=\"index === currentIndex\">\n <img [src]=\"getImageSrc(image)\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n</div>\n",
1806
- 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{-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74b77f;transition:.2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:.2s;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width:650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@-webkit-keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}"]
1807
- })
1808
- ], ImageCarouselComponent);
1809
1976
  return ImageCarouselComponent;
1810
- }());
1977
+ }());
1978
+ ImageCarouselComponent.decorators = [
1979
+ { type: i0.Component, args: [{
1980
+ selector: 'app-image-carousel',
1981
+ template: "\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"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=\"images[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\">\n <img [src]=\"getImageSrc(images[0])\">\n </div>\n <div *ngFor=\"let image of images.slice(1); let index = index\" class=\"carousel-item\" [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\">\n <img [src]=\"getImageSrc(image)\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"images && images.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=\"images && images.length > 1\">\n <div *ngFor=\"let image of images; let index = index\" class=\"carousel-thumb\" [class.active]=\"index === currentIndex\">\n <img [src]=\"getImageSrc(image)\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n </div>\n ",
1982
+ styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
1983
+ },] }
1984
+ ];
1985
+ ImageCarouselComponent.ctorParameters = function () { return [
1986
+ { type: ProductConnectorService },
1987
+ { type: ProductEventService },
1988
+ { type: i0.ChangeDetectorRef },
1989
+ { type: i1$1.DomSanitizer },
1990
+ { type: IconCacheService }
1991
+ ]; };
1992
+ ImageCarouselComponent.propDecorators = {
1993
+ carousel: [{ type: i0.ViewChild, args: ['carousel', { read: i0.ElementRef },] }],
1994
+ showRefresh: [{ type: i0.Input }],
1995
+ images: [{ type: i0.Input }],
1996
+ handleWindowResize: [{ type: i0.HostListener, args: ['window:resize',] }],
1997
+ gotoNextSlide: [{ type: i0.HostListener, args: ['swipeleft',] }],
1998
+ gotoPrevSlide: [{ type: i0.HostListener, args: ['swiperight',] }],
1999
+ resizing: [{ type: i0.HostBinding, args: ['class.resizing',] }]
2000
+ };
2001
+
2002
+ var ImageCarouselModule = /** @class */ (function () {
2003
+ function ImageCarouselModule() {
2004
+ }
2005
+ return ImageCarouselModule;
2006
+ }());
2007
+ ImageCarouselModule.decorators = [
2008
+ { type: i0.NgModule, args: [{
2009
+ imports: [
2010
+ common.CommonModule,
2011
+ corecomponents.LoaderModule,
2012
+ // IconModule,
2013
+ corecomponents.ScrollContainerModule
2014
+ ],
2015
+ declarations: [
2016
+ ImageCarouselComponent
2017
+ ],
2018
+ exports: [
2019
+ ImageCarouselComponent
2020
+ ]
2021
+ },] }
2022
+ ];
1811
2023
 
1812
2024
  var ProductDescriptionComponent = /** @class */ (function () {
1813
2025
  function ProductDescriptionComponent() {
1814
2026
  }
1815
2027
  ProductDescriptionComponent.prototype.ngOnInit = function () {
1816
2028
  };
1817
- __decorate([
1818
- core.Input()
1819
- ], ProductDescriptionComponent.prototype, "article", void 0);
1820
- ProductDescriptionComponent = __decorate([
1821
- core.Component({
1822
- selector: 'app-product-description',
1823
- template: "<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",
1824
- styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:700;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}}"]
1825
- })
1826
- ], ProductDescriptionComponent);
1827
2029
  return ProductDescriptionComponent;
1828
- }());
2030
+ }());
2031
+ ProductDescriptionComponent.decorators = [
2032
+ { type: i0.Component, args: [{
2033
+ selector: 'app-product-description',
2034
+ 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 ",
2035
+ 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"]
2036
+ },] }
2037
+ ];
2038
+ ProductDescriptionComponent.ctorParameters = function () { return []; };
2039
+ ProductDescriptionComponent.propDecorators = {
2040
+ article: [{ type: i0.Input }]
2041
+ };
2042
+
2043
+ var ProductDescriptionModule = /** @class */ (function () {
2044
+ function ProductDescriptionModule() {
2045
+ }
2046
+ return ProductDescriptionModule;
2047
+ }());
2048
+ ProductDescriptionModule.decorators = [
2049
+ { type: i0.NgModule, args: [{
2050
+ imports: [
2051
+ common.CommonModule
2052
+ ],
2053
+ declarations: [
2054
+ ProductDescriptionComponent
2055
+ ],
2056
+ exports: [
2057
+ ProductDescriptionComponent
2058
+ ]
2059
+ },] }
2060
+ ];
1829
2061
 
1830
2062
  var BitUtils = /** @class */ (function () {
1831
2063
  function BitUtils() {
@@ -1863,7 +2095,7 @@
1863
2095
  this._prepareDescription();
1864
2096
  }
1865
2097
  },
1866
- enumerable: true,
2098
+ enumerable: false,
1867
2099
  configurable: true
1868
2100
  });
1869
2101
  ProductAdditionalDescriptionComponent.prototype.ngOnInit = function () {
@@ -1886,21 +2118,41 @@
1886
2118
  }
1887
2119
  }
1888
2120
  };
1889
- ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
1890
- { type: ProductEventService }
1891
- ]; };
1892
- __decorate([
1893
- core.Input()
1894
- ], ProductAdditionalDescriptionComponent.prototype, "article", null);
1895
- ProductAdditionalDescriptionComponent = __decorate([
1896
- core.Component({
1897
- selector: 'app-product-additional-description',
1898
- template: "<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",
1899
- 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:0 0;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}}"]
1900
- })
1901
- ], ProductAdditionalDescriptionComponent);
1902
2121
  return ProductAdditionalDescriptionComponent;
1903
- }());
2122
+ }());
2123
+ ProductAdditionalDescriptionComponent.decorators = [
2124
+ { type: i0.Component, args: [{
2125
+ selector: 'app-product-additional-description',
2126
+ 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 ",
2127
+ 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"]
2128
+ },] }
2129
+ ];
2130
+ ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
2131
+ { type: ProductEventService }
2132
+ ]; };
2133
+ ProductAdditionalDescriptionComponent.propDecorators = {
2134
+ article: [{ type: i0.Input }]
2135
+ };
2136
+
2137
+ var ProductAdditionalDescriptionModule = /** @class */ (function () {
2138
+ function ProductAdditionalDescriptionModule() {
2139
+ }
2140
+ return ProductAdditionalDescriptionModule;
2141
+ }());
2142
+ ProductAdditionalDescriptionModule.decorators = [
2143
+ { type: i0.NgModule, args: [{
2144
+ imports: [
2145
+ common.CommonModule,
2146
+ PipeModule
2147
+ ],
2148
+ declarations: [
2149
+ ProductAdditionalDescriptionComponent
2150
+ ],
2151
+ exports: [
2152
+ ProductAdditionalDescriptionComponent
2153
+ ]
2154
+ },] }
2155
+ ];
1904
2156
 
1905
2157
  var ProductPriceComponent = /** @class */ (function () {
1906
2158
  function ProductPriceComponent(_changeDetector) {
@@ -1916,7 +2168,7 @@
1916
2168
  this._pricing = value;
1917
2169
  this._setPrices();
1918
2170
  },
1919
- enumerable: true,
2171
+ enumerable: false,
1920
2172
  configurable: true
1921
2173
  });
1922
2174
  Object.defineProperty(ProductPriceComponent.prototype, "configurable", {
@@ -1924,7 +2176,7 @@
1924
2176
  this._configurable = value;
1925
2177
  this._setPrices();
1926
2178
  },
1927
- enumerable: true,
2179
+ enumerable: false,
1928
2180
  configurable: true
1929
2181
  });
1930
2182
  ProductPriceComponent.prototype.ngOnInit = function () {
@@ -1954,24 +2206,43 @@
1954
2206
  return '€';
1955
2207
  }
1956
2208
  };
1957
- ProductPriceComponent.ctorParameters = function () { return [
1958
- { type: core.ChangeDetectorRef }
1959
- ]; };
1960
- __decorate([
1961
- core.Input()
1962
- ], ProductPriceComponent.prototype, "pricing", null);
1963
- __decorate([
1964
- core.Input()
1965
- ], ProductPriceComponent.prototype, "configurable", null);
1966
- ProductPriceComponent = __decorate([
1967
- core.Component({
1968
- selector: 'app-product-price',
1969
- template: "<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\"></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\"></div>\n </div>\n</div>\n",
1970
- 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:700;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:700;color:#74b77f}@media screen and (max-width:650px){.from-price{font-size:13px}.to-price{font-size:21px}}"]
1971
- })
1972
- ], ProductPriceComponent);
1973
2209
  return ProductPriceComponent;
1974
- }());
2210
+ }());
2211
+ ProductPriceComponent.decorators = [
2212
+ { type: i0.Component, args: [{
2213
+ selector: 'app-product-price',
2214
+ 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 ",
2215
+ 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"]
2216
+ },] }
2217
+ ];
2218
+ ProductPriceComponent.ctorParameters = function () { return [
2219
+ { type: i0.ChangeDetectorRef }
2220
+ ]; };
2221
+ ProductPriceComponent.propDecorators = {
2222
+ pricing: [{ type: i0.Input }],
2223
+ configurable: [{ type: i0.Input }]
2224
+ };
2225
+
2226
+ var ProductPriceModule = /** @class */ (function () {
2227
+ function ProductPriceModule() {
2228
+ }
2229
+ return ProductPriceModule;
2230
+ }());
2231
+ ProductPriceModule.decorators = [
2232
+ { type: i0.NgModule, args: [{
2233
+ imports: [
2234
+ common.CommonModule,
2235
+ PipeModule,
2236
+ corecomponents.PriceDisplayPipeModule
2237
+ ],
2238
+ declarations: [
2239
+ ProductPriceComponent
2240
+ ],
2241
+ exports: [
2242
+ ProductPriceComponent
2243
+ ]
2244
+ },] }
2245
+ ];
1975
2246
 
1976
2247
  var ProductAddtocartComponent = /** @class */ (function () {
1977
2248
  function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
@@ -1983,9 +2254,9 @@
1983
2254
  this.configurable = false;
1984
2255
  this.configuring = false;
1985
2256
  this.fullscreen = false;
1986
- this.startConfiguration = new core.EventEmitter();
1987
- this.addToCartClick = new core.EventEmitter();
1988
- this.addToQuoteClick = new core.EventEmitter();
2257
+ this.startConfiguration = new i0.EventEmitter();
2258
+ this.addToCartClick = new i0.EventEmitter();
2259
+ this.addToQuoteClick = new i0.EventEmitter();
1989
2260
  this.showQuoteButton = false;
1990
2261
  this._quantity = 1;
1991
2262
  }
@@ -1996,7 +2267,7 @@
1996
2267
  set: function (value) {
1997
2268
  this._quantity = Math.max(1, value);
1998
2269
  },
1999
- enumerable: true,
2270
+ enumerable: false,
2000
2271
  configurable: true
2001
2272
  });
2002
2273
  ProductAddtocartComponent.prototype.ngOnInit = function () {
@@ -2053,49 +2324,54 @@
2053
2324
  });
2054
2325
  });
2055
2326
  };
2056
- ProductAddtocartComponent.ctorParameters = function () { return [
2057
- { type: IconCacheService },
2058
- { type: ProductConnectorService },
2059
- { type: ProductEventService },
2060
- { type: ProductSettingsService }
2061
- ]; };
2062
- __decorate([
2063
- core.ViewChild('addtocartbutton', { read: core.ElementRef })
2064
- ], ProductAddtocartComponent.prototype, "addToCartButton", void 0);
2065
- __decorate([
2066
- core.Input()
2067
- ], ProductAddtocartComponent.prototype, "article", void 0);
2068
- __decorate([
2069
- core.Input()
2070
- ], ProductAddtocartComponent.prototype, "configurable", void 0);
2071
- __decorate([
2072
- core.Input()
2073
- ], ProductAddtocartComponent.prototype, "configuring", void 0);
2074
- __decorate([
2075
- core.HostBinding('class.full-screen'),
2076
- core.Input()
2077
- ], ProductAddtocartComponent.prototype, "fullscreen", void 0);
2078
- __decorate([
2079
- core.Input()
2080
- ], ProductAddtocartComponent.prototype, "quantity", null);
2081
- __decorate([
2082
- core.Output()
2083
- ], ProductAddtocartComponent.prototype, "startConfiguration", void 0);
2084
- __decorate([
2085
- core.Output()
2086
- ], ProductAddtocartComponent.prototype, "addToCartClick", void 0);
2087
- __decorate([
2088
- core.Output()
2089
- ], ProductAddtocartComponent.prototype, "addToQuoteClick", void 0);
2090
- ProductAddtocartComponent = __decorate([
2091
- core.Component({
2092
- selector: 'app-product-addtocart',
2093
- template: "<div class=\"atc-wrapper\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n <div class=\"button-wrapper\">\n <co-button class=\"configure-button\" *ngIf=\"configurable\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n <co-button #addtocartbutton class=\"cart-button\" *ngIf=\"!configurable\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"!configurable && showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n</div>\n",
2094
- styles: [":host{display:flex;flex-direction:column}:host :not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:0 0!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74b77f}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}"]
2095
- })
2096
- ], ProductAddtocartComponent);
2097
2327
  return ProductAddtocartComponent;
2098
- }());
2328
+ }());
2329
+ ProductAddtocartComponent.decorators = [
2330
+ { type: i0.Component, args: [{
2331
+ selector: 'app-product-addtocart',
2332
+ template: "\n <div class=\"atc-wrapper\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n <div class=\"button-wrapper\">\n <co-button class=\"configure-button\" *ngIf=\"configurable\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n <co-button #addtocartbutton class=\"cart-button\" *ngIf=\"!configurable\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"!configurable && showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n </div>\n ",
2333
+ 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"]
2334
+ },] }
2335
+ ];
2336
+ ProductAddtocartComponent.ctorParameters = function () { return [
2337
+ { type: IconCacheService },
2338
+ { type: ProductConnectorService },
2339
+ { type: ProductEventService },
2340
+ { type: ProductSettingsService }
2341
+ ]; };
2342
+ ProductAddtocartComponent.propDecorators = {
2343
+ addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],
2344
+ article: [{ type: i0.Input }],
2345
+ configurable: [{ type: i0.Input }],
2346
+ configuring: [{ type: i0.Input }],
2347
+ fullscreen: [{ type: i0.HostBinding, args: ['class.full-screen',] }, { type: i0.Input }],
2348
+ quantity: [{ type: i0.Input }],
2349
+ startConfiguration: [{ type: i0.Output }],
2350
+ addToCartClick: [{ type: i0.Output }],
2351
+ addToQuoteClick: [{ type: i0.Output }]
2352
+ };
2353
+
2354
+ var ProductAddtocartModule = /** @class */ (function () {
2355
+ function ProductAddtocartModule() {
2356
+ }
2357
+ return ProductAddtocartModule;
2358
+ }());
2359
+ ProductAddtocartModule.decorators = [
2360
+ { type: i0.NgModule, args: [{
2361
+ imports: [
2362
+ common.CommonModule,
2363
+ corecomponents.NumberPickerModule,
2364
+ corecomponents.ButtonModule,
2365
+ PipeModule
2366
+ ],
2367
+ declarations: [
2368
+ ProductAddtocartComponent
2369
+ ],
2370
+ exports: [
2371
+ ProductAddtocartComponent
2372
+ ]
2373
+ },] }
2374
+ ];
2099
2375
 
2100
2376
  var ProductRelatedComponent = /** @class */ (function () {
2101
2377
  function ProductRelatedComponent(_iOne, _appEventService) {
@@ -2126,7 +2402,7 @@
2126
2402
  this._loadImages();
2127
2403
  }
2128
2404
  },
2129
- enumerable: true,
2405
+ enumerable: false,
2130
2406
  configurable: true
2131
2407
  });
2132
2408
  ProductRelatedComponent.prototype.handleContentClick = function (article) {
@@ -2144,37 +2420,93 @@
2144
2420
  }
2145
2421
  });
2146
2422
  };
2147
- ProductRelatedComponent.ctorParameters = function () { return [
2148
- { type: ProductConnectorService },
2149
- { type: ProductEventService }
2150
- ]; };
2151
- __decorate([
2152
- core.Input()
2153
- ], ProductRelatedComponent.prototype, "refType", void 0);
2154
- __decorate([
2155
- core.Input()
2156
- ], ProductRelatedComponent.prototype, "label", void 0);
2157
- __decorate([
2158
- core.Input()
2159
- ], ProductRelatedComponent.prototype, "isSmallModus", void 0);
2160
- __decorate([
2161
- core.Input()
2162
- ], ProductRelatedComponent.prototype, "articles", null);
2163
- ProductRelatedComponent = __decorate([
2164
- core.Component({
2165
- selector: 'app-product-related',
2166
- template: "<div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n</div>\n",
2167
- styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:0!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:0!important;background:0 0!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}"]
2168
- })
2169
- ], ProductRelatedComponent);
2170
2423
  return ProductRelatedComponent;
2171
- }());
2424
+ }());
2425
+ ProductRelatedComponent.decorators = [
2426
+ { type: i0.Component, args: [{
2427
+ selector: 'app-product-related',
2428
+ 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 article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n </div>\n ",
2429
+ styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"]
2430
+ },] }
2431
+ ];
2432
+ ProductRelatedComponent.ctorParameters = function () { return [
2433
+ { type: ProductConnectorService },
2434
+ { type: ProductEventService }
2435
+ ]; };
2436
+ ProductRelatedComponent.propDecorators = {
2437
+ refType: [{ type: i0.Input }],
2438
+ label: [{ type: i0.Input }],
2439
+ isSmallModus: [{ type: i0.Input }],
2440
+ articles: [{ type: i0.Input }]
2441
+ };
2442
+
2443
+ var HeaderComponent = /** @class */ (function () {
2444
+ function HeaderComponent() {
2445
+ }
2446
+ HeaderComponent.prototype.ngOnInit = function () {
2447
+ };
2448
+ return HeaderComponent;
2449
+ }());
2450
+ HeaderComponent.decorators = [
2451
+ { type: i0.Component, args: [{
2452
+ selector: 'app-header',
2453
+ 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 ",
2454
+ styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
2455
+ },] }
2456
+ ];
2457
+ HeaderComponent.ctorParameters = function () { return []; };
2458
+ HeaderComponent.propDecorators = {
2459
+ label: [{ type: i0.Input }],
2460
+ amount: [{ type: i0.Input }]
2461
+ };
2462
+
2463
+ var HeaderModule = /** @class */ (function () {
2464
+ function HeaderModule() {
2465
+ }
2466
+ return HeaderModule;
2467
+ }());
2468
+ HeaderModule.decorators = [
2469
+ { type: i0.NgModule, args: [{
2470
+ imports: [
2471
+ common.CommonModule
2472
+ ],
2473
+ declarations: [
2474
+ HeaderComponent
2475
+ ],
2476
+ exports: [
2477
+ HeaderComponent
2478
+ ]
2479
+ },] }
2480
+ ];
2481
+
2482
+ var ProductRelatedModule = /** @class */ (function () {
2483
+ function ProductRelatedModule() {
2484
+ }
2485
+ return ProductRelatedModule;
2486
+ }());
2487
+ ProductRelatedModule.decorators = [
2488
+ { type: i0.NgModule, args: [{
2489
+ imports: [
2490
+ common.CommonModule,
2491
+ HeaderModule,
2492
+ corecomponents.ScrollContainerModule,
2493
+ corecomponents.ArticleTileModule
2494
+ ],
2495
+ declarations: [
2496
+ ProductRelatedComponent
2497
+ ],
2498
+ exports: [
2499
+ ProductRelatedComponent
2500
+ ]
2501
+ },] }
2502
+ ];
2172
2503
 
2173
2504
  var ProductStockComponent = /** @class */ (function () {
2174
2505
  function ProductStockComponent(_iOne, _iconCache) {
2175
2506
  this._iOne = _iOne;
2176
2507
  this._iconCache = _iconCache;
2177
2508
  this.icon = IconEnum;
2509
+ this.openStockEvent = new i0.EventEmitter();
2178
2510
  this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
2179
2511
  }
2180
2512
  Object.defineProperty(ProductStockComponent.prototype, "stockAndDelivery", {
@@ -2183,56 +2515,52 @@
2183
2515
  this.numberInStock = value.stock;
2184
2516
  }
2185
2517
  },
2186
- enumerable: true,
2518
+ enumerable: false,
2187
2519
  configurable: true
2188
2520
  });
2189
2521
  ProductStockComponent.prototype.ngOnInit = function () {
2190
2522
  };
2191
- ProductStockComponent.ctorParameters = function () { return [
2192
- { type: ProductConnectorService },
2193
- { type: IconCacheService }
2194
- ]; };
2195
- __decorate([
2196
- core.Input()
2197
- ], ProductStockComponent.prototype, "stockAndDelivery", null);
2198
- ProductStockComponent = __decorate([
2199
- core.Component({
2200
- selector: 'app-product-stock',
2201
- template: "<!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n<!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n<div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\">\n <div class=\"pp-default-label in-stock\" [textContent]=\"'PRODUCT_IN_STOCK' | localize\" *ngIf=\"numberInStock > 0\"></div>\n <div class=\"pp-default-label not-in-stock\" [textContent]=\"'PRODUCT_NOT_IN_STOCK' | localize\" *ngIf=\"!(numberInStock > 0)\"></div>\n </div>\n</div>\n",
2202
- styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#74b77f;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.not-in-stock:after{background:#f15152}@media screen and (max-width:400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}"]
2203
- })
2204
- ], ProductStockComponent);
2523
+ ProductStockComponent.prototype.openStock = function () {
2524
+ this.openStockEvent.emit();
2525
+ };
2205
2526
  return ProductStockComponent;
2206
- }());
2527
+ }());
2528
+ ProductStockComponent.decorators = [
2529
+ { type: i0.Component, args: [{
2530
+ selector: 'app-product-stock',
2531
+ 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 in-stock\" [textContent]=\"'PRODUCT_IN_STOCK' | localize\" *ngIf=\"numberInStock > 0\"></div>\n <div class=\"pp-default-label not-in-stock\" [textContent]=\"'PRODUCT_NOT_IN_STOCK' | localize\" *ngIf=\"!(numberInStock > 0)\"></div>\n </div>\n </div>\n ",
2532
+ styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#74B77F;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.not-in-stock:after{background:#f15152}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"]
2533
+ },] }
2534
+ ];
2535
+ ProductStockComponent.ctorParameters = function () { return [
2536
+ { type: ProductConnectorService },
2537
+ { type: IconCacheService }
2538
+ ]; };
2539
+ ProductStockComponent.propDecorators = {
2540
+ stockAndDelivery: [{ type: i0.Input }],
2541
+ openStockEvent: [{ type: i0.Output }]
2542
+ };
2207
2543
 
2208
- var LocalizePipe = /** @class */ (function () {
2209
- function LocalizePipe(_dictionaryService) {
2210
- this._dictionaryService = _dictionaryService;
2544
+ var ProductStockModule = /** @class */ (function () {
2545
+ function ProductStockModule() {
2211
2546
  }
2212
- LocalizePipe.prototype.transform = function (value, upperCaseFirst, replace) {
2213
- var _a;
2214
- if (upperCaseFirst === void 0) { upperCaseFirst = true; }
2215
- if (replace === void 0) { replace = []; }
2216
- if (!value) {
2217
- return '';
2218
- }
2219
- replace = replace ? replace : [];
2220
- if (!Array.isArray(replace)) {
2221
- replace = [replace];
2222
- }
2223
- return (_a = this._dictionaryService).get.apply(_a, __spread([value, upperCaseFirst], replace));
2224
- };
2225
- LocalizePipe.ctorParameters = function () { return [
2226
- { type: DictionaryService }
2227
- ]; };
2228
- LocalizePipe = __decorate([
2229
- core.Pipe({
2230
- name: 'localize'
2231
- })
2232
- // A pipe for localizing string values in view templates.
2233
- ], LocalizePipe);
2234
- return LocalizePipe;
2235
- }());
2547
+ return ProductStockModule;
2548
+ }());
2549
+ ProductStockModule.decorators = [
2550
+ { type: i0.NgModule, args: [{
2551
+ imports: [
2552
+ common.CommonModule,
2553
+ corecomponents.IconModule,
2554
+ PipeModule
2555
+ ],
2556
+ declarations: [
2557
+ ProductStockComponent
2558
+ ],
2559
+ exports: [
2560
+ ProductStockComponent
2561
+ ]
2562
+ },] }
2563
+ ];
2236
2564
 
2237
2565
  var ProductDeliveryComponent = /** @class */ (function () {
2238
2566
  function ProductDeliveryComponent(_localizePipe, _iOne, _iconCache) {
@@ -2251,28 +2579,49 @@
2251
2579
  }
2252
2580
  }
2253
2581
  },
2254
- enumerable: true,
2582
+ enumerable: false,
2255
2583
  configurable: true
2256
2584
  });
2257
2585
  ProductDeliveryComponent.prototype.ngOnInit = function () {
2258
2586
  };
2259
- ProductDeliveryComponent.ctorParameters = function () { return [
2260
- { type: LocalizePipe },
2261
- { type: ProductConnectorService },
2262
- { type: IconCacheService }
2263
- ]; };
2264
- __decorate([
2265
- core.Input()
2266
- ], ProductDeliveryComponent.prototype, "stockAndDelivery", null);
2267
- ProductDeliveryComponent = __decorate([
2268
- core.Component({
2269
- selector: 'app-product-delivery',
2270
- template: "<!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n<div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n</div>\n",
2271
- 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}}"]
2272
- })
2273
- ], ProductDeliveryComponent);
2274
2587
  return ProductDeliveryComponent;
2275
- }());
2588
+ }());
2589
+ ProductDeliveryComponent.decorators = [
2590
+ { type: i0.Component, args: [{
2591
+ selector: 'app-product-delivery',
2592
+ 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 ",
2593
+ 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"]
2594
+ },] }
2595
+ ];
2596
+ ProductDeliveryComponent.ctorParameters = function () { return [
2597
+ { type: LocalizePipe },
2598
+ { type: ProductConnectorService },
2599
+ { type: IconCacheService }
2600
+ ]; };
2601
+ ProductDeliveryComponent.propDecorators = {
2602
+ stockAndDelivery: [{ type: i0.Input }]
2603
+ };
2604
+
2605
+ var ProductDeliveryModule = /** @class */ (function () {
2606
+ function ProductDeliveryModule() {
2607
+ }
2608
+ return ProductDeliveryModule;
2609
+ }());
2610
+ ProductDeliveryModule.decorators = [
2611
+ { type: i0.NgModule, args: [{
2612
+ imports: [
2613
+ common.CommonModule,
2614
+ corecomponents.IconModule,
2615
+ PipeModule
2616
+ ],
2617
+ declarations: [
2618
+ ProductDeliveryComponent
2619
+ ],
2620
+ exports: [
2621
+ ProductDeliveryComponent
2622
+ ]
2623
+ },] }
2624
+ ];
2276
2625
 
2277
2626
  var ProductInfoTabsComponent = /** @class */ (function () {
2278
2627
  function ProductInfoTabsComponent(_appEventService) {
@@ -2294,7 +2643,7 @@
2294
2643
  this.updateTab(0);
2295
2644
  }
2296
2645
  },
2297
- enumerable: true,
2646
+ enumerable: false,
2298
2647
  configurable: true
2299
2648
  });
2300
2649
  ProductInfoTabsComponent.prototype.ngOnDestroy = function () {
@@ -2321,125 +2670,22 @@
2321
2670
  this.tabs.push({ title: 'SYMBOLS' });
2322
2671
  }
2323
2672
  };
2324
- ProductInfoTabsComponent.ctorParameters = function () { return [
2325
- { type: ProductEventService }
2326
- ]; };
2327
- __decorate([
2328
- core.ViewChild('tabContent')
2329
- ], ProductInfoTabsComponent.prototype, "tabContent", void 0);
2330
- __decorate([
2331
- core.Input()
2332
- ], ProductInfoTabsComponent.prototype, "article", null);
2333
- ProductInfoTabsComponent = __decorate([
2334
- core.Component({
2335
- selector: 'app-product-info-tabs',
2336
- template: "<div class=\"tab-container\">\r\n <div class=\"tab-header\">\r\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\r\n </div>\r\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\r\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\r\n <ng-container *ngIf=\"i === 0\">\r\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 1\">\r\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 2\">\r\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\r\n </ng-container>\r\n <ng-container *ngIf=\"i === 3\">\r\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n",
2337
- styles: [":focus{outline:0}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:0 0;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:700;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:.2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width:650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width:450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}"]
2338
- })
2339
- ], ProductInfoTabsComponent);
2340
2673
  return ProductInfoTabsComponent;
2341
- }());
2342
-
2343
- var PipeModule = /** @class */ (function () {
2344
- function PipeModule() {
2345
- }
2346
- PipeModule = __decorate([
2347
- core.NgModule({
2348
- exports: [
2349
- LocalizePipe
2350
- ],
2351
- declarations: [
2352
- LocalizePipe
2353
- ],
2354
- providers: [
2355
- LocalizePipe
2356
- ]
2357
- })
2358
- ], PipeModule);
2359
- return PipeModule;
2360
- }());
2361
-
2362
- var ProductDocumentsComponent = /** @class */ (function () {
2363
- function ProductDocumentsComponent(iconCache) {
2364
- this.iconCache = iconCache;
2365
- this.icon = IconEnum;
2366
- this.showLabel = false;
2367
- this.documents = [];
2368
- }
2369
- ProductDocumentsComponent.ctorParameters = function () { return [
2370
- { type: IconCacheService }
2371
- ]; };
2372
- __decorate([
2373
- core.Input()
2374
- ], ProductDocumentsComponent.prototype, "showLabel", void 0);
2375
- __decorate([
2376
- core.Input()
2377
- ], ProductDocumentsComponent.prototype, "documents", void 0);
2378
- ProductDocumentsComponent = __decorate([
2379
- core.Component({
2380
- selector: 'app-product-documents',
2381
- template: "<app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n<div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n</div>\n",
2382
- styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:0!important;border:none!important;background:url(../../../assets/icons/download.svg) left 6px center/36px auto no-repeat!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}"]
2383
- })
2384
- ], ProductDocumentsComponent);
2385
- return ProductDocumentsComponent;
2386
- }());
2387
-
2388
- var HeaderComponent = /** @class */ (function () {
2389
- function HeaderComponent() {
2390
- }
2391
- HeaderComponent.prototype.ngOnInit = function () {
2392
- };
2393
- __decorate([
2394
- core.Input()
2395
- ], HeaderComponent.prototype, "label", void 0);
2396
- __decorate([
2397
- core.Input()
2398
- ], HeaderComponent.prototype, "amount", void 0);
2399
- HeaderComponent = __decorate([
2400
- core.Component({
2401
- selector: 'app-header',
2402
- template: "<ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n</ng-container>\n",
2403
- styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}"]
2404
- })
2405
- ], HeaderComponent);
2406
- return HeaderComponent;
2407
- }());
2408
-
2409
- var TabType;
2410
- (function (TabType) {
2411
- TabType["Additional"] = "additional";
2412
- TabType["Properties"] = "properties";
2413
- })(TabType || (TabType = {}));
2414
- var ProductInfoComponent = /** @class */ (function () {
2415
- function ProductInfoComponent() {
2416
- this.tabType = TabType;
2417
- this.currentTab = TabType.Additional;
2418
- }
2419
- ProductInfoComponent.prototype.ngOnInit = function () {
2420
- };
2421
- ProductInfoComponent.prototype.switchTab = function (tab) {
2422
- this.currentTab = tab;
2423
- };
2424
- __decorate([
2425
- core.Input()
2426
- ], ProductInfoComponent.prototype, "article", void 0);
2427
- ProductInfoComponent = __decorate([
2428
- core.Component({
2429
- selector: 'app-product-info',
2430
- template: "<div>\n <div class=\"info-wrapper\">\n <div class=\"info-navigation\">\n <span [textContent]=\"'ADDITIONAL_DATA' | localize\" class=\"navigator\" [class.selected]=\"currentTab === tabType.Additional\" (mouseup)=\"switchTab(tabType.Additional)\"></span>\n <span [textContent]=\"'PROPERTIES' | localize\" class=\"navigator\" [class.selected]=\"currentTab === tabType.Properties\" (mouseup)=\"switchTab(tabType.Properties)\"></span>\n </div>\n <ng-container [ngSwitch]=\"currentTab\" class=\"content\">\n <div *ngSwitchCase=\"tabType.Additional\" @showContent>\n <app-product-additional-info\n [article]=\"article\"\n ></app-product-additional-info>\n </div>\n <div *ngSwitchCase=\"tabType.Properties\" @showContent>\n <app-product-properties [article]=\"article\"></app-product-properties>\n </div>\n </ng-container>\n </div>\n</div>\n",
2431
- animations: [
2432
- animations.trigger('showContent', [
2433
- animations.state('void', animations.style({ 'opacity': '0' })),
2434
- animations.state('*', animations.style({ 'opacity': '1' })),
2435
- animations.transition('void => *', animations.animate('200ms 100ms ease-in-out')),
2436
- ])
2437
- ],
2438
- styles: [".info-navigation{margin:30px 0}.info-navigation .navigator:not(:last-child){margin-right:30px}.navigator{font-size:15px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navigator.selected{color:#2b60a7}"]
2439
- })
2440
- ], ProductInfoComponent);
2441
- return ProductInfoComponent;
2442
- }());
2674
+ }());
2675
+ ProductInfoTabsComponent.decorators = [
2676
+ { type: i0.Component, args: [{
2677
+ selector: 'app-product-info-tabs',
2678
+ 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 ",
2679
+ 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"]
2680
+ },] }
2681
+ ];
2682
+ ProductInfoTabsComponent.ctorParameters = function () { return [
2683
+ { type: ProductEventService }
2684
+ ]; };
2685
+ ProductInfoTabsComponent.propDecorators = {
2686
+ tabContent: [{ type: i0.ViewChild, args: ['tabContent',] }],
2687
+ article: [{ type: i0.Input }]
2688
+ };
2443
2689
 
2444
2690
  var ProductAdditionalInfoComponent = /** @class */ (function () {
2445
2691
  function ProductAdditionalInfoComponent(_sanitizer, _connectorService, _changeDetector) {
@@ -2463,7 +2709,7 @@
2463
2709
  });
2464
2710
  }
2465
2711
  },
2466
- enumerable: true,
2712
+ enumerable: false,
2467
2713
  configurable: true
2468
2714
  });
2469
2715
  ProductAdditionalInfoComponent.prototype.ngOnInit = function () {
@@ -2492,7 +2738,7 @@
2492
2738
  case 3:
2493
2739
  mainArticle.texts.forEach(function (txt) {
2494
2740
  if (BitUtils.IsFullDescription(txt.publication)) {
2495
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2741
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2496
2742
  texts.push(safeTxt);
2497
2743
  }
2498
2744
  });
@@ -2519,12 +2765,12 @@
2519
2765
  case 1:
2520
2766
  texts = _b.sent();
2521
2767
  if (texts.length > 0) {
2522
- (_a = this.textParts).push.apply(_a, __spread(texts));
2768
+ (_a = this.textParts).push.apply(_a, __spreadArray([], __read(texts)));
2523
2769
  }
2524
2770
  if (this.article.texts) {
2525
2771
  this.article.texts.forEach(function (txt) {
2526
2772
  if (BitUtils.IsFullDescription(txt.publication)) {
2527
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2773
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2528
2774
  _this.textParts.push(safeTxt);
2529
2775
  }
2530
2776
  });
@@ -2556,26 +2802,44 @@
2556
2802
  });
2557
2803
  });
2558
2804
  };
2559
- ProductAdditionalInfoComponent.ctorParameters = function () { return [
2560
- { type: platformBrowser.DomSanitizer },
2561
- { type: ProductConnectorService },
2562
- { type: core.ChangeDetectorRef }
2563
- ]; };
2564
- __decorate([
2565
- core.Input()
2566
- ], ProductAdditionalInfoComponent.prototype, "article", null);
2567
- __decorate([
2568
- core.Input()
2569
- ], ProductAdditionalInfoComponent.prototype, "showLabel", void 0);
2570
- ProductAdditionalInfoComponent = __decorate([
2571
- core.Component({
2572
- selector: 'app-product-additional-info',
2573
- template: "<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",
2574
- 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}"]
2575
- })
2576
- ], ProductAdditionalInfoComponent);
2577
2805
  return ProductAdditionalInfoComponent;
2578
- }());
2806
+ }());
2807
+ ProductAdditionalInfoComponent.decorators = [
2808
+ { type: i0.Component, args: [{
2809
+ selector: 'app-product-additional-info',
2810
+ 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 ",
2811
+ 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"]
2812
+ },] }
2813
+ ];
2814
+ ProductAdditionalInfoComponent.ctorParameters = function () { return [
2815
+ { type: i1$1.DomSanitizer },
2816
+ { type: ProductConnectorService },
2817
+ { type: i0.ChangeDetectorRef }
2818
+ ]; };
2819
+ ProductAdditionalInfoComponent.propDecorators = {
2820
+ article: [{ type: i0.Input }],
2821
+ showLabel: [{ type: i0.Input }]
2822
+ };
2823
+
2824
+ var ProductAdditionalInfoModule = /** @class */ (function () {
2825
+ function ProductAdditionalInfoModule() {
2826
+ }
2827
+ return ProductAdditionalInfoModule;
2828
+ }());
2829
+ ProductAdditionalInfoModule.decorators = [
2830
+ { type: i0.NgModule, args: [{
2831
+ imports: [
2832
+ common.CommonModule,
2833
+ PipeModule
2834
+ ],
2835
+ declarations: [
2836
+ ProductAdditionalInfoComponent
2837
+ ],
2838
+ exports: [
2839
+ ProductAdditionalInfoComponent
2840
+ ]
2841
+ },] }
2842
+ ];
2579
2843
 
2580
2844
  var propertyMap = new Map([
2581
2845
  ['articleNr', 'ARTICLE_NUMBER'],
@@ -2601,7 +2865,7 @@
2601
2865
  this._article = value;
2602
2866
  this._prepareProperties();
2603
2867
  },
2604
- enumerable: true,
2868
+ enumerable: false,
2605
2869
  configurable: true
2606
2870
  });
2607
2871
  ProductPropertiesComponent.prototype.ngOnInit = function () {
@@ -2618,21 +2882,86 @@
2618
2882
  }
2619
2883
  });
2620
2884
  };
2621
- __decorate([
2622
- core.Input()
2623
- ], ProductPropertiesComponent.prototype, "article", null);
2624
- __decorate([
2625
- core.Input()
2626
- ], ProductPropertiesComponent.prototype, "showLabel", void 0);
2627
- ProductPropertiesComponent = __decorate([
2628
- core.Component({
2629
- selector: 'app-product-properties',
2630
- template: "<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",
2631
- 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}}"]
2632
- })
2633
- ], ProductPropertiesComponent);
2634
2885
  return ProductPropertiesComponent;
2635
- }());
2886
+ }());
2887
+ ProductPropertiesComponent.decorators = [
2888
+ { type: i0.Component, args: [{
2889
+ selector: 'app-product-properties',
2890
+ 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 ",
2891
+ 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"]
2892
+ },] }
2893
+ ];
2894
+ ProductPropertiesComponent.ctorParameters = function () { return []; };
2895
+ ProductPropertiesComponent.propDecorators = {
2896
+ article: [{ type: i0.Input }],
2897
+ showLabel: [{ type: i0.Input }]
2898
+ };
2899
+
2900
+ var ProductPropertiesModule = /** @class */ (function () {
2901
+ function ProductPropertiesModule() {
2902
+ }
2903
+ return ProductPropertiesModule;
2904
+ }());
2905
+ ProductPropertiesModule.decorators = [
2906
+ { type: i0.NgModule, args: [{
2907
+ imports: [
2908
+ common.CommonModule,
2909
+ PipeModule
2910
+ ],
2911
+ declarations: [
2912
+ ProductPropertiesComponent
2913
+ ],
2914
+ exports: [
2915
+ ProductPropertiesComponent
2916
+ ]
2917
+ },] }
2918
+ ];
2919
+
2920
+ var ProductDocumentsComponent = /** @class */ (function () {
2921
+ function ProductDocumentsComponent(iconCache) {
2922
+ this.iconCache = iconCache;
2923
+ this.icon = IconEnum;
2924
+ this.showLabel = false;
2925
+ this.documents = [];
2926
+ }
2927
+ return ProductDocumentsComponent;
2928
+ }());
2929
+ ProductDocumentsComponent.decorators = [
2930
+ { type: i0.Component, args: [{
2931
+ selector: 'app-product-documents',
2932
+ 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 ",
2933
+ styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:none!important;border:none!important;background:transparent!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3Csvg xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22 xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22 xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22 xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 viewBox%3D%220 0 50 50%22 version%3D%221.1%22 id%3D%22svg8%22 sodipodi%3Adocname%3D%22download.svg%22 inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E %3Cmetadata id%3D%22metadata14%22%3E %3Crdf%3ARDF%3E %3Ccc%3AWork rdf%3Aabout%3D%22%22%3E %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E %3Cdc%3Atype rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E %3C%2Fcc%3AWork%3E %3C%2Frdf%3ARDF%3E %3C%2Fmetadata%3E %3Cdefs id%3D%22defs12%22 %2F%3E %3Csodipodi%3Anamedview pagecolor%3D%22%23ffffff%22 bordercolor%3D%22%23666666%22 borderopacity%3D%221%22 objecttolerance%3D%2210%22 gridtolerance%3D%2210%22 guidetolerance%3D%2210%22 inkscape%3Apageopacity%3D%220%22 inkscape%3Apageshadow%3D%222%22 inkscape%3Awindow-width%3D%221920%22 inkscape%3Awindow-height%3D%221017%22 id%3D%22namedview10%22 showgrid%3D%22false%22 inkscape%3Azoom%3D%226.675088%22 inkscape%3Acx%3D%22-14.056273%22 inkscape%3Acy%3D%2229.806579%22 inkscape%3Awindow-x%3D%22-8%22 inkscape%3Awindow-y%3D%22-8%22 inkscape%3Awindow-maximized%3D%221%22 inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g62%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g64%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g66%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g68%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g70%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g72%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g74%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g76%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g78%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g80%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g82%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g84%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g86%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g88%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g90%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g6-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g4-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 498.966%2C339.946 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 v 49.804 c 0%2C28.747 -23.388%2C52.135 -52.135%2C52.135 H 78.203 c -28.747%2C0 -52.135%2C-23.388 -52.135%2C-52.135 V 352.98 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 C 5.835%2C339.946 0%2C345.782 0%2C352.98 v 49.804 c 0%2C43.121 35.082%2C78.203 78.203%2C78.203 h 355.594 c 43.121%2C0 78.203%2C-35.082 78.203%2C-78.203 V 352.98 c 0%2C-7.198 -5.835%2C-13.034 -13.034%2C-13.034 z%22 id%3D%22path2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g12-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g10-8%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22M 419.833%2C391.3 H 92.167 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 0%2C7.197 5.835%2C13.034 13.034%2C13.034 h 327.665 c 7.199%2C0 13.034%2C-5.835 13.034%2C-13.034 0%2C-7.197 -5.835%2C-13.034 -13.033%2C-13.034 z%22 id%3D%22path8-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g18-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g16-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 387.919%2C207.93 c -4.795%2C-5.367 -13.034%2C-5.834 -18.404%2C-1.038 L 269.033%2C296.657 V 44.048 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 -7.197%2C0 -13.034%2C5.835 -13.034%2C13.034 V 296.657 L 142.483%2C206.893 c -5.367%2C-4.796 -13.607%2C-4.328 -18.404%2C1.038 -4.794%2C5.369 -4.331%2C13.609 1.037%2C18.404 l 109.174%2C97.527 c 6.187%2C5.529 13.946%2C8.292 21.708%2C8.292 7.759%2C0 15.519%2C-2.763 21.708%2C-8.289 l 109.174%2C-97.53 c 5.37%2C-4.798 5.834%2C-13.038 1.039%2C-18.405 z%22 id%3D%22path14-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g20%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g22-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g24-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g26%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g28-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g30-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g32%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g34-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g36-1%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g38%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g40-6%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g42-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g44%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g46-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g48-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%3C%2Fsvg%3E\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
2934
+ },] }
2935
+ ];
2936
+ ProductDocumentsComponent.ctorParameters = function () { return [
2937
+ { type: IconCacheService }
2938
+ ]; };
2939
+ ProductDocumentsComponent.propDecorators = {
2940
+ showLabel: [{ type: i0.Input }],
2941
+ documents: [{ type: i0.Input }]
2942
+ };
2943
+
2944
+ var ProductDocumentModule = /** @class */ (function () {
2945
+ function ProductDocumentModule() {
2946
+ }
2947
+ return ProductDocumentModule;
2948
+ }());
2949
+ ProductDocumentModule.decorators = [
2950
+ { type: i0.NgModule, args: [{
2951
+ imports: [
2952
+ common.CommonModule,
2953
+ HeaderModule,
2954
+ PipeModule,
2955
+ corecomponents.FilesUploadModule
2956
+ ],
2957
+ declarations: [
2958
+ ProductDocumentsComponent
2959
+ ],
2960
+ exports: [
2961
+ ProductDocumentsComponent
2962
+ ]
2963
+ },] }
2964
+ ];
2636
2965
 
2637
2966
  var ProductSymbolsComponent = /** @class */ (function () {
2638
2967
  function ProductSymbolsComponent() {
@@ -2653,167 +2982,307 @@
2653
2982
  }
2654
2983
  }
2655
2984
  },
2656
- enumerable: true,
2985
+ enumerable: false,
2657
2986
  configurable: true
2658
2987
  });
2659
2988
  ProductSymbolsComponent.prototype.ngOnInit = function () {
2660
2989
  };
2661
- __decorate([
2662
- core.Input()
2663
- ], ProductSymbolsComponent.prototype, "symbols", null);
2664
- __decorate([
2665
- core.HostBinding('class')
2666
- ], ProductSymbolsComponent.prototype, "_className", void 0);
2667
- ProductSymbolsComponent = __decorate([
2668
- core.Component({
2669
- selector: 'app-product-symbols',
2670
- template: "<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",
2671
- styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}"]
2672
- })
2673
- ], ProductSymbolsComponent);
2674
2990
  return ProductSymbolsComponent;
2675
- }());
2991
+ }());
2992
+ ProductSymbolsComponent.decorators = [
2993
+ { type: i0.Component, args: [{
2994
+ selector: 'app-product-symbols',
2995
+ 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 ",
2996
+ styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
2997
+ },] }
2998
+ ];
2999
+ ProductSymbolsComponent.ctorParameters = function () { return []; };
3000
+ ProductSymbolsComponent.propDecorators = {
3001
+ symbols: [{ type: i0.Input }],
3002
+ _className: [{ type: i0.HostBinding, args: ['class',] }]
3003
+ };
3004
+
3005
+ var ProductSymbolsModule = /** @class */ (function () {
3006
+ function ProductSymbolsModule() {
3007
+ }
3008
+ return ProductSymbolsModule;
3009
+ }());
3010
+ ProductSymbolsModule.decorators = [
3011
+ { type: i0.NgModule, args: [{
3012
+ imports: [
3013
+ common.CommonModule,
3014
+ HeaderModule,
3015
+ PipeModule,
3016
+ corecomponents.ScrollContainerModule,
3017
+ corecomponents.TileModule
3018
+ ],
3019
+ declarations: [
3020
+ ProductSymbolsComponent
3021
+ ],
3022
+ exports: [
3023
+ ProductSymbolsComponent
3024
+ ]
3025
+ },] }
3026
+ ];
3027
+
3028
+ var ProductInfoTabsModule = /** @class */ (function () {
3029
+ function ProductInfoTabsModule() {
3030
+ }
3031
+ return ProductInfoTabsModule;
3032
+ }());
3033
+ ProductInfoTabsModule.decorators = [
3034
+ { type: i0.NgModule, args: [{
3035
+ imports: [
3036
+ common.CommonModule,
3037
+ PipeModule,
3038
+ ProductAdditionalInfoModule,
3039
+ ProductPropertiesModule,
3040
+ ProductDocumentModule,
3041
+ ProductSymbolsModule
3042
+ ],
3043
+ declarations: [
3044
+ ProductInfoTabsComponent
3045
+ ],
3046
+ exports: [
3047
+ ProductInfoTabsComponent
3048
+ ]
3049
+ },] }
3050
+ ];
2676
3051
 
2677
3052
  var ProductPageModule = /** @class */ (function () {
2678
3053
  function ProductPageModule() {
2679
3054
  }
2680
- ProductPageModule = __decorate([
2681
- core.NgModule({
2682
- imports: [
2683
- common.CommonModule,
2684
- corecomponents.IconModule,
2685
- corecomponents.LoaderModule,
2686
- PipeModule,
2687
- corecomponents.NumberPickerModule,
2688
- corecomponents.ButtonModule,
2689
- corecomponents.PriceDisplayPipeModule,
2690
- corecomponents.InputTextModule,
2691
- corecomponents.FilesUploadModule,
2692
- corecomponents.ScrollContainerModule,
2693
- corecomponents.TileModule,
2694
- corecomponents.LevelIndicatorModule,
2695
- corecomponents.ArticleTileModule,
2696
- ],
2697
- schemas: [core.CUSTOM_ELEMENTS_SCHEMA],
2698
- declarations: [
2699
- ProductPageComponent,
2700
- ProductSelectorTypeComponent,
2701
- ImageCarouselComponent,
2702
- ProductDescriptionComponent,
2703
- ProductAdditionalDescriptionComponent,
2704
- ProductPriceComponent,
2705
- ProductAddtocartComponent,
2706
- ProductRelatedComponent,
2707
- ProductStockComponent,
2708
- ProductDeliveryComponent,
2709
- ProductInfoTabsComponent,
2710
- ProductDocumentsComponent,
2711
- HeaderComponent,
2712
- ProductInfoComponent,
2713
- ProductAdditionalInfoComponent,
2714
- ProductPropertiesComponent,
2715
- ProductSymbolsComponent
2716
- ],
2717
- exports: [ProductPageComponent]
2718
- })
2719
- ], ProductPageModule);
2720
3055
  return ProductPageModule;
2721
- }());
3056
+ }());
3057
+ ProductPageModule.decorators = [
3058
+ { type: i0.NgModule, args: [{
3059
+ imports: [
3060
+ common.CommonModule,
3061
+ ProductSelectorTypeModule,
3062
+ ImageCarouselModule,
3063
+ corecomponents.IconModule,
3064
+ ProductDescriptionModule,
3065
+ ProductAdditionalDescriptionModule,
3066
+ ProductPriceModule,
3067
+ ProductAddtocartModule,
3068
+ ProductRelatedModule,
3069
+ ProductStockModule,
3070
+ ProductDeliveryModule,
3071
+ ProductInfoTabsModule,
3072
+ PipeModule
3073
+ ],
3074
+ schemas: [i0.CUSTOM_ELEMENTS_SCHEMA],
3075
+ declarations: [
3076
+ ProductPageComponent
3077
+ ],
3078
+ exports: [
3079
+ ProductPageComponent
3080
+ ]
3081
+ },] }
3082
+ ];
3083
+
3084
+ var IoneProductModule = /** @class */ (function () {
3085
+ function IoneProductModule() {
3086
+ }
3087
+ return IoneProductModule;
3088
+ }());
3089
+ IoneProductModule.decorators = [
3090
+ { type: i0.NgModule, args: [{
3091
+ imports: [
3092
+ // BrowserAnimationsModule,
3093
+ common.CommonModule,
3094
+ ProductPageModule
3095
+ ],
3096
+ declarations: [
3097
+ IoneProductComponent
3098
+ ],
3099
+ exports: [
3100
+ IoneProductComponent
3101
+ ],
3102
+ bootstrap: [
3103
+ IoneProductComponent
3104
+ ]
3105
+ },] }
3106
+ ];
3107
+
3108
+ var ProductExternalSourceComponent = /** @class */ (function () {
3109
+ function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
3110
+ this._sanitizer = _sanitizer;
3111
+ this._productConnectorService = _productConnectorService;
3112
+ this._appEventService = _appEventService;
3113
+ this.addToCart = new i0.EventEmitter();
3114
+ this.addToQuote = new i0.EventEmitter();
3115
+ this.alternativeClick = new i0.EventEmitter();
3116
+ this.showProduct = false;
3117
+ this.loaded = false;
3118
+ this.externalSettings = {};
3119
+ this._subs = [];
3120
+ }
3121
+ Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
3122
+ get: function () {
3123
+ return this._externalSource;
3124
+ },
3125
+ set: function (value) {
3126
+ this._externalSource = value;
3127
+ this.loaded = false;
3128
+ this._prepareExternalSource();
3129
+ },
3130
+ enumerable: false,
3131
+ configurable: true
3132
+ });
3133
+ ProductExternalSourceComponent.prototype.showClass = function () {
3134
+ return true;
3135
+ };
3136
+ ProductExternalSourceComponent.prototype.ngOnInit = function () {
3137
+ var _this = this;
3138
+ this._subs.push(this._appEventService.onAddToCart.subscribe(function (json) { return _this.addToCart.next(json); }), this._appEventService.onAddToQuote.subscribe(function (json) { return _this.addToQuote.next(json); }), this._appEventService.onAlternativeClick.subscribe(function (article) { return _this.alternativeClick.next(article); }));
3139
+ };
3140
+ ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
3141
+ this._subs.forEach(function (s) { return s.unsubscribe(); });
3142
+ };
3143
+ ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
3144
+ return __awaiter(this, void 0, void 0, function () {
3145
+ var bundleSettings;
3146
+ return __generator(this, function (_a) {
3147
+ switch (_a.label) {
3148
+ case 0:
3149
+ if (!this._externalSource) {
3150
+ return [2 /*return*/];
3151
+ }
3152
+ this.externalUrl = undefined;
3153
+ this.externalSettings = {};
3154
+ if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
3155
+ return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
3156
+ case 1:
3157
+ bundleSettings = _a.sent();
3158
+ this.externalSettings = JSON.parse(bundleSettings);
3159
+ if (this.options) {
3160
+ this.externalSettings.options = this.options;
3161
+ }
3162
+ // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
3163
+ // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
3164
+ if (this.externalSource.username && this.externalSource.password) {
3165
+ this.externalSettings.useLoginEncryption = true;
3166
+ this.externalSettings.username = this.externalSource.username;
3167
+ this.externalSettings.password = this.externalSource.password;
3168
+ }
3169
+ // finally show the catalog
3170
+ this.showProduct = true;
3171
+ return [3 /*break*/, 3];
3172
+ case 2:
3173
+ this.externalUrl = this.externalSource.url;
3174
+ this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
3175
+ this.showProduct = false;
3176
+ _a.label = 3;
3177
+ case 3:
3178
+ this.loaded = true;
3179
+ return [2 /*return*/];
3180
+ }
3181
+ });
3182
+ });
3183
+ };
3184
+ return ProductExternalSourceComponent;
3185
+ }());
3186
+ ProductExternalSourceComponent.decorators = [
3187
+ { type: i0.Component, args: [{
3188
+ selector: 'co-product-external-source',
3189
+ template: "\n <ng-container *ngIf=\"loaded\">\n <ng-container *ngIf=\"showProduct\">\n <app-product-page\n [sku]=\"sku\"\n [settings]=\"externalSettings\"\n ></app-product-page>\n </ng-container>\n <ng-container *ngIf=\"!showProduct\">\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\n </ng-container>\n </ng-container>\n ",
3190
+ providers: [
3191
+ ProductEventService,
3192
+ ProductSettingsService,
3193
+ ProductConnectorAdapterService,
3194
+ ProductConnectorService
3195
+ ],
3196
+ encapsulation: i0.ViewEncapsulation.None
3197
+ },] }
3198
+ ];
3199
+ ProductExternalSourceComponent.ctorParameters = function () { return [
3200
+ { type: i1$1.DomSanitizer },
3201
+ { type: ProductConnectorService },
3202
+ { type: ProductEventService }
3203
+ ]; };
3204
+ ProductExternalSourceComponent.propDecorators = {
3205
+ sku: [{ type: i0.Input }],
3206
+ externalSource: [{ type: i0.Input }],
3207
+ options: [{ type: i0.Input }],
3208
+ addToCart: [{ type: i0.Output }],
3209
+ addToQuote: [{ type: i0.Output }],
3210
+ alternativeClick: [{ type: i0.Output }],
3211
+ showClass: [{ type: i0.HostBinding, args: ['class.co-product-external-source',] }]
3212
+ };
2722
3213
 
2723
3214
  var ProductExternalSourceModule = /** @class */ (function () {
2724
3215
  function ProductExternalSourceModule() {
2725
3216
  }
2726
- ProductExternalSourceModule = __decorate([
2727
- core.NgModule({
2728
- imports: [
2729
- common.CommonModule,
2730
- ProductPageModule
2731
- ],
2732
- declarations: [
2733
- ProductExternalSourceComponent
2734
- ],
2735
- exports: [
2736
- ProductExternalSourceComponent
2737
- ]
2738
- })
2739
- ], ProductExternalSourceModule);
2740
3217
  return ProductExternalSourceModule;
2741
- }());
3218
+ }());
3219
+ ProductExternalSourceModule.decorators = [
3220
+ { type: i0.NgModule, args: [{
3221
+ imports: [
3222
+ common.CommonModule,
3223
+ ProductPageModule
3224
+ ],
3225
+ declarations: [
3226
+ ProductExternalSourceComponent
3227
+ ],
3228
+ exports: [
3229
+ ProductExternalSourceComponent
3230
+ ]
3231
+ },] }
3232
+ ];
2742
3233
 
2743
- function initializeApp(context) {
2744
- var x = function () { return context.initializeApp(); };
2745
- return x;
2746
- }
2747
- var IoneProductModule = /** @class */ (function () {
2748
- function IoneProductModule() {
2749
- }
2750
- IoneProductModule = __decorate([
2751
- core.NgModule({
2752
- imports: [
2753
- // BrowserAnimationsModule,
2754
- common.CommonModule,
2755
- ProductExternalSourceModule,
2756
- ProductPageModule
2757
- ],
2758
- declarations: [
2759
- IoneProductComponent
2760
- ],
2761
- entryComponents: [
2762
- IoneProductComponent
2763
- ],
2764
- providers: [
2765
- {
2766
- provide: core.APP_INITIALIZER,
2767
- useFactory: initializeApp,
2768
- deps: [ProductInitializerService],
2769
- multi: true
2770
- }
2771
- ],
2772
- exports: [IoneProductComponent],
2773
- bootstrap: [
2774
- IoneProductComponent
2775
- ]
2776
- })
2777
- ], IoneProductModule);
2778
- return IoneProductModule;
2779
- }());
3234
+ /**
3235
+ * Generated bundle index. Do not edit.
3236
+ */
2780
3237
 
3238
+ exports.IoneProductComponent = IoneProductComponent;
2781
3239
  exports.IoneProductModule = IoneProductModule;
2782
3240
  exports.ProductExternalSourceComponent = ProductExternalSourceComponent;
2783
3241
  exports.ProductExternalSourceModule = ProductExternalSourceModule;
2784
3242
  exports.Version = Version;
2785
- exports.initializeApp = initializeApp;
2786
- exports.ɵa = ProductPageModule;
2787
- exports.ɵb = PipeModule;
2788
- exports.ɵba = ProductSymbolsComponent;
2789
- exports.ɵbb = IoneProductComponent;
2790
- exports.ɵbc = ProductInitializerService;
2791
- exports.ɵc = LocalizePipe;
2792
- exports.ɵd = DictionaryService;
2793
- exports.ɵe = JsonUtilsService;
2794
- exports.ɵf = ProductPageComponent;
2795
- exports.ɵg = ProductConnectorService;
2796
- exports.ɵh = ProductConnectorAdapterService;
2797
- exports.ɵi = ProductSettingsService;
2798
- exports.ɵj = IconCacheService;
2799
- exports.ɵk = ProductEventService;
2800
- exports.ɵl = ProductSelectorTypeComponent;
2801
- exports.ɵm = ImageCarouselComponent;
2802
- exports.ɵn = ProductDescriptionComponent;
2803
- exports.ɵo = ProductAdditionalDescriptionComponent;
2804
- exports.ɵp = ProductPriceComponent;
2805
- exports.ɵq = ProductAddtocartComponent;
2806
- exports.ɵr = ProductRelatedComponent;
2807
- exports.ɵs = ProductStockComponent;
2808
- exports.ɵt = ProductDeliveryComponent;
2809
- exports.ɵu = ProductInfoTabsComponent;
2810
- exports.ɵv = ProductDocumentsComponent;
2811
- exports.ɵw = HeaderComponent;
2812
- exports.ɵx = ProductInfoComponent;
2813
- exports.ɵy = ProductAdditionalInfoComponent;
2814
- exports.ɵz = ProductPropertiesComponent;
3243
+ exports["ɵa"] = ProductPageModule;
3244
+ exports["ɵb"] = ProductSelectorTypeModule;
3245
+ exports["ɵba"] = ProductStockModule;
3246
+ exports["ɵbb"] = ProductStockComponent;
3247
+ exports["ɵbc"] = ProductDeliveryModule;
3248
+ exports["ɵbd"] = ProductDeliveryComponent;
3249
+ exports["ɵbe"] = ProductInfoTabsModule;
3250
+ exports["ɵbf"] = ProductAdditionalInfoModule;
3251
+ exports["ɵbg"] = ProductAdditionalInfoComponent;
3252
+ exports["ɵbh"] = ProductPropertiesModule;
3253
+ exports["ɵbi"] = ProductPropertiesComponent;
3254
+ exports["ɵbj"] = ProductDocumentModule;
3255
+ exports["ɵbk"] = ProductDocumentsComponent;
3256
+ exports["ɵbl"] = ProductSymbolsModule;
3257
+ exports["ɵbm"] = ProductSymbolsComponent;
3258
+ exports["ɵbn"] = ProductInfoTabsComponent;
3259
+ exports["ɵbo"] = ProductPageComponent;
3260
+ exports["ɵc"] = PipeModule;
3261
+ exports["ɵd"] = LocalizePipe;
3262
+ exports["ɵe"] = DictionaryService;
3263
+ exports["ɵf"] = JsonUtilsService;
3264
+ exports["ɵg"] = ProductSelectorTypeComponent;
3265
+ exports["ɵh"] = IconCacheService;
3266
+ exports["ɵi"] = ImageCarouselModule;
3267
+ exports["ɵj"] = ImageCarouselComponent;
3268
+ exports["ɵk"] = ProductConnectorService;
3269
+ exports["ɵl"] = ProductConnectorAdapterService;
3270
+ exports["ɵm"] = ProductSettingsService;
3271
+ exports["ɵn"] = ProductEventService;
3272
+ exports["ɵo"] = ProductDescriptionModule;
3273
+ exports["ɵp"] = ProductDescriptionComponent;
3274
+ exports["ɵq"] = ProductAdditionalDescriptionModule;
3275
+ exports["ɵr"] = ProductAdditionalDescriptionComponent;
3276
+ exports["ɵs"] = ProductPriceModule;
3277
+ exports["ɵt"] = ProductPriceComponent;
3278
+ exports["ɵu"] = ProductAddtocartModule;
3279
+ exports["ɵv"] = ProductAddtocartComponent;
3280
+ exports["ɵw"] = ProductRelatedModule;
3281
+ exports["ɵx"] = HeaderModule;
3282
+ exports["ɵy"] = HeaderComponent;
3283
+ exports["ɵz"] = ProductRelatedComponent;
2815
3284
 
2816
3285
  Object.defineProperty(exports, '__esModule', { value: true });
2817
3286
 
2818
- })));
3287
+ }));
2819
3288
  //# sourceMappingURL=colijnit-product.umd.js.map