@colijnit/product 2.9.1 → 12.0.1

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 (138) 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 +2 -0
  19. package/bundles/colijnit-product.umd.js +1433 -959
  20. package/bundles/colijnit-product.umd.js.map +1 -1
  21. package/colijnit-product.d.ts +40 -27
  22. package/colijnit-product.metadata.json +1 -1
  23. package/esm2015/app/components/core/header/header.component.js +21 -17
  24. package/esm2015/app/components/core/header/header.module.js +19 -0
  25. package/esm2015/app/components/image-carousel/image-carousel.component.js +51 -35
  26. package/esm2015/app/components/image-carousel/image-carousel.module.js +23 -0
  27. package/esm2015/app/components/product-additional-description/product-additional-description.component.js +20 -15
  28. package/esm2015/app/components/product-additional-description/product-additional-description.module.js +21 -0
  29. package/esm2015/app/components/product-additional-info/product-additional-info.component.js +22 -20
  30. package/esm2015/app/components/product-additional-info/product-additional-info.module.js +21 -0
  31. package/esm2015/app/components/product-addtocart/product-addtocart.component.js +43 -40
  32. package/esm2015/app/components/product-addtocart/product-addtocart.module.js +24 -0
  33. package/esm2015/app/components/product-delivery/product-delivery.component.js +22 -15
  34. package/esm2015/app/components/product-delivery/product-delivery.module.js +23 -0
  35. package/esm2015/app/components/product-description/product-description.component.js +18 -14
  36. package/esm2015/app/components/product-description/product-description.module.js +19 -0
  37. package/esm2015/app/components/product-documents/product-document.module.js +25 -0
  38. package/esm2015/app/components/product-documents/product-documents.component.js +19 -18
  39. package/esm2015/app/components/product-external-source/product-external-source.component.js +32 -45
  40. package/esm2015/app/components/product-external-source/product-external-source.module.js +17 -19
  41. package/esm2015/app/components/product-info-tabs/product-info-tabs.component.js +36 -18
  42. package/esm2015/app/components/product-info-tabs/product-info-tabs.module.js +29 -0
  43. package/esm2015/app/components/product-page/product-page.component.js +56 -60
  44. package/esm2015/app/components/product-page/product-page.module.js +40 -62
  45. package/esm2015/app/components/product-price/product-price.component.js +26 -19
  46. package/esm2015/app/components/product-price/product-price.module.js +23 -0
  47. package/esm2015/app/components/product-properties/product-properties.component.js +24 -17
  48. package/esm2015/app/components/product-properties/product-properties.module.js +21 -0
  49. package/esm2015/app/components/product-related/product-related.component.js +33 -24
  50. package/esm2015/app/components/product-related/product-related.module.js +24 -0
  51. package/esm2015/app/components/product-selector-type/product-selector-type.component.js +30 -28
  52. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +26 -0
  53. package/esm2015/app/components/product-stock/product-stock.component.js +29 -16
  54. package/esm2015/app/components/product-stock/product-stock.module.js +23 -0
  55. package/esm2015/app/components/product-symbols/product-symbols.component.js +28 -17
  56. package/esm2015/app/components/product-symbols/product-symbols.module.js +26 -0
  57. package/esm2015/app/enum/icon.enum.js +1 -1
  58. package/esm2015/app/enum/language-code.enum.js +1 -1
  59. package/esm2015/app/enum/selector-type.enum.js +1 -1
  60. package/esm2015/app/ione-product.component.js +39 -51
  61. package/esm2015/app/ione-product.module.js +21 -27
  62. package/esm2015/app/model/article-quantity.model.js +1 -1
  63. package/esm2015/app/model/icon.js +1 -1
  64. package/esm2015/app/model/productSettings.js +1 -1
  65. package/esm2015/app/model/render-modes.js +1 -1
  66. package/esm2015/app/model/render-parameters.js +1 -1
  67. package/esm2015/app/model/settings-options.js +1 -1
  68. package/esm2015/app/model/stock-and-delivery.js +1 -1
  69. package/esm2015/app/pipe/localize.pipe.js +8 -12
  70. package/esm2015/app/pipe/pipe.module.js +16 -18
  71. package/esm2015/app/product-version.js +3 -3
  72. package/esm2015/app/service/dictionary.service.js +10 -11
  73. package/esm2015/app/service/icon-cache.service.js +10 -12
  74. package/esm2015/app/service/product-connector-adapter.service.js +8 -8
  75. package/esm2015/app/service/product-connector.service.js +7 -8
  76. package/esm2015/app/service/product-event.service.js +12 -20
  77. package/esm2015/app/service/product-settings.service.js +7 -8
  78. package/esm2015/app/utils/bit-utils.js +1 -1
  79. package/esm2015/app/utils/json-utils.service.js +9 -10
  80. package/esm2015/assets/dictionary/text.properties.js +1 -1
  81. package/esm2015/colijnit-product.js +41 -28
  82. package/esm2015/public_api.js +2 -1
  83. package/fesm2015/colijnit-product.js +1053 -722
  84. package/fesm2015/colijnit-product.js.map +1 -1
  85. package/package.json +15 -18
  86. package/public_api.d.ts +1 -0
  87. package/app/components/product-info/product-info.component.d.ts +0 -14
  88. package/bundles/colijnit-product.umd.min.js +0 -16
  89. package/bundles/colijnit-product.umd.min.js.map +0 -1
  90. package/esm2015/app/components/product-info/product-info.component.js +0 -38
  91. package/esm5/app/components/core/header/header.component.js +0 -24
  92. package/esm5/app/components/image-carousel/image-carousel.component.js +0 -170
  93. package/esm5/app/components/product-additional-description/product-additional-description.component.js +0 -59
  94. package/esm5/app/components/product-additional-info/product-additional-info.component.js +0 -142
  95. package/esm5/app/components/product-addtocart/product-addtocart.component.js +0 -133
  96. package/esm5/app/components/product-delivery/product-delivery.component.js +0 -47
  97. package/esm5/app/components/product-description/product-description.component.js +0 -21
  98. package/esm5/app/components/product-documents/product-documents.component.js +0 -31
  99. package/esm5/app/components/product-external-source/product-external-source.component.js +0 -126
  100. package/esm5/app/components/product-external-source/product-external-source.module.js +0 -26
  101. package/esm5/app/components/product-info/product-info.component.js +0 -39
  102. package/esm5/app/components/product-info-tabs/product-info-tabs.component.js +0 -70
  103. package/esm5/app/components/product-page/product-page.component.js +0 -247
  104. package/esm5/app/components/product-page/product-page.module.js +0 -69
  105. package/esm5/app/components/product-price/product-price.component.js +0 -74
  106. package/esm5/app/components/product-properties/product-properties.component.js +0 -60
  107. package/esm5/app/components/product-related/product-related.component.js +0 -78
  108. package/esm5/app/components/product-selector-type/product-selector-type.component.js +0 -54
  109. package/esm5/app/components/product-stock/product-stock.component.js +0 -41
  110. package/esm5/app/components/product-symbols/product-symbols.component.js +0 -43
  111. package/esm5/app/enum/icon.enum.js +0 -19
  112. package/esm5/app/enum/language-code.enum.js +0 -8
  113. package/esm5/app/enum/selector-type.enum.js +0 -7
  114. package/esm5/app/ione-product.component.js +0 -194
  115. package/esm5/app/ione-product.module.js +0 -35
  116. package/esm5/app/model/article-quantity.model.js +0 -7
  117. package/esm5/app/model/icon.js +0 -18
  118. package/esm5/app/model/productSettings.js +0 -18
  119. package/esm5/app/model/render-modes.js +0 -7
  120. package/esm5/app/model/render-parameters.js +0 -12
  121. package/esm5/app/model/settings-options.js +0 -15
  122. package/esm5/app/model/stock-and-delivery.js +0 -10
  123. package/esm5/app/pipe/localize.pipe.js +0 -33
  124. package/esm5/app/pipe/pipe.module.js +0 -23
  125. package/esm5/app/product-version.js +0 -12
  126. package/esm5/app/service/dictionary.service.js +0 -95
  127. package/esm5/app/service/icon-cache.service.js +0 -47
  128. package/esm5/app/service/product-connector-adapter.service.js +0 -248
  129. package/esm5/app/service/product-connector.service.js +0 -141
  130. package/esm5/app/service/product-event.service.js +0 -38
  131. package/esm5/app/service/product-settings.service.js +0 -107
  132. package/esm5/app/utils/bit-utils.js +0 -22
  133. package/esm5/app/utils/json-utils.service.js +0 -42
  134. package/esm5/assets/dictionary/text.properties.js +0 -67
  135. package/esm5/colijnit-product.js +0 -33
  136. package/esm5/public_api.js +0 -5
  137. package/fesm5/colijnit-product.js +0 -2581
  138. 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/corecomponents'), require('@colijnit/mainapi/build/model/co-document'), 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/corecomponents', '@colijnit/mainapi/build/model/co-document', '@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.corecomponents, global.coDocument, global.configuratorStatisticsEnvironment));
5
+ })(this, (function (exports, i0, rxjs, options, articleFullObject, superArticle, articles, deliveryPrognosis, documentContent, businessObjectFactory, transaction, mainapi, i1, stringUtils, common, animations, i1$1, corecomponents, coDocument, 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.1";
35
+ this.publishDate = "29-9-2023 13:41:37";
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.1";
232
- this.publishDate = "14-9-2023 16:32:35";
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,20 +1253,20 @@
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();
1007
1270
  this.settingsLoaded = false;
1008
1271
  this._subs = [];
1009
1272
  // this.sku = "70000107";
@@ -1032,7 +1295,7 @@
1032
1295
  // this._initConnection(settings);
1033
1296
  }
1034
1297
  },
1035
- enumerable: true,
1298
+ enumerable: false,
1036
1299
  configurable: true
1037
1300
  });
1038
1301
  IoneProductComponent.prototype.ngOnInit = function () {
@@ -1073,16 +1336,16 @@
1073
1336
  compositeGoods.sort(function (a, b) { return a.versionNumber < b.versionNumber ? -1 : 1; });
1074
1337
  _loop_1 = function (i) {
1075
1338
  var good, subArticle;
1076
- return __generator(this, function (_a) {
1077
- switch (_a.label) {
1339
+ return __generator(this, function (_b) {
1340
+ switch (_b.label) {
1078
1341
  case 0:
1079
1342
  good = compositeGoods[i];
1080
1343
  subArticle = articleTreeData.articleTree.subArticles.find(function (s) { return s.goodId === good.memberGoodId; });
1081
1344
  if (!subArticle) return [3 /*break*/, 2];
1082
1345
  return [4 /*yield*/, this_1._ione.addWebSessionTransactionLine(subArticle.articleNumber, good.quantity)];
1083
1346
  case 1:
1084
- _a.sent();
1085
- _a.label = 2;
1347
+ _b.sent();
1348
+ _b.label = 2;
1086
1349
  case 2: return [2 /*return*/];
1087
1350
  }
1088
1351
  });
@@ -1111,175 +1374,45 @@
1111
1374
  });
1112
1375
  });
1113
1376
  };
1114
- IoneProductComponent.ctorParameters = function () { return [
1115
- { type: DictionaryService },
1116
- { type: JsonUtilsService },
1117
- { type: ProductConnectorService },
1118
- { type: core.ChangeDetectorRef },
1119
- { type: ProductEventService },
1120
- { type: ProductSettingsService }
1121
- ]; };
1122
- __decorate([
1123
- core.Input()
1124
- ], IoneProductComponent.prototype, "sku", void 0);
1125
- __decorate([
1126
- core.Input()
1127
- ], IoneProductComponent.prototype, "settings", null);
1128
- __decorate([
1129
- core.Output()
1130
- ], IoneProductComponent.prototype, "onAddToCart", void 0);
1131
- __decorate([
1132
- core.Output()
1133
- ], IoneProductComponent.prototype, "forceRenderImage", void 0);
1134
- __decorate([
1135
- core.Output()
1136
- ], IoneProductComponent.prototype, "onAlternativeClick", void 0);
1137
- __decorate([
1138
- core.Output()
1139
- ], IoneProductComponent.prototype, "onArticleInfoReceived", void 0);
1140
- __decorate([
1141
- core.Output()
1142
- ], IoneProductComponent.prototype, "onArticleReceived", void 0);
1143
- __decorate([
1144
- core.Output()
1145
- ], IoneProductComponent.prototype, "onSelectionsReceived", void 0);
1146
- __decorate([
1147
- core.Output()
1148
- ], IoneProductComponent.prototype, "onAddToQuote", void 0);
1149
- IoneProductComponent = __decorate([
1150
- core.Component({
1151
- selector: 'app-ione-product',
1152
- template: "\n <app-product-page *ngIf=\"settingsLoaded\"\n [sku]=\"sku\"\n ></app-product-page>\n ",
1153
- providers: [
1154
- ProductEventService,
1155
- ProductSettingsService,
1156
- ProductConnectorAdapterService,
1157
- ProductConnectorService
1158
- ],
1159
- encapsulation: core.ViewEncapsulation.Emulated,
1160
- styles: [""]
1161
- })
1162
- ], IoneProductComponent);
1163
- return IoneProductComponent;
1164
- }());
1165
-
1166
- var ProductExternalSourceComponent = /** @class */ (function () {
1167
- function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
1168
- this._sanitizer = _sanitizer;
1169
- this._productConnectorService = _productConnectorService;
1170
- this._appEventService = _appEventService;
1171
- this.addToCart = new core.EventEmitter();
1172
- this.addToQuote = new core.EventEmitter();
1173
- this.alternativeClick = new core.EventEmitter();
1174
- this.showProduct = false;
1175
- this.loaded = false;
1176
- this.externalSettings = {};
1177
- this._subs = [];
1178
- }
1179
- Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
1180
- get: function () {
1181
- return this._externalSource;
1182
- },
1183
- set: function (value) {
1184
- this._externalSource = value;
1185
- this.loaded = false;
1186
- this._prepareExternalSource();
1187
- },
1188
- enumerable: true,
1189
- configurable: true
1190
- });
1191
- ProductExternalSourceComponent.prototype.showClass = function () {
1192
- return true;
1193
- };
1194
- ProductExternalSourceComponent.prototype.ngOnInit = function () {
1195
- var _this = this;
1196
- 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); }));
1377
+ IoneProductComponent.prototype.openStock = function () {
1378
+ this.openStockEvent.emit();
1197
1379
  };
1198
- ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
1199
- this._subs.forEach(function (s) { return s.unsubscribe(); });
1200
- };
1201
- ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
1202
- return __awaiter(this, void 0, void 0, function () {
1203
- var bundleSettings;
1204
- return __generator(this, function (_a) {
1205
- switch (_a.label) {
1206
- case 0:
1207
- if (!this._externalSource) {
1208
- return [2 /*return*/];
1209
- }
1210
- this.externalUrl = undefined;
1211
- this.externalSettings = {};
1212
- if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
1213
- return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
1214
- case 1:
1215
- bundleSettings = _a.sent();
1216
- this.externalSettings = JSON.parse(bundleSettings);
1217
- if (this.options) {
1218
- this.externalSettings.options = this.options;
1219
- }
1220
- // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
1221
- // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
1222
- if (this.externalSource.username && this.externalSource.password) {
1223
- this.externalSettings.useLoginEncryption = true;
1224
- this.externalSettings.username = this.externalSource.username;
1225
- this.externalSettings.password = this.externalSource.password;
1226
- }
1227
- // finally show the catalog
1228
- this.showProduct = true;
1229
- return [3 /*break*/, 3];
1230
- case 2:
1231
- this.externalUrl = this.externalSource.url;
1232
- this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
1233
- this.showProduct = false;
1234
- _a.label = 3;
1235
- case 3:
1236
- this.loaded = true;
1237
- return [2 /*return*/];
1238
- }
1239
- });
1240
- });
1241
- };
1242
- ProductExternalSourceComponent.ctorParameters = function () { return [
1243
- { type: platformBrowser.DomSanitizer },
1244
- { type: ProductConnectorService },
1245
- { type: ProductEventService }
1246
- ]; };
1247
- __decorate([
1248
- core.Input()
1249
- ], ProductExternalSourceComponent.prototype, "sku", void 0);
1250
- __decorate([
1251
- core.Input()
1252
- ], ProductExternalSourceComponent.prototype, "externalSource", null);
1253
- __decorate([
1254
- core.Input()
1255
- ], ProductExternalSourceComponent.prototype, "options", void 0);
1256
- __decorate([
1257
- core.Output()
1258
- ], ProductExternalSourceComponent.prototype, "addToCart", void 0);
1259
- __decorate([
1260
- core.Output()
1261
- ], ProductExternalSourceComponent.prototype, "addToQuote", void 0);
1262
- __decorate([
1263
- core.Output()
1264
- ], ProductExternalSourceComponent.prototype, "alternativeClick", void 0);
1265
- __decorate([
1266
- core.HostBinding('class.co-product-external-source')
1267
- ], ProductExternalSourceComponent.prototype, "showClass", null);
1268
- ProductExternalSourceComponent = __decorate([
1269
- core.Component({
1270
- selector: 'co-product-external-source',
1271
- 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 ",
1272
- providers: [
1273
- ProductEventService,
1274
- ProductSettingsService,
1275
- ProductConnectorAdapterService,
1276
- ProductConnectorService
1277
- ],
1278
- encapsulation: core.ViewEncapsulation.None
1279
- })
1280
- ], ProductExternalSourceComponent);
1281
- return ProductExternalSourceComponent;
1282
- }());
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
+ };
1283
1416
 
1284
1417
  var StockAndDelivery = /** @class */ (function () {
1285
1418
  function StockAndDelivery(stock, deliveryDescription) {
@@ -1349,7 +1482,7 @@
1349
1482
  get: function () {
1350
1483
  return this._iconCache;
1351
1484
  },
1352
- enumerable: true,
1485
+ enumerable: false,
1353
1486
  configurable: true
1354
1487
  });
1355
1488
  IconCacheService.prototype.getIcon = function (iconName) {
@@ -1362,17 +1495,17 @@
1362
1495
  }
1363
1496
  }
1364
1497
  };
1365
- IconCacheService.ctorParameters = function () { return [
1366
- { type: platformBrowser.DomSanitizer }
1367
- ]; };
1368
- IconCacheService.ɵprov = core.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(core.ɵɵinject(platformBrowser.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
1369
- IconCacheService = __decorate([
1370
- core.Injectable({
1371
- providedIn: 'root'
1372
- })
1373
- ], IconCacheService);
1374
1498
  return IconCacheService;
1375
- }());
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
+ ]; };
1376
1509
 
1377
1510
  var ProductPageComponent = /** @class */ (function () {
1378
1511
  function ProductPageComponent(_ione, _renderer, _changeDetector, iconCache, settingsService, appEventService) {
@@ -1384,6 +1517,7 @@
1384
1517
  this.settingsService = settingsService;
1385
1518
  this.appEventService = appEventService;
1386
1519
  this.icon = IconEnum;
1520
+ this.openStockEvent = new i0.EventEmitter();
1387
1521
  this.configurable = false;
1388
1522
  this.threeD = false;
1389
1523
  this.show2D = true;
@@ -1417,7 +1551,7 @@
1417
1551
  this._getArticle();
1418
1552
  }
1419
1553
  },
1420
- enumerable: true,
1554
+ enumerable: false,
1421
1555
  configurable: true
1422
1556
  });
1423
1557
  Object.defineProperty(ProductPageComponent.prototype, "settings", {
@@ -1434,7 +1568,7 @@
1434
1568
  }
1435
1569
  }
1436
1570
  },
1437
- enumerable: true,
1571
+ enumerable: false,
1438
1572
  configurable: true
1439
1573
  });
1440
1574
  Object.defineProperty(ProductPageComponent.prototype, "fullScreen", {
@@ -1449,14 +1583,14 @@
1449
1583
  // this.fullscreenAnimationEnd = true;
1450
1584
  // }, 400)
1451
1585
  },
1452
- enumerable: true,
1586
+ enumerable: false,
1453
1587
  configurable: true
1454
1588
  });
1455
1589
  Object.defineProperty(ProductPageComponent.prototype, "fullScreenIcon", {
1456
1590
  get: function () {
1457
1591
  return this.fullScreen ? this.icon.NormalScreen : this.icon.FullScreen;
1458
1592
  },
1459
- enumerable: true,
1593
+ enumerable: false,
1460
1594
  configurable: true
1461
1595
  });
1462
1596
  Object.defineProperty(ProductPageComponent.prototype, "currentView", {
@@ -1469,7 +1603,7 @@
1469
1603
  this.show3D = this._currentView === SelectorType.ThreeD;
1470
1604
  this._changeDetector.detectChanges();
1471
1605
  },
1472
- enumerable: true,
1606
+ enumerable: false,
1473
1607
  configurable: true
1474
1608
  });
1475
1609
  ProductPageComponent.prototype.ngOnInit = function () {
@@ -1545,70 +1679,66 @@
1545
1679
  });
1546
1680
  });
1547
1681
  };
1548
- ProductPageComponent.ctorParameters = function () { return [
1549
- { type: ProductConnectorService },
1550
- { type: core.Renderer2 },
1551
- { type: core.ChangeDetectorRef },
1552
- { type: IconCacheService },
1553
- { type: ProductSettingsService },
1554
- { type: ProductEventService }
1555
- ]; };
1556
- __decorate([
1557
- core.ViewChild('configurator', { read: core.ElementRef })
1558
- ], ProductPageComponent.prototype, "configurator", void 0);
1559
- __decorate([
1560
- core.ViewChild('selections', { read: core.ElementRef })
1561
- ], ProductPageComponent.prototype, "selections", void 0);
1562
- __decorate([
1563
- core.ViewChild('fullscreenbutton', { read: core.ElementRef })
1564
- ], ProductPageComponent.prototype, "fullscreenbutton", void 0);
1565
- __decorate([
1566
- core.Input()
1567
- ], ProductPageComponent.prototype, "sku", null);
1568
- __decorate([
1569
- core.Input()
1570
- ], ProductPageComponent.prototype, "settings", null);
1571
- ProductPageComponent = __decorate([
1572
- core.Component({
1573
- selector: 'app-product-page',
1574
- 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",
1575
- animations: [
1576
- animations.trigger('toggleFullScreen', [
1577
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0', 'width': '100%', 'height': '100%' })),
1578
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'left': '*', 'width': '*', 'height': '*' })),
1579
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1580
- ]),
1581
- animations.trigger('toggleTopLeft', [
1582
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'left': '0' })),
1583
- animations.state('halfscreen', animations.style({ 'position': 'absolute', 'top': '*', 'left': '*' })),
1584
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1585
- ]),
1586
- animations.trigger('toggleTopRight', [
1587
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'top': '0', 'right': '0' })),
1588
- animations.state('halfscreen', animations.style({ 'position': '*', 'top': '*', 'right': '*' })),
1589
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1590
- ]),
1591
- animations.trigger('toggleFullScreenRight', [
1592
- animations.state('fullscreen', animations.style({ 'position': 'fixed', 'width': '400px', 'top': '0', 'right': '0' })),
1593
- animations.state('halfscreen', animations.style({ 'position': '*', 'width': '*', 'top': '*', 'right': '*' })),
1594
- animations.transition('halfscreen <=> fullscreen', animations.animate('200ms ease-in-out')),
1595
- ]),
1596
- animations.trigger('toggleVisibilityByState', [
1597
- animations.state('hide', animations.style({ 'opacity': '0', 'display': 'none' })),
1598
- animations.state('show', animations.style({ 'display': 'block', 'opacity': '1' })),
1599
- animations.transition('hide <=> show', animations.animate('200ms 100ms ease-in-out')),
1600
- ]),
1601
- animations.trigger('toggleVisibility', [
1602
- animations.state('void', animations.style({ 'opacity': '0' })),
1603
- animations.state('*', animations.style({ 'opacity': '1' })),
1604
- animations.transition('void => *', animations.animate('200ms ease-in-out')),
1605
- ])
1606
- ],
1607
- 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}}"]
1608
- })
1609
- ], ProductPageComponent);
1682
+ ProductPageComponent.prototype.openStock = function () {
1683
+ this.openStockEvent.emit();
1684
+ };
1610
1685
  return ProductPageComponent;
1611
- }());
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
+ };
1612
1742
 
1613
1743
  var ProductSelectorTypeComponent = /** @class */ (function () {
1614
1744
  function ProductSelectorTypeComponent(_iconCache, _changeDetector) {
@@ -1616,8 +1746,8 @@
1616
1746
  this._changeDetector = _changeDetector;
1617
1747
  this.type = SelectorType;
1618
1748
  this.icons = IconEnum;
1619
- this.onIconClick = new core.EventEmitter();
1620
- this.currentTypeChange = new core.EventEmitter();
1749
+ this.onIconClick = new i0.EventEmitter();
1750
+ this.currentTypeChange = new i0.EventEmitter();
1621
1751
  this.twoDIcon = this._iconCache.getIcon(this.icons.TwoD);
1622
1752
  this.threeDIcon = this._iconCache.getIcon(this.icons.ThreeD);
1623
1753
  }
@@ -1629,34 +1759,98 @@
1629
1759
  this.onIconClick.next(this.currentType);
1630
1760
  this._changeDetector.detectChanges();
1631
1761
  };
1632
- ProductSelectorTypeComponent.ctorParameters = function () { return [
1633
- { type: IconCacheService },
1634
- { type: core.ChangeDetectorRef }
1635
- ]; };
1636
- __decorate([
1637
- core.Input()
1638
- ], ProductSelectorTypeComponent.prototype, "show2D", void 0);
1639
- __decorate([
1640
- core.Input()
1641
- ], ProductSelectorTypeComponent.prototype, "show3D", void 0);
1642
- __decorate([
1643
- core.Input()
1644
- ], ProductSelectorTypeComponent.prototype, "currentType", void 0);
1645
- __decorate([
1646
- core.Output()
1647
- ], ProductSelectorTypeComponent.prototype, "onIconClick", void 0);
1648
- __decorate([
1649
- core.Output()
1650
- ], ProductSelectorTypeComponent.prototype, "currentTypeChange", void 0);
1651
- ProductSelectorTypeComponent = __decorate([
1652
- core.Component({
1653
- selector: 'app-product-selector-type',
1654
- 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",
1655
- 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}"]
1656
- })
1657
- ], ProductSelectorTypeComponent);
1658
1762
  return ProductSelectorTypeComponent;
1659
- }());
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 <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 ",
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
+ corecomponents.IconModule,
1843
+ /*,
1844
+ IconModule*/
1845
+ ],
1846
+ declarations: [
1847
+ ProductSelectorTypeComponent
1848
+ ],
1849
+ exports: [
1850
+ ProductSelectorTypeComponent
1851
+ ]
1852
+ },] }
1853
+ ];
1660
1854
 
1661
1855
  var ImageCarouselComponent = /** @class */ (function () {
1662
1856
  function ImageCarouselComponent(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
@@ -1696,7 +1890,7 @@
1696
1890
  this._changeDetector.detectChanges();
1697
1891
  }
1698
1892
  },
1699
- enumerable: true,
1893
+ enumerable: false,
1700
1894
  configurable: true
1701
1895
  });
1702
1896
  ImageCarouselComponent.prototype.handleWindowResize = function () {
@@ -1725,7 +1919,7 @@
1725
1919
  this._currentIndex = value;
1726
1920
  this._scrollCarouselToIndex();
1727
1921
  },
1728
- enumerable: true,
1922
+ enumerable: false,
1729
1923
  configurable: true
1730
1924
  });
1731
1925
  ImageCarouselComponent.prototype.ngOnInit = function () {
@@ -1781,61 +1975,91 @@
1781
1975
  }
1782
1976
  }
1783
1977
  };
1784
- ImageCarouselComponent.ctorParameters = function () { return [
1785
- { type: ProductConnectorService },
1786
- { type: ProductEventService },
1787
- { type: core.ChangeDetectorRef },
1788
- { type: platformBrowser.DomSanitizer },
1789
- { type: IconCacheService }
1790
- ]; };
1791
- __decorate([
1792
- core.ViewChild('carousel', { read: core.ElementRef })
1793
- ], ImageCarouselComponent.prototype, "carousel", void 0);
1794
- __decorate([
1795
- core.Input()
1796
- ], ImageCarouselComponent.prototype, "showRefresh", void 0);
1797
- __decorate([
1798
- core.Input()
1799
- ], ImageCarouselComponent.prototype, "images", null);
1800
- __decorate([
1801
- core.HostListener('window:resize')
1802
- ], ImageCarouselComponent.prototype, "handleWindowResize", null);
1803
- __decorate([
1804
- core.HostListener('swipeleft')
1805
- ], ImageCarouselComponent.prototype, "gotoNextSlide", null);
1806
- __decorate([
1807
- core.HostListener('swiperight')
1808
- ], ImageCarouselComponent.prototype, "gotoPrevSlide", null);
1809
- __decorate([
1810
- core.HostBinding('class.resizing')
1811
- ], ImageCarouselComponent.prototype, "resizing", void 0);
1812
- ImageCarouselComponent = __decorate([
1813
- core.Component({
1814
- selector: 'app-image-carousel',
1815
- 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",
1816
- 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)}}"]
1817
- })
1818
- ], ImageCarouselComponent);
1819
1978
  return ImageCarouselComponent;
1820
- }());
1979
+ }());
1980
+ ImageCarouselComponent.decorators = [
1981
+ { type: i0.Component, args: [{
1982
+ selector: 'app-image-carousel',
1983
+ 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 ",
1984
+ 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"]
1985
+ },] }
1986
+ ];
1987
+ ImageCarouselComponent.ctorParameters = function () { return [
1988
+ { type: ProductConnectorService },
1989
+ { type: ProductEventService },
1990
+ { type: i0.ChangeDetectorRef },
1991
+ { type: i1$1.DomSanitizer },
1992
+ { type: IconCacheService }
1993
+ ]; };
1994
+ ImageCarouselComponent.propDecorators = {
1995
+ carousel: [{ type: i0.ViewChild, args: ['carousel', { read: i0.ElementRef },] }],
1996
+ showRefresh: [{ type: i0.Input }],
1997
+ images: [{ type: i0.Input }],
1998
+ handleWindowResize: [{ type: i0.HostListener, args: ['window:resize',] }],
1999
+ gotoNextSlide: [{ type: i0.HostListener, args: ['swipeleft',] }],
2000
+ gotoPrevSlide: [{ type: i0.HostListener, args: ['swiperight',] }],
2001
+ resizing: [{ type: i0.HostBinding, args: ['class.resizing',] }]
2002
+ };
2003
+
2004
+ var ImageCarouselModule = /** @class */ (function () {
2005
+ function ImageCarouselModule() {
2006
+ }
2007
+ return ImageCarouselModule;
2008
+ }());
2009
+ ImageCarouselModule.decorators = [
2010
+ { type: i0.NgModule, args: [{
2011
+ imports: [
2012
+ common.CommonModule,
2013
+ corecomponents.LoaderModule,
2014
+ // IconModule,
2015
+ corecomponents.ScrollContainerModule
2016
+ ],
2017
+ declarations: [
2018
+ ImageCarouselComponent
2019
+ ],
2020
+ exports: [
2021
+ ImageCarouselComponent
2022
+ ]
2023
+ },] }
2024
+ ];
1821
2025
 
1822
2026
  var ProductDescriptionComponent = /** @class */ (function () {
1823
2027
  function ProductDescriptionComponent() {
1824
2028
  }
1825
2029
  ProductDescriptionComponent.prototype.ngOnInit = function () {
1826
2030
  };
1827
- __decorate([
1828
- core.Input()
1829
- ], ProductDescriptionComponent.prototype, "article", void 0);
1830
- ProductDescriptionComponent = __decorate([
1831
- core.Component({
1832
- selector: 'app-product-description',
1833
- 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",
1834
- 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}}"]
1835
- })
1836
- ], ProductDescriptionComponent);
1837
2031
  return ProductDescriptionComponent;
1838
- }());
2032
+ }());
2033
+ ProductDescriptionComponent.decorators = [
2034
+ { type: i0.Component, args: [{
2035
+ selector: 'app-product-description',
2036
+ 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 ",
2037
+ 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"]
2038
+ },] }
2039
+ ];
2040
+ ProductDescriptionComponent.ctorParameters = function () { return []; };
2041
+ ProductDescriptionComponent.propDecorators = {
2042
+ article: [{ type: i0.Input }]
2043
+ };
2044
+
2045
+ var ProductDescriptionModule = /** @class */ (function () {
2046
+ function ProductDescriptionModule() {
2047
+ }
2048
+ return ProductDescriptionModule;
2049
+ }());
2050
+ ProductDescriptionModule.decorators = [
2051
+ { type: i0.NgModule, args: [{
2052
+ imports: [
2053
+ common.CommonModule
2054
+ ],
2055
+ declarations: [
2056
+ ProductDescriptionComponent
2057
+ ],
2058
+ exports: [
2059
+ ProductDescriptionComponent
2060
+ ]
2061
+ },] }
2062
+ ];
1839
2063
 
1840
2064
  var BitUtils = /** @class */ (function () {
1841
2065
  function BitUtils() {
@@ -1873,7 +2097,7 @@
1873
2097
  this._prepareDescription();
1874
2098
  }
1875
2099
  },
1876
- enumerable: true,
2100
+ enumerable: false,
1877
2101
  configurable: true
1878
2102
  });
1879
2103
  ProductAdditionalDescriptionComponent.prototype.ngOnInit = function () {
@@ -1896,21 +2120,41 @@
1896
2120
  }
1897
2121
  }
1898
2122
  };
1899
- ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
1900
- { type: ProductEventService }
1901
- ]; };
1902
- __decorate([
1903
- core.Input()
1904
- ], ProductAdditionalDescriptionComponent.prototype, "article", null);
1905
- ProductAdditionalDescriptionComponent = __decorate([
1906
- core.Component({
1907
- selector: 'app-product-additional-description',
1908
- 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",
1909
- 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}}"]
1910
- })
1911
- ], ProductAdditionalDescriptionComponent);
1912
2123
  return ProductAdditionalDescriptionComponent;
1913
- }());
2124
+ }());
2125
+ ProductAdditionalDescriptionComponent.decorators = [
2126
+ { type: i0.Component, args: [{
2127
+ selector: 'app-product-additional-description',
2128
+ 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 ",
2129
+ 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"]
2130
+ },] }
2131
+ ];
2132
+ ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
2133
+ { type: ProductEventService }
2134
+ ]; };
2135
+ ProductAdditionalDescriptionComponent.propDecorators = {
2136
+ article: [{ type: i0.Input }]
2137
+ };
2138
+
2139
+ var ProductAdditionalDescriptionModule = /** @class */ (function () {
2140
+ function ProductAdditionalDescriptionModule() {
2141
+ }
2142
+ return ProductAdditionalDescriptionModule;
2143
+ }());
2144
+ ProductAdditionalDescriptionModule.decorators = [
2145
+ { type: i0.NgModule, args: [{
2146
+ imports: [
2147
+ common.CommonModule,
2148
+ PipeModule
2149
+ ],
2150
+ declarations: [
2151
+ ProductAdditionalDescriptionComponent
2152
+ ],
2153
+ exports: [
2154
+ ProductAdditionalDescriptionComponent
2155
+ ]
2156
+ },] }
2157
+ ];
1914
2158
 
1915
2159
  var ProductPriceComponent = /** @class */ (function () {
1916
2160
  function ProductPriceComponent(_changeDetector) {
@@ -1926,7 +2170,7 @@
1926
2170
  this._pricing = value;
1927
2171
  this._setPrices();
1928
2172
  },
1929
- enumerable: true,
2173
+ enumerable: false,
1930
2174
  configurable: true
1931
2175
  });
1932
2176
  Object.defineProperty(ProductPriceComponent.prototype, "configurable", {
@@ -1934,7 +2178,7 @@
1934
2178
  this._configurable = value;
1935
2179
  this._setPrices();
1936
2180
  },
1937
- enumerable: true,
2181
+ enumerable: false,
1938
2182
  configurable: true
1939
2183
  });
1940
2184
  ProductPriceComponent.prototype.ngOnInit = function () {
@@ -1964,24 +2208,43 @@
1964
2208
  return '€';
1965
2209
  }
1966
2210
  };
1967
- ProductPriceComponent.ctorParameters = function () { return [
1968
- { type: core.ChangeDetectorRef }
1969
- ]; };
1970
- __decorate([
1971
- core.Input()
1972
- ], ProductPriceComponent.prototype, "pricing", null);
1973
- __decorate([
1974
- core.Input()
1975
- ], ProductPriceComponent.prototype, "configurable", null);
1976
- ProductPriceComponent = __decorate([
1977
- core.Component({
1978
- selector: 'app-product-price',
1979
- 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",
1980
- 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}}"]
1981
- })
1982
- ], ProductPriceComponent);
1983
2211
  return ProductPriceComponent;
1984
- }());
2212
+ }());
2213
+ ProductPriceComponent.decorators = [
2214
+ { type: i0.Component, args: [{
2215
+ selector: 'app-product-price',
2216
+ 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 ",
2217
+ 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"]
2218
+ },] }
2219
+ ];
2220
+ ProductPriceComponent.ctorParameters = function () { return [
2221
+ { type: i0.ChangeDetectorRef }
2222
+ ]; };
2223
+ ProductPriceComponent.propDecorators = {
2224
+ pricing: [{ type: i0.Input }],
2225
+ configurable: [{ type: i0.Input }]
2226
+ };
2227
+
2228
+ var ProductPriceModule = /** @class */ (function () {
2229
+ function ProductPriceModule() {
2230
+ }
2231
+ return ProductPriceModule;
2232
+ }());
2233
+ ProductPriceModule.decorators = [
2234
+ { type: i0.NgModule, args: [{
2235
+ imports: [
2236
+ common.CommonModule,
2237
+ PipeModule,
2238
+ corecomponents.PriceDisplayPipeModule
2239
+ ],
2240
+ declarations: [
2241
+ ProductPriceComponent
2242
+ ],
2243
+ exports: [
2244
+ ProductPriceComponent
2245
+ ]
2246
+ },] }
2247
+ ];
1985
2248
 
1986
2249
  var ProductAddtocartComponent = /** @class */ (function () {
1987
2250
  function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
@@ -1993,9 +2256,9 @@
1993
2256
  this.configurable = false;
1994
2257
  this.configuring = false;
1995
2258
  this.fullscreen = false;
1996
- this.startConfiguration = new core.EventEmitter();
1997
- this.addToCartClick = new core.EventEmitter();
1998
- this.addToQuoteClick = new core.EventEmitter();
2259
+ this.startConfiguration = new i0.EventEmitter();
2260
+ this.addToCartClick = new i0.EventEmitter();
2261
+ this.addToQuoteClick = new i0.EventEmitter();
1999
2262
  this.showQuoteButton = false;
2000
2263
  this._quantity = 1;
2001
2264
  }
@@ -2006,7 +2269,7 @@
2006
2269
  set: function (value) {
2007
2270
  this._quantity = Math.max(1, value);
2008
2271
  },
2009
- enumerable: true,
2272
+ enumerable: false,
2010
2273
  configurable: true
2011
2274
  });
2012
2275
  ProductAddtocartComponent.prototype.ngOnInit = function () {
@@ -2063,49 +2326,54 @@
2063
2326
  });
2064
2327
  });
2065
2328
  };
2066
- ProductAddtocartComponent.ctorParameters = function () { return [
2067
- { type: IconCacheService },
2068
- { type: ProductConnectorService },
2069
- { type: ProductEventService },
2070
- { type: ProductSettingsService }
2071
- ]; };
2072
- __decorate([
2073
- core.ViewChild('addtocartbutton', { read: core.ElementRef })
2074
- ], ProductAddtocartComponent.prototype, "addToCartButton", void 0);
2075
- __decorate([
2076
- core.Input()
2077
- ], ProductAddtocartComponent.prototype, "article", void 0);
2078
- __decorate([
2079
- core.Input()
2080
- ], ProductAddtocartComponent.prototype, "configurable", void 0);
2081
- __decorate([
2082
- core.Input()
2083
- ], ProductAddtocartComponent.prototype, "configuring", void 0);
2084
- __decorate([
2085
- core.HostBinding('class.full-screen'),
2086
- core.Input()
2087
- ], ProductAddtocartComponent.prototype, "fullscreen", void 0);
2088
- __decorate([
2089
- core.Input()
2090
- ], ProductAddtocartComponent.prototype, "quantity", null);
2091
- __decorate([
2092
- core.Output()
2093
- ], ProductAddtocartComponent.prototype, "startConfiguration", void 0);
2094
- __decorate([
2095
- core.Output()
2096
- ], ProductAddtocartComponent.prototype, "addToCartClick", void 0);
2097
- __decorate([
2098
- core.Output()
2099
- ], ProductAddtocartComponent.prototype, "addToQuoteClick", void 0);
2100
- ProductAddtocartComponent = __decorate([
2101
- core.Component({
2102
- selector: 'app-product-addtocart',
2103
- 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",
2104
- 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}"]
2105
- })
2106
- ], ProductAddtocartComponent);
2107
2329
  return ProductAddtocartComponent;
2108
- }());
2330
+ }());
2331
+ ProductAddtocartComponent.decorators = [
2332
+ { type: i0.Component, args: [{
2333
+ selector: 'app-product-addtocart',
2334
+ 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 ",
2335
+ 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"]
2336
+ },] }
2337
+ ];
2338
+ ProductAddtocartComponent.ctorParameters = function () { return [
2339
+ { type: IconCacheService },
2340
+ { type: ProductConnectorService },
2341
+ { type: ProductEventService },
2342
+ { type: ProductSettingsService }
2343
+ ]; };
2344
+ ProductAddtocartComponent.propDecorators = {
2345
+ addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],
2346
+ article: [{ type: i0.Input }],
2347
+ configurable: [{ type: i0.Input }],
2348
+ configuring: [{ type: i0.Input }],
2349
+ fullscreen: [{ type: i0.HostBinding, args: ['class.full-screen',] }, { type: i0.Input }],
2350
+ quantity: [{ type: i0.Input }],
2351
+ startConfiguration: [{ type: i0.Output }],
2352
+ addToCartClick: [{ type: i0.Output }],
2353
+ addToQuoteClick: [{ type: i0.Output }]
2354
+ };
2355
+
2356
+ var ProductAddtocartModule = /** @class */ (function () {
2357
+ function ProductAddtocartModule() {
2358
+ }
2359
+ return ProductAddtocartModule;
2360
+ }());
2361
+ ProductAddtocartModule.decorators = [
2362
+ { type: i0.NgModule, args: [{
2363
+ imports: [
2364
+ common.CommonModule,
2365
+ corecomponents.NumberPickerModule,
2366
+ corecomponents.ButtonModule,
2367
+ PipeModule
2368
+ ],
2369
+ declarations: [
2370
+ ProductAddtocartComponent
2371
+ ],
2372
+ exports: [
2373
+ ProductAddtocartComponent
2374
+ ]
2375
+ },] }
2376
+ ];
2109
2377
 
2110
2378
  var ProductRelatedComponent = /** @class */ (function () {
2111
2379
  function ProductRelatedComponent(_iOne, _appEventService) {
@@ -2136,7 +2404,7 @@
2136
2404
  this._loadImages();
2137
2405
  }
2138
2406
  },
2139
- enumerable: true,
2407
+ enumerable: false,
2140
2408
  configurable: true
2141
2409
  });
2142
2410
  ProductRelatedComponent.prototype.handleContentClick = function (article) {
@@ -2154,37 +2422,93 @@
2154
2422
  }
2155
2423
  });
2156
2424
  };
2157
- ProductRelatedComponent.ctorParameters = function () { return [
2158
- { type: ProductConnectorService },
2159
- { type: ProductEventService }
2160
- ]; };
2161
- __decorate([
2162
- core.Input()
2163
- ], ProductRelatedComponent.prototype, "refType", void 0);
2164
- __decorate([
2165
- core.Input()
2166
- ], ProductRelatedComponent.prototype, "label", void 0);
2167
- __decorate([
2168
- core.Input()
2169
- ], ProductRelatedComponent.prototype, "isSmallModus", void 0);
2170
- __decorate([
2171
- core.Input()
2172
- ], ProductRelatedComponent.prototype, "articles", null);
2173
- ProductRelatedComponent = __decorate([
2174
- core.Component({
2175
- selector: 'app-product-related',
2176
- 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",
2177
- 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}"]
2178
- })
2179
- ], ProductRelatedComponent);
2180
2425
  return ProductRelatedComponent;
2181
- }());
2426
+ }());
2427
+ ProductRelatedComponent.decorators = [
2428
+ { type: i0.Component, args: [{
2429
+ selector: 'app-product-related',
2430
+ 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 ",
2431
+ 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"]
2432
+ },] }
2433
+ ];
2434
+ ProductRelatedComponent.ctorParameters = function () { return [
2435
+ { type: ProductConnectorService },
2436
+ { type: ProductEventService }
2437
+ ]; };
2438
+ ProductRelatedComponent.propDecorators = {
2439
+ refType: [{ type: i0.Input }],
2440
+ label: [{ type: i0.Input }],
2441
+ isSmallModus: [{ type: i0.Input }],
2442
+ articles: [{ type: i0.Input }]
2443
+ };
2444
+
2445
+ var HeaderComponent = /** @class */ (function () {
2446
+ function HeaderComponent() {
2447
+ }
2448
+ HeaderComponent.prototype.ngOnInit = function () {
2449
+ };
2450
+ return HeaderComponent;
2451
+ }());
2452
+ HeaderComponent.decorators = [
2453
+ { type: i0.Component, args: [{
2454
+ selector: 'app-header',
2455
+ 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 ",
2456
+ styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
2457
+ },] }
2458
+ ];
2459
+ HeaderComponent.ctorParameters = function () { return []; };
2460
+ HeaderComponent.propDecorators = {
2461
+ label: [{ type: i0.Input }],
2462
+ amount: [{ type: i0.Input }]
2463
+ };
2464
+
2465
+ var HeaderModule = /** @class */ (function () {
2466
+ function HeaderModule() {
2467
+ }
2468
+ return HeaderModule;
2469
+ }());
2470
+ HeaderModule.decorators = [
2471
+ { type: i0.NgModule, args: [{
2472
+ imports: [
2473
+ common.CommonModule
2474
+ ],
2475
+ declarations: [
2476
+ HeaderComponent
2477
+ ],
2478
+ exports: [
2479
+ HeaderComponent
2480
+ ]
2481
+ },] }
2482
+ ];
2483
+
2484
+ var ProductRelatedModule = /** @class */ (function () {
2485
+ function ProductRelatedModule() {
2486
+ }
2487
+ return ProductRelatedModule;
2488
+ }());
2489
+ ProductRelatedModule.decorators = [
2490
+ { type: i0.NgModule, args: [{
2491
+ imports: [
2492
+ common.CommonModule,
2493
+ HeaderModule,
2494
+ corecomponents.ScrollContainerModule,
2495
+ corecomponents.ArticleTileModule
2496
+ ],
2497
+ declarations: [
2498
+ ProductRelatedComponent
2499
+ ],
2500
+ exports: [
2501
+ ProductRelatedComponent
2502
+ ]
2503
+ },] }
2504
+ ];
2182
2505
 
2183
2506
  var ProductStockComponent = /** @class */ (function () {
2184
2507
  function ProductStockComponent(_iOne, _iconCache) {
2185
2508
  this._iOne = _iOne;
2186
2509
  this._iconCache = _iconCache;
2187
2510
  this.icon = IconEnum;
2511
+ this.openStockEvent = new i0.EventEmitter();
2188
2512
  this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
2189
2513
  }
2190
2514
  Object.defineProperty(ProductStockComponent.prototype, "stockAndDelivery", {
@@ -2193,56 +2517,52 @@
2193
2517
  this.numberInStock = value.stock;
2194
2518
  }
2195
2519
  },
2196
- enumerable: true,
2520
+ enumerable: false,
2197
2521
  configurable: true
2198
2522
  });
2199
2523
  ProductStockComponent.prototype.ngOnInit = function () {
2200
2524
  };
2201
- ProductStockComponent.ctorParameters = function () { return [
2202
- { type: ProductConnectorService },
2203
- { type: IconCacheService }
2204
- ]; };
2205
- __decorate([
2206
- core.Input()
2207
- ], ProductStockComponent.prototype, "stockAndDelivery", null);
2208
- ProductStockComponent = __decorate([
2209
- core.Component({
2210
- selector: 'app-product-stock',
2211
- 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",
2212
- 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}}"]
2213
- })
2214
- ], ProductStockComponent);
2525
+ ProductStockComponent.prototype.openStock = function () {
2526
+ this.openStockEvent.emit();
2527
+ };
2215
2528
  return ProductStockComponent;
2216
- }());
2529
+ }());
2530
+ ProductStockComponent.decorators = [
2531
+ { type: i0.Component, args: [{
2532
+ selector: 'app-product-stock',
2533
+ 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 ",
2534
+ 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"]
2535
+ },] }
2536
+ ];
2537
+ ProductStockComponent.ctorParameters = function () { return [
2538
+ { type: ProductConnectorService },
2539
+ { type: IconCacheService }
2540
+ ]; };
2541
+ ProductStockComponent.propDecorators = {
2542
+ stockAndDelivery: [{ type: i0.Input }],
2543
+ openStockEvent: [{ type: i0.Output }]
2544
+ };
2217
2545
 
2218
- var LocalizePipe = /** @class */ (function () {
2219
- function LocalizePipe(_dictionaryService) {
2220
- this._dictionaryService = _dictionaryService;
2546
+ var ProductStockModule = /** @class */ (function () {
2547
+ function ProductStockModule() {
2221
2548
  }
2222
- LocalizePipe.prototype.transform = function (value, upperCaseFirst, replace) {
2223
- var _a;
2224
- if (upperCaseFirst === void 0) { upperCaseFirst = true; }
2225
- if (replace === void 0) { replace = []; }
2226
- if (!value) {
2227
- return '';
2228
- }
2229
- replace = replace ? replace : [];
2230
- if (!Array.isArray(replace)) {
2231
- replace = [replace];
2232
- }
2233
- return (_a = this._dictionaryService).get.apply(_a, __spread([value, upperCaseFirst], replace));
2234
- };
2235
- LocalizePipe.ctorParameters = function () { return [
2236
- { type: DictionaryService }
2237
- ]; };
2238
- LocalizePipe = __decorate([
2239
- core.Pipe({
2240
- name: 'localize'
2241
- })
2242
- // A pipe for localizing string values in view templates.
2243
- ], LocalizePipe);
2244
- return LocalizePipe;
2245
- }());
2549
+ return ProductStockModule;
2550
+ }());
2551
+ ProductStockModule.decorators = [
2552
+ { type: i0.NgModule, args: [{
2553
+ imports: [
2554
+ common.CommonModule,
2555
+ corecomponents.IconModule,
2556
+ PipeModule
2557
+ ],
2558
+ declarations: [
2559
+ ProductStockComponent
2560
+ ],
2561
+ exports: [
2562
+ ProductStockComponent
2563
+ ]
2564
+ },] }
2565
+ ];
2246
2566
 
2247
2567
  var ProductDeliveryComponent = /** @class */ (function () {
2248
2568
  function ProductDeliveryComponent(_localizePipe, _iOne, _iconCache) {
@@ -2261,28 +2581,49 @@
2261
2581
  }
2262
2582
  }
2263
2583
  },
2264
- enumerable: true,
2584
+ enumerable: false,
2265
2585
  configurable: true
2266
2586
  });
2267
2587
  ProductDeliveryComponent.prototype.ngOnInit = function () {
2268
2588
  };
2269
- ProductDeliveryComponent.ctorParameters = function () { return [
2270
- { type: LocalizePipe },
2271
- { type: ProductConnectorService },
2272
- { type: IconCacheService }
2273
- ]; };
2274
- __decorate([
2275
- core.Input()
2276
- ], ProductDeliveryComponent.prototype, "stockAndDelivery", null);
2277
- ProductDeliveryComponent = __decorate([
2278
- core.Component({
2279
- selector: 'app-product-delivery',
2280
- 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",
2281
- 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}}"]
2282
- })
2283
- ], ProductDeliveryComponent);
2284
2589
  return ProductDeliveryComponent;
2285
- }());
2590
+ }());
2591
+ ProductDeliveryComponent.decorators = [
2592
+ { type: i0.Component, args: [{
2593
+ selector: 'app-product-delivery',
2594
+ 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 ",
2595
+ 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"]
2596
+ },] }
2597
+ ];
2598
+ ProductDeliveryComponent.ctorParameters = function () { return [
2599
+ { type: LocalizePipe },
2600
+ { type: ProductConnectorService },
2601
+ { type: IconCacheService }
2602
+ ]; };
2603
+ ProductDeliveryComponent.propDecorators = {
2604
+ stockAndDelivery: [{ type: i0.Input }]
2605
+ };
2606
+
2607
+ var ProductDeliveryModule = /** @class */ (function () {
2608
+ function ProductDeliveryModule() {
2609
+ }
2610
+ return ProductDeliveryModule;
2611
+ }());
2612
+ ProductDeliveryModule.decorators = [
2613
+ { type: i0.NgModule, args: [{
2614
+ imports: [
2615
+ common.CommonModule,
2616
+ corecomponents.IconModule,
2617
+ PipeModule
2618
+ ],
2619
+ declarations: [
2620
+ ProductDeliveryComponent
2621
+ ],
2622
+ exports: [
2623
+ ProductDeliveryComponent
2624
+ ]
2625
+ },] }
2626
+ ];
2286
2627
 
2287
2628
  var ProductInfoTabsComponent = /** @class */ (function () {
2288
2629
  function ProductInfoTabsComponent(_appEventService) {
@@ -2304,7 +2645,7 @@
2304
2645
  this.updateTab(0);
2305
2646
  }
2306
2647
  },
2307
- enumerable: true,
2648
+ enumerable: false,
2308
2649
  configurable: true
2309
2650
  });
2310
2651
  ProductInfoTabsComponent.prototype.ngOnDestroy = function () {
@@ -2331,125 +2672,22 @@
2331
2672
  this.tabs.push({ title: 'SYMBOLS' });
2332
2673
  }
2333
2674
  };
2334
- ProductInfoTabsComponent.ctorParameters = function () { return [
2335
- { type: ProductEventService }
2336
- ]; };
2337
- __decorate([
2338
- core.ViewChild('tabContent')
2339
- ], ProductInfoTabsComponent.prototype, "tabContent", void 0);
2340
- __decorate([
2341
- core.Input()
2342
- ], ProductInfoTabsComponent.prototype, "article", null);
2343
- ProductInfoTabsComponent = __decorate([
2344
- core.Component({
2345
- selector: 'app-product-info-tabs',
2346
- 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",
2347
- 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}}"]
2348
- })
2349
- ], ProductInfoTabsComponent);
2350
2675
  return ProductInfoTabsComponent;
2351
- }());
2352
-
2353
- var PipeModule = /** @class */ (function () {
2354
- function PipeModule() {
2355
- }
2356
- PipeModule = __decorate([
2357
- core.NgModule({
2358
- exports: [
2359
- LocalizePipe
2360
- ],
2361
- declarations: [
2362
- LocalizePipe
2363
- ],
2364
- providers: [
2365
- LocalizePipe
2366
- ]
2367
- })
2368
- ], PipeModule);
2369
- return PipeModule;
2370
- }());
2371
-
2372
- var ProductDocumentsComponent = /** @class */ (function () {
2373
- function ProductDocumentsComponent(iconCache) {
2374
- this.iconCache = iconCache;
2375
- this.icon = IconEnum;
2376
- this.showLabel = false;
2377
- this.documents = [];
2378
- }
2379
- ProductDocumentsComponent.ctorParameters = function () { return [
2380
- { type: IconCacheService }
2381
- ]; };
2382
- __decorate([
2383
- core.Input()
2384
- ], ProductDocumentsComponent.prototype, "showLabel", void 0);
2385
- __decorate([
2386
- core.Input()
2387
- ], ProductDocumentsComponent.prototype, "documents", void 0);
2388
- ProductDocumentsComponent = __decorate([
2389
- core.Component({
2390
- selector: 'app-product-documents',
2391
- 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",
2392
- 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}"]
2393
- })
2394
- ], ProductDocumentsComponent);
2395
- return ProductDocumentsComponent;
2396
- }());
2397
-
2398
- var HeaderComponent = /** @class */ (function () {
2399
- function HeaderComponent() {
2400
- }
2401
- HeaderComponent.prototype.ngOnInit = function () {
2402
- };
2403
- __decorate([
2404
- core.Input()
2405
- ], HeaderComponent.prototype, "label", void 0);
2406
- __decorate([
2407
- core.Input()
2408
- ], HeaderComponent.prototype, "amount", void 0);
2409
- HeaderComponent = __decorate([
2410
- core.Component({
2411
- selector: 'app-header',
2412
- 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",
2413
- styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}"]
2414
- })
2415
- ], HeaderComponent);
2416
- return HeaderComponent;
2417
- }());
2418
-
2419
- var TabType;
2420
- (function (TabType) {
2421
- TabType["Additional"] = "additional";
2422
- TabType["Properties"] = "properties";
2423
- })(TabType || (TabType = {}));
2424
- var ProductInfoComponent = /** @class */ (function () {
2425
- function ProductInfoComponent() {
2426
- this.tabType = TabType;
2427
- this.currentTab = TabType.Additional;
2428
- }
2429
- ProductInfoComponent.prototype.ngOnInit = function () {
2430
- };
2431
- ProductInfoComponent.prototype.switchTab = function (tab) {
2432
- this.currentTab = tab;
2433
- };
2434
- __decorate([
2435
- core.Input()
2436
- ], ProductInfoComponent.prototype, "article", void 0);
2437
- ProductInfoComponent = __decorate([
2438
- core.Component({
2439
- selector: 'app-product-info',
2440
- 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",
2441
- animations: [
2442
- animations.trigger('showContent', [
2443
- animations.state('void', animations.style({ 'opacity': '0' })),
2444
- animations.state('*', animations.style({ 'opacity': '1' })),
2445
- animations.transition('void => *', animations.animate('200ms 100ms ease-in-out')),
2446
- ])
2447
- ],
2448
- 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}"]
2449
- })
2450
- ], ProductInfoComponent);
2451
- return ProductInfoComponent;
2452
- }());
2676
+ }());
2677
+ ProductInfoTabsComponent.decorators = [
2678
+ { type: i0.Component, args: [{
2679
+ selector: 'app-product-info-tabs',
2680
+ 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 ",
2681
+ 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"]
2682
+ },] }
2683
+ ];
2684
+ ProductInfoTabsComponent.ctorParameters = function () { return [
2685
+ { type: ProductEventService }
2686
+ ]; };
2687
+ ProductInfoTabsComponent.propDecorators = {
2688
+ tabContent: [{ type: i0.ViewChild, args: ['tabContent',] }],
2689
+ article: [{ type: i0.Input }]
2690
+ };
2453
2691
 
2454
2692
  var ProductAdditionalInfoComponent = /** @class */ (function () {
2455
2693
  function ProductAdditionalInfoComponent(_sanitizer, _connectorService, _changeDetector) {
@@ -2473,7 +2711,7 @@
2473
2711
  });
2474
2712
  }
2475
2713
  },
2476
- enumerable: true,
2714
+ enumerable: false,
2477
2715
  configurable: true
2478
2716
  });
2479
2717
  ProductAdditionalInfoComponent.prototype.ngOnInit = function () {
@@ -2502,7 +2740,7 @@
2502
2740
  case 3:
2503
2741
  mainArticle.texts.forEach(function (txt) {
2504
2742
  if (BitUtils.IsFullDescription(txt.publication)) {
2505
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2743
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2506
2744
  texts.push(safeTxt);
2507
2745
  }
2508
2746
  });
@@ -2529,12 +2767,12 @@
2529
2767
  case 1:
2530
2768
  texts = _b.sent();
2531
2769
  if (texts.length > 0) {
2532
- (_a = this.textParts).push.apply(_a, __spread(texts));
2770
+ (_a = this.textParts).push.apply(_a, __spreadArray([], __read(texts)));
2533
2771
  }
2534
2772
  if (this.article.texts) {
2535
2773
  this.article.texts.forEach(function (txt) {
2536
2774
  if (BitUtils.IsFullDescription(txt.publication)) {
2537
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2775
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2538
2776
  _this.textParts.push(safeTxt);
2539
2777
  }
2540
2778
  });
@@ -2566,26 +2804,44 @@
2566
2804
  });
2567
2805
  });
2568
2806
  };
2569
- ProductAdditionalInfoComponent.ctorParameters = function () { return [
2570
- { type: platformBrowser.DomSanitizer },
2571
- { type: ProductConnectorService },
2572
- { type: core.ChangeDetectorRef }
2573
- ]; };
2574
- __decorate([
2575
- core.Input()
2576
- ], ProductAdditionalInfoComponent.prototype, "article", null);
2577
- __decorate([
2578
- core.Input()
2579
- ], ProductAdditionalInfoComponent.prototype, "showLabel", void 0);
2580
- ProductAdditionalInfoComponent = __decorate([
2581
- core.Component({
2582
- selector: 'app-product-additional-info',
2583
- 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",
2584
- 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}"]
2585
- })
2586
- ], ProductAdditionalInfoComponent);
2587
2807
  return ProductAdditionalInfoComponent;
2588
- }());
2808
+ }());
2809
+ ProductAdditionalInfoComponent.decorators = [
2810
+ { type: i0.Component, args: [{
2811
+ selector: 'app-product-additional-info',
2812
+ 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 ",
2813
+ 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"]
2814
+ },] }
2815
+ ];
2816
+ ProductAdditionalInfoComponent.ctorParameters = function () { return [
2817
+ { type: i1$1.DomSanitizer },
2818
+ { type: ProductConnectorService },
2819
+ { type: i0.ChangeDetectorRef }
2820
+ ]; };
2821
+ ProductAdditionalInfoComponent.propDecorators = {
2822
+ article: [{ type: i0.Input }],
2823
+ showLabel: [{ type: i0.Input }]
2824
+ };
2825
+
2826
+ var ProductAdditionalInfoModule = /** @class */ (function () {
2827
+ function ProductAdditionalInfoModule() {
2828
+ }
2829
+ return ProductAdditionalInfoModule;
2830
+ }());
2831
+ ProductAdditionalInfoModule.decorators = [
2832
+ { type: i0.NgModule, args: [{
2833
+ imports: [
2834
+ common.CommonModule,
2835
+ PipeModule
2836
+ ],
2837
+ declarations: [
2838
+ ProductAdditionalInfoComponent
2839
+ ],
2840
+ exports: [
2841
+ ProductAdditionalInfoComponent
2842
+ ]
2843
+ },] }
2844
+ ];
2589
2845
 
2590
2846
  var propertyMap = new Map([
2591
2847
  ['articleNr', 'ARTICLE_NUMBER'],
@@ -2611,7 +2867,7 @@
2611
2867
  this._article = value;
2612
2868
  this._prepareProperties();
2613
2869
  },
2614
- enumerable: true,
2870
+ enumerable: false,
2615
2871
  configurable: true
2616
2872
  });
2617
2873
  ProductPropertiesComponent.prototype.ngOnInit = function () {
@@ -2628,21 +2884,86 @@
2628
2884
  }
2629
2885
  });
2630
2886
  };
2631
- __decorate([
2632
- core.Input()
2633
- ], ProductPropertiesComponent.prototype, "article", null);
2634
- __decorate([
2635
- core.Input()
2636
- ], ProductPropertiesComponent.prototype, "showLabel", void 0);
2637
- ProductPropertiesComponent = __decorate([
2638
- core.Component({
2639
- selector: 'app-product-properties',
2640
- 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",
2641
- 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}}"]
2642
- })
2643
- ], ProductPropertiesComponent);
2644
2887
  return ProductPropertiesComponent;
2645
- }());
2888
+ }());
2889
+ ProductPropertiesComponent.decorators = [
2890
+ { type: i0.Component, args: [{
2891
+ selector: 'app-product-properties',
2892
+ 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 ",
2893
+ 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"]
2894
+ },] }
2895
+ ];
2896
+ ProductPropertiesComponent.ctorParameters = function () { return []; };
2897
+ ProductPropertiesComponent.propDecorators = {
2898
+ article: [{ type: i0.Input }],
2899
+ showLabel: [{ type: i0.Input }]
2900
+ };
2901
+
2902
+ var ProductPropertiesModule = /** @class */ (function () {
2903
+ function ProductPropertiesModule() {
2904
+ }
2905
+ return ProductPropertiesModule;
2906
+ }());
2907
+ ProductPropertiesModule.decorators = [
2908
+ { type: i0.NgModule, args: [{
2909
+ imports: [
2910
+ common.CommonModule,
2911
+ PipeModule
2912
+ ],
2913
+ declarations: [
2914
+ ProductPropertiesComponent
2915
+ ],
2916
+ exports: [
2917
+ ProductPropertiesComponent
2918
+ ]
2919
+ },] }
2920
+ ];
2921
+
2922
+ var ProductDocumentsComponent = /** @class */ (function () {
2923
+ function ProductDocumentsComponent(iconCache) {
2924
+ this.iconCache = iconCache;
2925
+ this.icon = IconEnum;
2926
+ this.showLabel = false;
2927
+ this.documents = [];
2928
+ }
2929
+ return ProductDocumentsComponent;
2930
+ }());
2931
+ ProductDocumentsComponent.decorators = [
2932
+ { type: i0.Component, args: [{
2933
+ selector: 'app-product-documents',
2934
+ 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 ",
2935
+ 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"]
2936
+ },] }
2937
+ ];
2938
+ ProductDocumentsComponent.ctorParameters = function () { return [
2939
+ { type: IconCacheService }
2940
+ ]; };
2941
+ ProductDocumentsComponent.propDecorators = {
2942
+ showLabel: [{ type: i0.Input }],
2943
+ documents: [{ type: i0.Input }]
2944
+ };
2945
+
2946
+ var ProductDocumentModule = /** @class */ (function () {
2947
+ function ProductDocumentModule() {
2948
+ }
2949
+ return ProductDocumentModule;
2950
+ }());
2951
+ ProductDocumentModule.decorators = [
2952
+ { type: i0.NgModule, args: [{
2953
+ imports: [
2954
+ common.CommonModule,
2955
+ HeaderModule,
2956
+ PipeModule,
2957
+ corecomponents.FilesUploadModule
2958
+ ],
2959
+ declarations: [
2960
+ ProductDocumentsComponent
2961
+ ],
2962
+ exports: [
2963
+ ProductDocumentsComponent
2964
+ ]
2965
+ },] }
2966
+ ];
2646
2967
 
2647
2968
  var ProductSymbolsComponent = /** @class */ (function () {
2648
2969
  function ProductSymbolsComponent() {
@@ -2663,154 +2984,307 @@
2663
2984
  }
2664
2985
  }
2665
2986
  },
2666
- enumerable: true,
2987
+ enumerable: false,
2667
2988
  configurable: true
2668
2989
  });
2669
2990
  ProductSymbolsComponent.prototype.ngOnInit = function () {
2670
2991
  };
2671
- __decorate([
2672
- core.Input()
2673
- ], ProductSymbolsComponent.prototype, "symbols", null);
2674
- __decorate([
2675
- core.HostBinding('class')
2676
- ], ProductSymbolsComponent.prototype, "_className", void 0);
2677
- ProductSymbolsComponent = __decorate([
2678
- core.Component({
2679
- selector: 'app-product-symbols',
2680
- 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",
2681
- styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}"]
2682
- })
2683
- ], ProductSymbolsComponent);
2684
2992
  return ProductSymbolsComponent;
2685
- }());
2993
+ }());
2994
+ ProductSymbolsComponent.decorators = [
2995
+ { type: i0.Component, args: [{
2996
+ selector: 'app-product-symbols',
2997
+ 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 ",
2998
+ styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
2999
+ },] }
3000
+ ];
3001
+ ProductSymbolsComponent.ctorParameters = function () { return []; };
3002
+ ProductSymbolsComponent.propDecorators = {
3003
+ symbols: [{ type: i0.Input }],
3004
+ _className: [{ type: i0.HostBinding, args: ['class',] }]
3005
+ };
3006
+
3007
+ var ProductSymbolsModule = /** @class */ (function () {
3008
+ function ProductSymbolsModule() {
3009
+ }
3010
+ return ProductSymbolsModule;
3011
+ }());
3012
+ ProductSymbolsModule.decorators = [
3013
+ { type: i0.NgModule, args: [{
3014
+ imports: [
3015
+ common.CommonModule,
3016
+ HeaderModule,
3017
+ PipeModule,
3018
+ corecomponents.ScrollContainerModule,
3019
+ corecomponents.TileModule
3020
+ ],
3021
+ declarations: [
3022
+ ProductSymbolsComponent
3023
+ ],
3024
+ exports: [
3025
+ ProductSymbolsComponent
3026
+ ]
3027
+ },] }
3028
+ ];
3029
+
3030
+ var ProductInfoTabsModule = /** @class */ (function () {
3031
+ function ProductInfoTabsModule() {
3032
+ }
3033
+ return ProductInfoTabsModule;
3034
+ }());
3035
+ ProductInfoTabsModule.decorators = [
3036
+ { type: i0.NgModule, args: [{
3037
+ imports: [
3038
+ common.CommonModule,
3039
+ PipeModule,
3040
+ ProductAdditionalInfoModule,
3041
+ ProductPropertiesModule,
3042
+ ProductDocumentModule,
3043
+ ProductSymbolsModule
3044
+ ],
3045
+ declarations: [
3046
+ ProductInfoTabsComponent
3047
+ ],
3048
+ exports: [
3049
+ ProductInfoTabsComponent
3050
+ ]
3051
+ },] }
3052
+ ];
2686
3053
 
2687
3054
  var ProductPageModule = /** @class */ (function () {
2688
3055
  function ProductPageModule() {
2689
3056
  }
2690
- ProductPageModule = __decorate([
2691
- core.NgModule({
2692
- imports: [
2693
- common.CommonModule,
2694
- corecomponents.IconModule,
2695
- corecomponents.LoaderModule,
2696
- PipeModule,
2697
- corecomponents.NumberPickerModule,
2698
- corecomponents.ButtonModule,
2699
- corecomponents.PriceDisplayPipeModule,
2700
- corecomponents.InputTextModule,
2701
- corecomponents.FilesUploadModule,
2702
- corecomponents.ScrollContainerModule,
2703
- corecomponents.TileModule,
2704
- corecomponents.LevelIndicatorModule,
2705
- corecomponents.ArticleTileModule,
2706
- ],
2707
- schemas: [core.CUSTOM_ELEMENTS_SCHEMA],
2708
- declarations: [
2709
- ProductPageComponent,
2710
- ProductSelectorTypeComponent,
2711
- ImageCarouselComponent,
2712
- ProductDescriptionComponent,
2713
- ProductAdditionalDescriptionComponent,
2714
- ProductPriceComponent,
2715
- ProductAddtocartComponent,
2716
- ProductRelatedComponent,
2717
- ProductStockComponent,
2718
- ProductDeliveryComponent,
2719
- ProductInfoTabsComponent,
2720
- ProductDocumentsComponent,
2721
- HeaderComponent,
2722
- ProductInfoComponent,
2723
- ProductAdditionalInfoComponent,
2724
- ProductPropertiesComponent,
2725
- ProductSymbolsComponent
2726
- ],
2727
- exports: [ProductPageComponent]
2728
- })
2729
- ], ProductPageModule);
2730
3057
  return ProductPageModule;
2731
- }());
3058
+ }());
3059
+ ProductPageModule.decorators = [
3060
+ { type: i0.NgModule, args: [{
3061
+ imports: [
3062
+ common.CommonModule,
3063
+ ProductSelectorTypeModule,
3064
+ ImageCarouselModule,
3065
+ corecomponents.IconModule,
3066
+ ProductDescriptionModule,
3067
+ ProductAdditionalDescriptionModule,
3068
+ ProductPriceModule,
3069
+ ProductAddtocartModule,
3070
+ ProductRelatedModule,
3071
+ ProductStockModule,
3072
+ ProductDeliveryModule,
3073
+ ProductInfoTabsModule,
3074
+ PipeModule
3075
+ ],
3076
+ schemas: [i0.CUSTOM_ELEMENTS_SCHEMA],
3077
+ declarations: [
3078
+ ProductPageComponent
3079
+ ],
3080
+ exports: [
3081
+ ProductPageComponent
3082
+ ]
3083
+ },] }
3084
+ ];
3085
+
3086
+ var IoneProductModule = /** @class */ (function () {
3087
+ function IoneProductModule() {
3088
+ }
3089
+ return IoneProductModule;
3090
+ }());
3091
+ IoneProductModule.decorators = [
3092
+ { type: i0.NgModule, args: [{
3093
+ imports: [
3094
+ // BrowserAnimationsModule,
3095
+ common.CommonModule,
3096
+ ProductPageModule
3097
+ ],
3098
+ declarations: [
3099
+ IoneProductComponent
3100
+ ],
3101
+ exports: [
3102
+ IoneProductComponent
3103
+ ],
3104
+ bootstrap: [
3105
+ IoneProductComponent
3106
+ ]
3107
+ },] }
3108
+ ];
3109
+
3110
+ var ProductExternalSourceComponent = /** @class */ (function () {
3111
+ function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
3112
+ this._sanitizer = _sanitizer;
3113
+ this._productConnectorService = _productConnectorService;
3114
+ this._appEventService = _appEventService;
3115
+ this.addToCart = new i0.EventEmitter();
3116
+ this.addToQuote = new i0.EventEmitter();
3117
+ this.alternativeClick = new i0.EventEmitter();
3118
+ this.showProduct = false;
3119
+ this.loaded = false;
3120
+ this.externalSettings = {};
3121
+ this._subs = [];
3122
+ }
3123
+ Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
3124
+ get: function () {
3125
+ return this._externalSource;
3126
+ },
3127
+ set: function (value) {
3128
+ this._externalSource = value;
3129
+ this.loaded = false;
3130
+ this._prepareExternalSource();
3131
+ },
3132
+ enumerable: false,
3133
+ configurable: true
3134
+ });
3135
+ ProductExternalSourceComponent.prototype.showClass = function () {
3136
+ return true;
3137
+ };
3138
+ ProductExternalSourceComponent.prototype.ngOnInit = function () {
3139
+ var _this = this;
3140
+ 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); }));
3141
+ };
3142
+ ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
3143
+ this._subs.forEach(function (s) { return s.unsubscribe(); });
3144
+ };
3145
+ ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
3146
+ return __awaiter(this, void 0, void 0, function () {
3147
+ var bundleSettings;
3148
+ return __generator(this, function (_a) {
3149
+ switch (_a.label) {
3150
+ case 0:
3151
+ if (!this._externalSource) {
3152
+ return [2 /*return*/];
3153
+ }
3154
+ this.externalUrl = undefined;
3155
+ this.externalSettings = {};
3156
+ if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
3157
+ return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
3158
+ case 1:
3159
+ bundleSettings = _a.sent();
3160
+ this.externalSettings = JSON.parse(bundleSettings);
3161
+ if (this.options) {
3162
+ this.externalSettings.options = this.options;
3163
+ }
3164
+ // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
3165
+ // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
3166
+ if (this.externalSource.username && this.externalSource.password) {
3167
+ this.externalSettings.useLoginEncryption = true;
3168
+ this.externalSettings.username = this.externalSource.username;
3169
+ this.externalSettings.password = this.externalSource.password;
3170
+ }
3171
+ // finally show the catalog
3172
+ this.showProduct = true;
3173
+ return [3 /*break*/, 3];
3174
+ case 2:
3175
+ this.externalUrl = this.externalSource.url;
3176
+ this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
3177
+ this.showProduct = false;
3178
+ _a.label = 3;
3179
+ case 3:
3180
+ this.loaded = true;
3181
+ return [2 /*return*/];
3182
+ }
3183
+ });
3184
+ });
3185
+ };
3186
+ return ProductExternalSourceComponent;
3187
+ }());
3188
+ ProductExternalSourceComponent.decorators = [
3189
+ { type: i0.Component, args: [{
3190
+ selector: 'co-product-external-source',
3191
+ 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 ",
3192
+ providers: [
3193
+ ProductEventService,
3194
+ ProductSettingsService,
3195
+ ProductConnectorAdapterService,
3196
+ ProductConnectorService
3197
+ ],
3198
+ encapsulation: i0.ViewEncapsulation.None
3199
+ },] }
3200
+ ];
3201
+ ProductExternalSourceComponent.ctorParameters = function () { return [
3202
+ { type: i1$1.DomSanitizer },
3203
+ { type: ProductConnectorService },
3204
+ { type: ProductEventService }
3205
+ ]; };
3206
+ ProductExternalSourceComponent.propDecorators = {
3207
+ sku: [{ type: i0.Input }],
3208
+ externalSource: [{ type: i0.Input }],
3209
+ options: [{ type: i0.Input }],
3210
+ addToCart: [{ type: i0.Output }],
3211
+ addToQuote: [{ type: i0.Output }],
3212
+ alternativeClick: [{ type: i0.Output }],
3213
+ showClass: [{ type: i0.HostBinding, args: ['class.co-product-external-source',] }]
3214
+ };
2732
3215
 
2733
3216
  var ProductExternalSourceModule = /** @class */ (function () {
2734
3217
  function ProductExternalSourceModule() {
2735
3218
  }
2736
- ProductExternalSourceModule = __decorate([
2737
- core.NgModule({
2738
- imports: [
2739
- common.CommonModule,
2740
- ProductPageModule
2741
- ],
2742
- declarations: [
2743
- ProductExternalSourceComponent
2744
- ],
2745
- exports: [
2746
- ProductExternalSourceComponent
2747
- ]
2748
- })
2749
- ], ProductExternalSourceModule);
2750
3219
  return ProductExternalSourceModule;
2751
- }());
3220
+ }());
3221
+ ProductExternalSourceModule.decorators = [
3222
+ { type: i0.NgModule, args: [{
3223
+ imports: [
3224
+ common.CommonModule,
3225
+ ProductPageModule
3226
+ ],
3227
+ declarations: [
3228
+ ProductExternalSourceComponent
3229
+ ],
3230
+ exports: [
3231
+ ProductExternalSourceComponent
3232
+ ]
3233
+ },] }
3234
+ ];
2752
3235
 
2753
- var IoneProductModule = /** @class */ (function () {
2754
- function IoneProductModule() {
2755
- }
2756
- IoneProductModule = __decorate([
2757
- core.NgModule({
2758
- imports: [
2759
- // BrowserAnimationsModule,
2760
- common.CommonModule,
2761
- ProductExternalSourceModule,
2762
- ProductPageModule
2763
- ],
2764
- declarations: [
2765
- IoneProductComponent
2766
- ],
2767
- entryComponents: [
2768
- IoneProductComponent
2769
- ],
2770
- providers: [],
2771
- exports: [IoneProductComponent],
2772
- bootstrap: [
2773
- IoneProductComponent
2774
- ]
2775
- })
2776
- ], IoneProductModule);
2777
- return IoneProductModule;
2778
- }());
3236
+ /**
3237
+ * Generated bundle index. Do not edit.
3238
+ */
2779
3239
 
3240
+ exports.IoneProductComponent = IoneProductComponent;
2780
3241
  exports.IoneProductModule = IoneProductModule;
2781
3242
  exports.ProductExternalSourceComponent = ProductExternalSourceComponent;
2782
3243
  exports.ProductExternalSourceModule = ProductExternalSourceModule;
2783
3244
  exports.Version = Version;
2784
- exports.ɵa = ProductPageModule;
2785
- exports.ɵb = PipeModule;
2786
- exports.ɵba = ProductSymbolsComponent;
2787
- exports.ɵbb = IoneProductComponent;
2788
- exports.ɵc = LocalizePipe;
2789
- exports.ɵd = DictionaryService;
2790
- exports.ɵe = JsonUtilsService;
2791
- exports.ɵf = ProductPageComponent;
2792
- exports.ɵg = ProductConnectorService;
2793
- exports.ɵh = ProductConnectorAdapterService;
2794
- exports.ɵi = ProductSettingsService;
2795
- exports.ɵj = IconCacheService;
2796
- exports.ɵk = ProductEventService;
2797
- exports.ɵl = ProductSelectorTypeComponent;
2798
- exports.ɵm = ImageCarouselComponent;
2799
- exports.ɵn = ProductDescriptionComponent;
2800
- exports.ɵo = ProductAdditionalDescriptionComponent;
2801
- exports.ɵp = ProductPriceComponent;
2802
- exports.ɵq = ProductAddtocartComponent;
2803
- exports.ɵr = ProductRelatedComponent;
2804
- exports.ɵs = ProductStockComponent;
2805
- exports.ɵt = ProductDeliveryComponent;
2806
- exports.ɵu = ProductInfoTabsComponent;
2807
- exports.ɵv = ProductDocumentsComponent;
2808
- exports.ɵw = HeaderComponent;
2809
- exports.ɵx = ProductInfoComponent;
2810
- exports.ɵy = ProductAdditionalInfoComponent;
2811
- exports.ɵz = ProductPropertiesComponent;
3245
+ exports["ɵa"] = ProductPageModule;
3246
+ exports["ɵb"] = ProductSelectorTypeModule;
3247
+ exports["ɵba"] = ProductStockModule;
3248
+ exports["ɵbb"] = ProductStockComponent;
3249
+ exports["ɵbc"] = ProductDeliveryModule;
3250
+ exports["ɵbd"] = ProductDeliveryComponent;
3251
+ exports["ɵbe"] = ProductInfoTabsModule;
3252
+ exports["ɵbf"] = ProductAdditionalInfoModule;
3253
+ exports["ɵbg"] = ProductAdditionalInfoComponent;
3254
+ exports["ɵbh"] = ProductPropertiesModule;
3255
+ exports["ɵbi"] = ProductPropertiesComponent;
3256
+ exports["ɵbj"] = ProductDocumentModule;
3257
+ exports["ɵbk"] = ProductDocumentsComponent;
3258
+ exports["ɵbl"] = ProductSymbolsModule;
3259
+ exports["ɵbm"] = ProductSymbolsComponent;
3260
+ exports["ɵbn"] = ProductInfoTabsComponent;
3261
+ exports["ɵbo"] = ProductPageComponent;
3262
+ exports["ɵc"] = PipeModule;
3263
+ exports["ɵd"] = LocalizePipe;
3264
+ exports["ɵe"] = DictionaryService;
3265
+ exports["ɵf"] = JsonUtilsService;
3266
+ exports["ɵg"] = ProductSelectorTypeComponent;
3267
+ exports["ɵh"] = IconCacheService;
3268
+ exports["ɵi"] = ImageCarouselModule;
3269
+ exports["ɵj"] = ImageCarouselComponent;
3270
+ exports["ɵk"] = ProductConnectorService;
3271
+ exports["ɵl"] = ProductConnectorAdapterService;
3272
+ exports["ɵm"] = ProductSettingsService;
3273
+ exports["ɵn"] = ProductEventService;
3274
+ exports["ɵo"] = ProductDescriptionModule;
3275
+ exports["ɵp"] = ProductDescriptionComponent;
3276
+ exports["ɵq"] = ProductAdditionalDescriptionModule;
3277
+ exports["ɵr"] = ProductAdditionalDescriptionComponent;
3278
+ exports["ɵs"] = ProductPriceModule;
3279
+ exports["ɵt"] = ProductPriceComponent;
3280
+ exports["ɵu"] = ProductAddtocartModule;
3281
+ exports["ɵv"] = ProductAddtocartComponent;
3282
+ exports["ɵw"] = ProductRelatedModule;
3283
+ exports["ɵx"] = HeaderModule;
3284
+ exports["ɵy"] = HeaderComponent;
3285
+ exports["ɵz"] = ProductRelatedComponent;
2812
3286
 
2813
3287
  Object.defineProperty(exports, '__esModule', { value: true });
2814
3288
 
2815
- })));
3289
+ }));
2816
3290
  //# sourceMappingURL=colijnit-product.umd.js.map