@colijnit/product 2.9.1 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +1431 -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 +32 -28
  52. package/esm2015/app/components/product-selector-type/product-selector-type.module.js +23 -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/mainapi/build/model/co-document'), require('@colijnit/corecomponents'), require('@colijnit/articleapi/build/model/configurator-statistics-environment')) :
3
+ typeof define === 'function' && define.amd ? define('@colijnit/product', ['exports', '@angular/core', 'rxjs', '@colijnit/ioneconnector/build/model/options', '@colijnit/articleapi/build/model/article-full-object', '@colijnit/articleapi/build/model/super-article', '@colijnit/articleapi/build/articles', '@colijnit/articleapi/build/model/delivery-prognosis', '@colijnit/articleapi/build/model/document-content', '@colijnit/ioneconnector/build/service/business-object-factory', '@colijnit/transactionapi/build/transaction', '@colijnit/mainapi', '@angular/common/http', '@colijnit/ioneconnector/build/utils/string-utils', '@angular/common', '@angular/animations', '@angular/platform-browser', '@colijnit/mainapi/build/model/co-document', '@colijnit/corecomponents', '@colijnit/articleapi/build/model/configurator-statistics-environment'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.colijnit = global.colijnit || {}, global.colijnit.product = {}), global.ng.core, global.rxjs, global.options, global.articleFullObject, global.superArticle, global.articles, global.deliveryPrognosis, global.documentContent, global.businessObjectFactory, global.transaction, global.mainapi, global.ng.common.http, global.stringUtils, global.ng.common, global.ng.animations, global.ng.platformBrowser, global.coDocument, global.corecomponents, global.configuratorStatisticsEnvironment));
5
+ })(this, (function (exports, i0, rxjs, options, articleFullObject, superArticle, articles, deliveryPrognosis, documentContent, businessObjectFactory, transaction, mainapi, i1, stringUtils, common, animations, i1$1, coDocument, corecomponents, configuratorStatisticsEnvironment) { 'use strict';
6
6
 
7
- /*! *****************************************************************************
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
27
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
28
+
29
+ // this file is dynamically created, do not change this
30
+ var Version = /** @class */ (function () {
31
+ function Version() {
32
+ this.name = "@colijnit/product";
33
+ this.description = "Product detail page project for iOne";
34
+ this.symVer = "12.0.0";
35
+ this.publishDate = "23-9-2023 11:50:39";
36
+ }
37
+ return Version;
38
+ }());
39
+
40
+ /******************************************************************************
8
41
  Copyright (c) Microsoft Corporation.
9
42
 
10
43
  Permission to use, copy, modify, and/or distribute this software for any
@@ -18,36 +51,39 @@
18
51
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19
52
  PERFORMANCE OF THIS SOFTWARE.
20
53
  ***************************************************************************** */
21
- /* global Reflect, Promise */
22
-
23
- var extendStatics = function(d, b) {
54
+ /* global Reflect, Promise, SuppressedError, Symbol */
55
+ var extendStatics = function (d, b) {
24
56
  extendStatics = Object.setPrototypeOf ||
25
57
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
58
+ function (d, b) { for (var p in b)
59
+ if (Object.prototype.hasOwnProperty.call(b, p))
60
+ d[p] = b[p]; };
27
61
  return extendStatics(d, b);
28
62
  };
29
-
30
63
  function __extends(d, b) {
64
+ if (typeof b !== "function" && b !== null)
65
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
31
66
  extendStatics(d, b);
32
67
  function __() { this.constructor = d; }
33
68
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34
69
  }
35
-
36
- var __assign = function() {
70
+ var __assign = function () {
37
71
  __assign = Object.assign || function __assign(t) {
38
72
  for (var s, i = 1, n = arguments.length; i < n; i++) {
39
73
  s = arguments[i];
40
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
74
+ for (var p in s)
75
+ if (Object.prototype.hasOwnProperty.call(s, p))
76
+ t[p] = s[p];
41
77
  }
42
78
  return t;
43
79
  };
44
80
  return __assign.apply(this, arguments);
45
81
  };
46
-
47
82
  function __rest(s, e) {
48
83
  var t = {};
49
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
50
- t[p] = s[p];
84
+ for (var p in s)
85
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
86
+ t[p] = s[p];
51
87
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
52
88
  for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
53
89
  if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
@@ -55,184 +91,415 @@
55
91
  }
56
92
  return t;
57
93
  }
58
-
59
94
  function __decorate(decorators, target, key, desc) {
60
95
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
61
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
62
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
96
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
97
+ r = Reflect.decorate(decorators, target, key, desc);
98
+ else
99
+ for (var i = decorators.length - 1; i >= 0; i--)
100
+ if (d = decorators[i])
101
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63
102
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64
103
  }
65
-
66
104
  function __param(paramIndex, decorator) {
67
- return function (target, key) { decorator(target, key, paramIndex); }
105
+ return function (target, key) { decorator(target, key, paramIndex); };
68
106
  }
69
-
107
+ function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
108
+ function accept(f) { if (f !== void 0 && typeof f !== "function")
109
+ throw new TypeError("Function expected"); return f; }
110
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
111
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
112
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
113
+ var _, done = false;
114
+ for (var i = decorators.length - 1; i >= 0; i--) {
115
+ var context = {};
116
+ for (var p in contextIn)
117
+ context[p] = p === "access" ? {} : contextIn[p];
118
+ for (var p in contextIn.access)
119
+ context.access[p] = contextIn.access[p];
120
+ context.addInitializer = function (f) { if (done)
121
+ throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
122
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
123
+ if (kind === "accessor") {
124
+ if (result === void 0)
125
+ continue;
126
+ if (result === null || typeof result !== "object")
127
+ throw new TypeError("Object expected");
128
+ if (_ = accept(result.get))
129
+ descriptor.get = _;
130
+ if (_ = accept(result.set))
131
+ descriptor.set = _;
132
+ if (_ = accept(result.init))
133
+ initializers.unshift(_);
134
+ }
135
+ else if (_ = accept(result)) {
136
+ if (kind === "field")
137
+ initializers.unshift(_);
138
+ else
139
+ descriptor[key] = _;
140
+ }
141
+ }
142
+ if (target)
143
+ Object.defineProperty(target, contextIn.name, descriptor);
144
+ done = true;
145
+ }
146
+ ;
147
+ function __runInitializers(thisArg, initializers, value) {
148
+ var useValue = arguments.length > 2;
149
+ for (var i = 0; i < initializers.length; i++) {
150
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
151
+ }
152
+ return useValue ? value : void 0;
153
+ }
154
+ ;
155
+ function __propKey(x) {
156
+ return typeof x === "symbol" ? x : "".concat(x);
157
+ }
158
+ ;
159
+ function __setFunctionName(f, name, prefix) {
160
+ if (typeof name === "symbol")
161
+ name = name.description ? "[".concat(name.description, "]") : "";
162
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
163
+ }
164
+ ;
70
165
  function __metadata(metadataKey, metadataValue) {
71
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
166
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
167
+ return Reflect.metadata(metadataKey, metadataValue);
72
168
  }
73
-
74
169
  function __awaiter(thisArg, _arguments, P, generator) {
75
170
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
76
171
  return new (P || (P = Promise))(function (resolve, reject) {
77
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
78
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
172
+ function fulfilled(value) { try {
173
+ step(generator.next(value));
174
+ }
175
+ catch (e) {
176
+ reject(e);
177
+ } }
178
+ function rejected(value) { try {
179
+ step(generator["throw"](value));
180
+ }
181
+ catch (e) {
182
+ reject(e);
183
+ } }
79
184
  function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
80
185
  step((generator = generator.apply(thisArg, _arguments || [])).next());
81
186
  });
82
187
  }
83
-
84
188
  function __generator(thisArg, body) {
85
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
86
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
189
+ var _ = { label: 0, sent: function () { if (t[0] & 1)
190
+ throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
191
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
87
192
  function verb(n) { return function (v) { return step([n, v]); }; }
88
193
  function step(op) {
89
- if (f) throw new TypeError("Generator is already executing.");
90
- while (_) try {
91
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
92
- if (y = 0, t) op = [op[0] & 2, t.value];
93
- switch (op[0]) {
94
- case 0: case 1: t = op; break;
95
- case 4: _.label++; return { value: op[1], done: false };
96
- case 5: _.label++; y = op[1]; op = [0]; continue;
97
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
98
- default:
99
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
100
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
101
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
102
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
103
- if (t[2]) _.ops.pop();
104
- _.trys.pop(); continue;
194
+ if (f)
195
+ throw new TypeError("Generator is already executing.");
196
+ while (g && (g = 0, op[0] && (_ = 0)), _)
197
+ try {
198
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
199
+ return t;
200
+ if (y = 0, t)
201
+ op = [op[0] & 2, t.value];
202
+ switch (op[0]) {
203
+ case 0:
204
+ case 1:
205
+ t = op;
206
+ break;
207
+ case 4:
208
+ _.label++;
209
+ return { value: op[1], done: false };
210
+ case 5:
211
+ _.label++;
212
+ y = op[1];
213
+ op = [0];
214
+ continue;
215
+ case 7:
216
+ op = _.ops.pop();
217
+ _.trys.pop();
218
+ continue;
219
+ default:
220
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
221
+ _ = 0;
222
+ continue;
223
+ }
224
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
225
+ _.label = op[1];
226
+ break;
227
+ }
228
+ if (op[0] === 6 && _.label < t[1]) {
229
+ _.label = t[1];
230
+ t = op;
231
+ break;
232
+ }
233
+ if (t && _.label < t[2]) {
234
+ _.label = t[2];
235
+ _.ops.push(op);
236
+ break;
237
+ }
238
+ if (t[2])
239
+ _.ops.pop();
240
+ _.trys.pop();
241
+ continue;
242
+ }
243
+ op = body.call(thisArg, _);
105
244
  }
106
- op = body.call(thisArg, _);
107
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
108
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
245
+ catch (e) {
246
+ op = [6, e];
247
+ y = 0;
248
+ }
249
+ finally {
250
+ f = t = 0;
251
+ }
252
+ if (op[0] & 5)
253
+ throw op[1];
254
+ return { value: op[0] ? op[1] : void 0, done: true };
109
255
  }
110
256
  }
111
-
112
- function __createBinding(o, m, k, k2) {
113
- if (k2 === undefined) k2 = k;
257
+ var __createBinding = Object.create ? (function (o, m, k, k2) {
258
+ if (k2 === undefined)
259
+ k2 = k;
260
+ var desc = Object.getOwnPropertyDescriptor(m, k);
261
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
262
+ desc = { enumerable: true, get: function () { return m[k]; } };
263
+ }
264
+ Object.defineProperty(o, k2, desc);
265
+ }) : (function (o, m, k, k2) {
266
+ if (k2 === undefined)
267
+ k2 = k;
114
268
  o[k2] = m[k];
269
+ });
270
+ function __exportStar(m, o) {
271
+ for (var p in m)
272
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
273
+ __createBinding(o, m, p);
115
274
  }
116
-
117
- function __exportStar(m, exports) {
118
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
119
- }
120
-
121
275
  function __values(o) {
122
276
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
123
- if (m) return m.call(o);
124
- if (o && typeof o.length === "number") return {
125
- next: function () {
126
- if (o && i >= o.length) o = void 0;
127
- return { value: o && o[i++], done: !o };
128
- }
129
- };
277
+ if (m)
278
+ return m.call(o);
279
+ if (o && typeof o.length === "number")
280
+ return {
281
+ next: function () {
282
+ if (o && i >= o.length)
283
+ o = void 0;
284
+ return { value: o && o[i++], done: !o };
285
+ }
286
+ };
130
287
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
131
288
  }
132
-
133
289
  function __read(o, n) {
134
290
  var m = typeof Symbol === "function" && o[Symbol.iterator];
135
- if (!m) return o;
291
+ if (!m)
292
+ return o;
136
293
  var i = m.call(o), r, ar = [], e;
137
294
  try {
138
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
295
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
296
+ ar.push(r.value);
297
+ }
298
+ catch (error) {
299
+ e = { error: error };
139
300
  }
140
- catch (error) { e = { error: error }; }
141
301
  finally {
142
302
  try {
143
- if (r && !r.done && (m = i["return"])) m.call(i);
303
+ if (r && !r.done && (m = i["return"]))
304
+ m.call(i);
305
+ }
306
+ finally {
307
+ if (e)
308
+ throw e.error;
144
309
  }
145
- finally { if (e) throw e.error; }
146
310
  }
147
311
  return ar;
148
312
  }
149
-
313
+ /** @deprecated */
150
314
  function __spread() {
151
315
  for (var ar = [], i = 0; i < arguments.length; i++)
152
316
  ar = ar.concat(__read(arguments[i]));
153
317
  return ar;
154
318
  }
155
-
319
+ /** @deprecated */
156
320
  function __spreadArrays() {
157
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
321
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
322
+ s += arguments[i].length;
158
323
  for (var r = Array(s), k = 0, i = 0; i < il; i++)
159
324
  for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
160
325
  r[k] = a[j];
161
326
  return r;
162
- };
163
-
327
+ }
328
+ function __spreadArray(to, from, pack) {
329
+ if (pack || arguments.length === 2)
330
+ for (var i = 0, l = from.length, ar; i < l; i++) {
331
+ if (ar || !(i in from)) {
332
+ if (!ar)
333
+ ar = Array.prototype.slice.call(from, 0, i);
334
+ ar[i] = from[i];
335
+ }
336
+ }
337
+ return to.concat(ar || Array.prototype.slice.call(from));
338
+ }
164
339
  function __await(v) {
165
340
  return this instanceof __await ? (this.v = v, this) : new __await(v);
166
341
  }
167
-
168
342
  function __asyncGenerator(thisArg, _arguments, generator) {
169
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
343
+ if (!Symbol.asyncIterator)
344
+ throw new TypeError("Symbol.asyncIterator is not defined.");
170
345
  var g = generator.apply(thisArg, _arguments || []), i, q = [];
171
346
  return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
172
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
173
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
347
+ function verb(n) { if (g[n])
348
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
349
+ function resume(n, v) { try {
350
+ step(g[n](v));
351
+ }
352
+ catch (e) {
353
+ settle(q[0][3], e);
354
+ } }
174
355
  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
175
356
  function fulfill(value) { resume("next", value); }
176
357
  function reject(value) { resume("throw", value); }
177
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
358
+ function settle(f, v) { if (f(v), q.shift(), q.length)
359
+ resume(q[0][0], q[0][1]); }
178
360
  }
179
-
180
361
  function __asyncDelegator(o) {
181
362
  var i, p;
182
363
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
183
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
364
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
184
365
  }
185
-
186
366
  function __asyncValues(o) {
187
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
367
+ if (!Symbol.asyncIterator)
368
+ throw new TypeError("Symbol.asyncIterator is not defined.");
188
369
  var m = o[Symbol.asyncIterator], i;
189
370
  return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
190
371
  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
191
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
372
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
192
373
  }
193
-
194
374
  function __makeTemplateObject(cooked, raw) {
195
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
375
+ if (Object.defineProperty) {
376
+ Object.defineProperty(cooked, "raw", { value: raw });
377
+ }
378
+ else {
379
+ cooked.raw = raw;
380
+ }
196
381
  return cooked;
382
+ }
383
+ ;
384
+ var __setModuleDefault = Object.create ? (function (o, v) {
385
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
386
+ }) : function (o, v) {
387
+ o["default"] = v;
197
388
  };
198
-
199
389
  function __importStar(mod) {
200
- if (mod && mod.__esModule) return mod;
390
+ if (mod && mod.__esModule)
391
+ return mod;
201
392
  var result = {};
202
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
203
- result.default = mod;
393
+ if (mod != null)
394
+ for (var k in mod)
395
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
396
+ __createBinding(result, mod, k);
397
+ __setModuleDefault(result, mod);
204
398
  return result;
205
399
  }
206
-
207
400
  function __importDefault(mod) {
208
401
  return (mod && mod.__esModule) ? mod : { default: mod };
209
402
  }
210
-
211
- function __classPrivateFieldGet(receiver, privateMap) {
212
- if (!privateMap.has(receiver)) {
213
- throw new TypeError("attempted to get private field on non-instance");
214
- }
215
- return privateMap.get(receiver);
403
+ function __classPrivateFieldGet(receiver, state, kind, f) {
404
+ if (kind === "a" && !f)
405
+ throw new TypeError("Private accessor was defined without a getter");
406
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
407
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
408
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
216
409
  }
217
-
218
- function __classPrivateFieldSet(receiver, privateMap, value) {
219
- if (!privateMap.has(receiver)) {
220
- throw new TypeError("attempted to set private field on non-instance");
410
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
411
+ if (kind === "m")
412
+ throw new TypeError("Private method is not writable");
413
+ if (kind === "a" && !f)
414
+ throw new TypeError("Private accessor was defined without a setter");
415
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
416
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
417
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
418
+ }
419
+ function __classPrivateFieldIn(state, receiver) {
420
+ if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
421
+ throw new TypeError("Cannot use 'in' operator on non-object");
422
+ return typeof state === "function" ? receiver === state : state.has(receiver);
423
+ }
424
+ function __addDisposableResource(env, value, async) {
425
+ if (value !== null && value !== void 0) {
426
+ if (typeof value !== "object" && typeof value !== "function")
427
+ throw new TypeError("Object expected.");
428
+ var dispose;
429
+ if (async) {
430
+ if (!Symbol.asyncDispose)
431
+ throw new TypeError("Symbol.asyncDispose is not defined.");
432
+ dispose = value[Symbol.asyncDispose];
433
+ }
434
+ if (dispose === void 0) {
435
+ if (!Symbol.dispose)
436
+ throw new TypeError("Symbol.dispose is not defined.");
437
+ dispose = value[Symbol.dispose];
438
+ }
439
+ if (typeof dispose !== "function")
440
+ throw new TypeError("Object not disposable.");
441
+ env.stack.push({ value: value, dispose: dispose, async: async });
442
+ }
443
+ else if (async) {
444
+ env.stack.push({ async: true });
221
445
  }
222
- privateMap.set(receiver, value);
223
446
  return value;
224
- }
225
-
226
- // this file is dynamically created, do not change this
227
- var Version = /** @class */ (function () {
228
- function Version() {
229
- this.name = "@colijnit/product";
230
- this.description = "Product detail page project for iOne";
231
- this.symVer = "2.9.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,96 @@
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<!--\n <co-icon *ngIf=\"show2D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.TwoD\"\n [iconData]=\"twoDIcon\"\n (click)=\"handleIconClick(type.TwoD)\"\n ></co-icon>\n <co-icon *ngIf=\"show3D\" class=\"selector-type-icon\"\n [class.active]=\"currentType === type.ThreeD\"\n [iconData]=\"threeDIcon\"\n (click)=\"handleIconClick(type.ThreeD)\"\n ></co-icon>\n-->\n ",
1768
+ styles: [":host{display:flex;flex-direction:row;align-items:center}:host .show-in{display:none}:host>*:not(:last-child){margin-right:10px}::ng-deep co-icon.selector-type-icon{box-shadow:inset 0 0 0 1px #22313c;border-radius:50%;background:none;height:34px;width:34px;cursor:pointer}::ng-deep co-icon.selector-type-icon.active{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}::ng-deep co-icon.selector-type-icon.active [fill]{fill:#fff}\n"]
1769
+ },] }
1770
+ ];
1771
+ ProductSelectorTypeComponent.ctorParameters = function () { return [
1772
+ { type: IconCacheService },
1773
+ { type: i0.ChangeDetectorRef }
1774
+ ]; };
1775
+ ProductSelectorTypeComponent.propDecorators = {
1776
+ show2D: [{ type: i0.Input }],
1777
+ show3D: [{ type: i0.Input }],
1778
+ currentType: [{ type: i0.Input }],
1779
+ onIconClick: [{ type: i0.Output }],
1780
+ currentTypeChange: [{ type: i0.Output }]
1781
+ };
1782
+
1783
+ // A pipe for localizing string values in view templates.
1784
+ var LocalizePipe = /** @class */ (function () {
1785
+ function LocalizePipe(_dictionaryService) {
1786
+ this._dictionaryService = _dictionaryService;
1787
+ }
1788
+ LocalizePipe.prototype.transform = function (value, upperCaseFirst, replace) {
1789
+ var _a;
1790
+ if (upperCaseFirst === void 0) { upperCaseFirst = true; }
1791
+ if (replace === void 0) { replace = []; }
1792
+ if (!value) {
1793
+ return '';
1794
+ }
1795
+ replace = replace ? replace : [];
1796
+ if (!Array.isArray(replace)) {
1797
+ replace = [replace];
1798
+ }
1799
+ return (_a = this._dictionaryService).get.apply(_a, __spreadArray([value, upperCaseFirst], __read(replace)));
1800
+ };
1801
+ return LocalizePipe;
1802
+ }());
1803
+ LocalizePipe.decorators = [
1804
+ { type: i0.Pipe, args: [{
1805
+ name: 'localize'
1806
+ },] }
1807
+ ];
1808
+ LocalizePipe.ctorParameters = function () { return [
1809
+ { type: DictionaryService }
1810
+ ]; };
1811
+
1812
+ var PipeModule = /** @class */ (function () {
1813
+ function PipeModule() {
1814
+ }
1815
+ return PipeModule;
1816
+ }());
1817
+ PipeModule.decorators = [
1818
+ { type: i0.NgModule, args: [{
1819
+ declarations: [
1820
+ LocalizePipe
1821
+ ],
1822
+ providers: [
1823
+ LocalizePipe
1824
+ ],
1825
+ exports: [
1826
+ LocalizePipe
1827
+ ]
1828
+ },] }
1829
+ ];
1830
+
1831
+ // import {IconModule} from '@colijnit/corecomponents';
1832
+ var ProductSelectorTypeModule = /** @class */ (function () {
1833
+ function ProductSelectorTypeModule() {
1834
+ }
1835
+ return ProductSelectorTypeModule;
1836
+ }());
1837
+ ProductSelectorTypeModule.decorators = [
1838
+ { type: i0.NgModule, args: [{
1839
+ imports: [
1840
+ common.CommonModule,
1841
+ PipeModule /*,
1842
+ IconModule*/
1843
+ ],
1844
+ declarations: [
1845
+ ProductSelectorTypeComponent
1846
+ ],
1847
+ exports: [
1848
+ ProductSelectorTypeComponent
1849
+ ]
1850
+ },] }
1851
+ ];
1660
1852
 
1661
1853
  var ImageCarouselComponent = /** @class */ (function () {
1662
1854
  function ImageCarouselComponent(_ione, _appEventService, _changeDetector, _domSanitizer, iconCache) {
@@ -1696,7 +1888,7 @@
1696
1888
  this._changeDetector.detectChanges();
1697
1889
  }
1698
1890
  },
1699
- enumerable: true,
1891
+ enumerable: false,
1700
1892
  configurable: true
1701
1893
  });
1702
1894
  ImageCarouselComponent.prototype.handleWindowResize = function () {
@@ -1725,7 +1917,7 @@
1725
1917
  this._currentIndex = value;
1726
1918
  this._scrollCarouselToIndex();
1727
1919
  },
1728
- enumerable: true,
1920
+ enumerable: false,
1729
1921
  configurable: true
1730
1922
  });
1731
1923
  ImageCarouselComponent.prototype.ngOnInit = function () {
@@ -1781,61 +1973,91 @@
1781
1973
  }
1782
1974
  }
1783
1975
  };
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
1976
  return ImageCarouselComponent;
1820
- }());
1977
+ }());
1978
+ ImageCarouselComponent.decorators = [
1979
+ { type: i0.Component, args: [{
1980
+ selector: 'app-image-carousel',
1981
+ template: "\n <div id=\"product_page_carousel\">\n <div id=\"product_page_carousel_items\">\n <co-loader [isShown]=\"showLoader\"></co-loader>\n <div #carousel class=\"inner-carousel\">\n <!-- This has been taken out of the for loop to prevent flashing images when updating. -->\n <div *ngIf=\"images[0]\" class=\"carousel-item\" [id]=\"'slide-0'\" [class.active]=\"isCurrentIndex(0)\">\n <img [src]=\"getImageSrc(images[0])\">\n </div>\n <div *ngFor=\"let image of images.slice(1); let index = index\" class=\"carousel-item\" [id]=\"'slide-' + (index + 1)\" [class.active]=\"isCurrentIndex((index + 1))\">\n <img [src]=\"getImageSrc(image)\">\n </div>\n <div class=\"carousel-scroller-layer\" *ngIf=\"images && images.length > 1\">\n <div class=\"carousel-item-scroller prev\" (click)=\"gotoPrevSlide()\" *ngIf=\"currentIndex > 0\"></div>\n <div class=\"carousel-item-scroller next\" (click)=\"gotoNextSlide()\" *ngIf=\"currentIndex < images.length - 1\"></div>\n </div>\n </div>\n<!--\n <co-icon class=\"selector-type-icon refresh-button\" [iconData]=\"iconCache.getIcon(icons.Refresh)\" (click)=\"onForceRenderImage()\" [class.loading]=\"showLoader\" *ngIf=\"showRefresh\"></co-icon>\n-->\n </div>\n\n <div id=\"product_page_carousel_thumbs\">\n <co-scroll-container class=\"scroll-container\" *ngIf=\"images && images.length > 1\">\n <div *ngFor=\"let image of images; let index = index\" class=\"carousel-thumb\" [class.active]=\"index === currentIndex\">\n <img [src]=\"getImageSrc(image)\" (click)=\"handleThumbClick(index)\"/>\n </div>\n </co-scroll-container>\n </div>\n </div>\n ",
1982
+ styles: [":host{max-height:540px;height:100%;position:relative}:host:not(.resizing) .inner-carousel{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}#product_page_carousel{position:relative}#product_page_carousel .refresh-button{position:absolute;bottom:10px;right:10px;background:#fff}#product_page_carousel .refresh-button.loading{animation:spin 1s linear infinite}#product_page_carousel .refresh-button:hover{box-shadow:none;background:#74B77F;transition:all .2s ease-in-out}#product_page_carousel .refresh-button:hover ::ng-deep svg path{fill:#fff!important}#product_page_carousel #product_page_carousel_items{position:relative;margin-bottom:10px}#product_page_carousel #product_page_carousel_items ::ng-deep co-loader{position:absolute}#product_page_carousel .inner-carousel{display:flex;flex-direction:row;align-items:center;overflow:hidden;max-height:500px;border:1px solid #efefef}#product_page_carousel .carousel-item{max-height:500px;width:100%;display:flex;flex-shrink:0;flex-grow:0}#product_page_carousel .carousel-item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}#product_page_carousel .carousel-scroller-layer{height:100%;width:100%;position:absolute;pointer-events:none;top:0;left:0}#product_page_carousel #product_page_carousel_thumbs{display:flex;justify-content:flex-start;height:80px;margin-left:auto;margin-right:auto}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container{padding:0 22px}#product_page_carousel #product_page_carousel_thumbs ::ng-deep co-scroll-container .content-wrapper{padding:0}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb{opacity:1;cursor:pointer;transition:all .2s ease;padding:4px;border:1px solid #f6f5f4}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb.active,#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:hover{border-color:#22313c}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb:not(:last-child){margin-right:10px}#product_page_carousel #product_page_carousel_thumbs .carousel-thumb img{height:68px}@media screen and (max-width: 650px){#product_page_carousel_thumbs{height:57px!important}#product_page_carousel_thumbs .carousel-thumb img{height:50px!important}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"]
1983
+ },] }
1984
+ ];
1985
+ ImageCarouselComponent.ctorParameters = function () { return [
1986
+ { type: ProductConnectorService },
1987
+ { type: ProductEventService },
1988
+ { type: i0.ChangeDetectorRef },
1989
+ { type: i1$1.DomSanitizer },
1990
+ { type: IconCacheService }
1991
+ ]; };
1992
+ ImageCarouselComponent.propDecorators = {
1993
+ carousel: [{ type: i0.ViewChild, args: ['carousel', { read: i0.ElementRef },] }],
1994
+ showRefresh: [{ type: i0.Input }],
1995
+ images: [{ type: i0.Input }],
1996
+ handleWindowResize: [{ type: i0.HostListener, args: ['window:resize',] }],
1997
+ gotoNextSlide: [{ type: i0.HostListener, args: ['swipeleft',] }],
1998
+ gotoPrevSlide: [{ type: i0.HostListener, args: ['swiperight',] }],
1999
+ resizing: [{ type: i0.HostBinding, args: ['class.resizing',] }]
2000
+ };
2001
+
2002
+ var ImageCarouselModule = /** @class */ (function () {
2003
+ function ImageCarouselModule() {
2004
+ }
2005
+ return ImageCarouselModule;
2006
+ }());
2007
+ ImageCarouselModule.decorators = [
2008
+ { type: i0.NgModule, args: [{
2009
+ imports: [
2010
+ common.CommonModule,
2011
+ corecomponents.LoaderModule,
2012
+ // IconModule,
2013
+ corecomponents.ScrollContainerModule
2014
+ ],
2015
+ declarations: [
2016
+ ImageCarouselComponent
2017
+ ],
2018
+ exports: [
2019
+ ImageCarouselComponent
2020
+ ]
2021
+ },] }
2022
+ ];
1821
2023
 
1822
2024
  var ProductDescriptionComponent = /** @class */ (function () {
1823
2025
  function ProductDescriptionComponent() {
1824
2026
  }
1825
2027
  ProductDescriptionComponent.prototype.ngOnInit = function () {
1826
2028
  };
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
2029
  return ProductDescriptionComponent;
1838
- }());
2030
+ }());
2031
+ ProductDescriptionComponent.decorators = [
2032
+ { type: i0.Component, args: [{
2033
+ selector: 'app-product-description',
2034
+ template: "\n <div class=\"pd-title-wrapper\">\n <span class=\"pd-description\" [textContent]=\"article?.descriptionRetail\" *ngIf=\"article?.descriptionRetail\"></span>\n <span class=\"pd-sku\" [textContent]=\"article?.articleNr\" *ngIf=\"article?.articleNr\"></span>\n </div>\n ",
2035
+ styles: [":host{display:block}.pd-title-wrapper{margin:20px 0 0}.pd-description{color:#22313c;font-size:25px;font-weight:bold;width:100%;display:block}.pd-sku{color:#5b6875;font-size:16px}@media screen and (max-width: 650px){.pd-description{font-size:21px}.pd-sku{font-size:13px}}\n"]
2036
+ },] }
2037
+ ];
2038
+ ProductDescriptionComponent.ctorParameters = function () { return []; };
2039
+ ProductDescriptionComponent.propDecorators = {
2040
+ article: [{ type: i0.Input }]
2041
+ };
2042
+
2043
+ var ProductDescriptionModule = /** @class */ (function () {
2044
+ function ProductDescriptionModule() {
2045
+ }
2046
+ return ProductDescriptionModule;
2047
+ }());
2048
+ ProductDescriptionModule.decorators = [
2049
+ { type: i0.NgModule, args: [{
2050
+ imports: [
2051
+ common.CommonModule
2052
+ ],
2053
+ declarations: [
2054
+ ProductDescriptionComponent
2055
+ ],
2056
+ exports: [
2057
+ ProductDescriptionComponent
2058
+ ]
2059
+ },] }
2060
+ ];
1839
2061
 
1840
2062
  var BitUtils = /** @class */ (function () {
1841
2063
  function BitUtils() {
@@ -1873,7 +2095,7 @@
1873
2095
  this._prepareDescription();
1874
2096
  }
1875
2097
  },
1876
- enumerable: true,
2098
+ enumerable: false,
1877
2099
  configurable: true
1878
2100
  });
1879
2101
  ProductAdditionalDescriptionComponent.prototype.ngOnInit = function () {
@@ -1896,21 +2118,41 @@
1896
2118
  }
1897
2119
  }
1898
2120
  };
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
2121
  return ProductAdditionalDescriptionComponent;
1913
- }());
2122
+ }());
2123
+ ProductAdditionalDescriptionComponent.decorators = [
2124
+ { type: i0.Component, args: [{
2125
+ selector: 'app-product-additional-description',
2126
+ template: "\n <ng-container *ngIf=\"description !== ''\">\n <div class=\"pd-additional-description\">\n <p [innerHTML]=\"description\"></p>\n <button class=\"pd-read-more-btn\" [textContent]=\"'READ_MORE' | localize\" (click)=\"onReadMore()\"></button>\n </div>\n </ng-container>\n ",
2127
+ styles: [":host{display:block;padding-top:0!important}:host *:focus{outline:0!important}:host .pd-additional-description{line-height:190%;color:#22313c;font-size:13px}:host .pd-read-more-btn{color:#2b60a7;border:none;background:transparent;cursor:pointer;text-decoration:underline;font-family:iOneMontserrat}:host .pd-read-more-btn:hover{color:#74b77f}@media screen and (max-width: 650px){:host .pd-additional-description{font-size:12px}}\n"]
2128
+ },] }
2129
+ ];
2130
+ ProductAdditionalDescriptionComponent.ctorParameters = function () { return [
2131
+ { type: ProductEventService }
2132
+ ]; };
2133
+ ProductAdditionalDescriptionComponent.propDecorators = {
2134
+ article: [{ type: i0.Input }]
2135
+ };
2136
+
2137
+ var ProductAdditionalDescriptionModule = /** @class */ (function () {
2138
+ function ProductAdditionalDescriptionModule() {
2139
+ }
2140
+ return ProductAdditionalDescriptionModule;
2141
+ }());
2142
+ ProductAdditionalDescriptionModule.decorators = [
2143
+ { type: i0.NgModule, args: [{
2144
+ imports: [
2145
+ common.CommonModule,
2146
+ PipeModule
2147
+ ],
2148
+ declarations: [
2149
+ ProductAdditionalDescriptionComponent
2150
+ ],
2151
+ exports: [
2152
+ ProductAdditionalDescriptionComponent
2153
+ ]
2154
+ },] }
2155
+ ];
1914
2156
 
1915
2157
  var ProductPriceComponent = /** @class */ (function () {
1916
2158
  function ProductPriceComponent(_changeDetector) {
@@ -1926,7 +2168,7 @@
1926
2168
  this._pricing = value;
1927
2169
  this._setPrices();
1928
2170
  },
1929
- enumerable: true,
2171
+ enumerable: false,
1930
2172
  configurable: true
1931
2173
  });
1932
2174
  Object.defineProperty(ProductPriceComponent.prototype, "configurable", {
@@ -1934,7 +2176,7 @@
1934
2176
  this._configurable = value;
1935
2177
  this._setPrices();
1936
2178
  },
1937
- enumerable: true,
2179
+ enumerable: false,
1938
2180
  configurable: true
1939
2181
  });
1940
2182
  ProductPriceComponent.prototype.ngOnInit = function () {
@@ -1964,24 +2206,43 @@
1964
2206
  return '€';
1965
2207
  }
1966
2208
  };
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
2209
  return ProductPriceComponent;
1984
- }());
2210
+ }());
2211
+ ProductPriceComponent.decorators = [
2212
+ { type: i0.Component, args: [{
2213
+ selector: 'app-product-price',
2214
+ template: "\n <div *ngIf=\"toPrice\">\n <div class=\"price-wrapper\" *ngIf=\"fromPrice > toPrice\">\n <div class=\"from-price-label\" [textContent]=\"fromLabel | localize\"></div>\n <div class=\"from-price\" [textContent]=\"fromPrice | priceDisplay: valutaSign\"></div>\n </div>\n <div class=\"price-wrapper\">\n <div class=\"to-price-label\" [textContent]=\"toLabel | localize\"></div>\n <div class=\"to-price\" [textContent]=\"toPrice | priceDisplay: valutaSign\"></div>\n </div>\n </div>\n ",
2215
+ styles: [":host{display:flex;flex-direction:column}.price-wrapper{width:100%;font-size:15px;margin:0 0 5px;display:inline-block}.price-wrapper:last-child{margin:0}.from-price-label,.to-price-label{color:#5b6875;display:none}.from-price{font-size:16px;font-weight:bold;text-decoration:line-through;color:#5b6875}.to-price{font-size:25px;font-weight:bold;color:#74b77f}@media screen and (max-width: 650px){.from-price{font-size:13px}.to-price{font-size:21px}}\n"]
2216
+ },] }
2217
+ ];
2218
+ ProductPriceComponent.ctorParameters = function () { return [
2219
+ { type: i0.ChangeDetectorRef }
2220
+ ]; };
2221
+ ProductPriceComponent.propDecorators = {
2222
+ pricing: [{ type: i0.Input }],
2223
+ configurable: [{ type: i0.Input }]
2224
+ };
2225
+
2226
+ var ProductPriceModule = /** @class */ (function () {
2227
+ function ProductPriceModule() {
2228
+ }
2229
+ return ProductPriceModule;
2230
+ }());
2231
+ ProductPriceModule.decorators = [
2232
+ { type: i0.NgModule, args: [{
2233
+ imports: [
2234
+ common.CommonModule,
2235
+ PipeModule,
2236
+ corecomponents.PriceDisplayPipeModule
2237
+ ],
2238
+ declarations: [
2239
+ ProductPriceComponent
2240
+ ],
2241
+ exports: [
2242
+ ProductPriceComponent
2243
+ ]
2244
+ },] }
2245
+ ];
1985
2246
 
1986
2247
  var ProductAddtocartComponent = /** @class */ (function () {
1987
2248
  function ProductAddtocartComponent(iconCache, _ioneControllerService, _appEventService, _settingsService) {
@@ -1993,9 +2254,9 @@
1993
2254
  this.configurable = false;
1994
2255
  this.configuring = false;
1995
2256
  this.fullscreen = false;
1996
- this.startConfiguration = new core.EventEmitter();
1997
- this.addToCartClick = new core.EventEmitter();
1998
- this.addToQuoteClick = new core.EventEmitter();
2257
+ this.startConfiguration = new i0.EventEmitter();
2258
+ this.addToCartClick = new i0.EventEmitter();
2259
+ this.addToQuoteClick = new i0.EventEmitter();
1999
2260
  this.showQuoteButton = false;
2000
2261
  this._quantity = 1;
2001
2262
  }
@@ -2006,7 +2267,7 @@
2006
2267
  set: function (value) {
2007
2268
  this._quantity = Math.max(1, value);
2008
2269
  },
2009
- enumerable: true,
2270
+ enumerable: false,
2010
2271
  configurable: true
2011
2272
  });
2012
2273
  ProductAddtocartComponent.prototype.ngOnInit = function () {
@@ -2063,49 +2324,54 @@
2063
2324
  });
2064
2325
  });
2065
2326
  };
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
2327
  return ProductAddtocartComponent;
2108
- }());
2328
+ }());
2329
+ ProductAddtocartComponent.decorators = [
2330
+ { type: i0.Component, args: [{
2331
+ selector: 'app-product-addtocart',
2332
+ template: "\n <div class=\"atc-wrapper\">\n <co-number-picker *ngIf=\"!configurable && !configuring\" class=\"quantity-select\" [(model)]=\"quantity\" [min]=\"1\" horizontal></co-number-picker>\n <div class=\"button-wrapper\">\n <co-button class=\"configure-button\" *ngIf=\"configurable\"\n [iconData]=\"iconCache.getIcon(icon.MagicWand)\"\n [label]=\"'CONFIGURE' | localize\"\n (onClick)=\"startConfiguration.emit()\"\n ></co-button>\n <co-button #addtocartbutton class=\"cart-button\" *ngIf=\"!configurable\"\n [iconData]=\"iconCache.getIcon(icon.AddToCartDrop)\"\n [label]=\"'SHOPPING_CART_IN' | localize\"\n (onClick)=\"handleAddToCartClick(quantity)\"\n ></co-button>\n <co-button class=\"cart-button quote\" *ngIf=\"!configurable && showQuoteButton\"\n [iconData]=\"iconCache.getIcon(icon.Quote)\"\n [label]=\"'QUOTATION' | localize\"\n (onClick)=\"handleAddToQuoteClick(quantity)\"\n ></co-button>\n </div>\n </div>\n ",
2333
+ styles: [":host{display:flex;flex-direction:column}:host *:not(:last-child){margin-bottom:5px}:host .atc-wrapper{display:flex;flex-direction:row;align-items:baseline}:host .atc-wrapper .quantity-select{margin-right:5px}:host.full-screen .cart-button{position:fixed;right:20px;bottom:20px;z-index:3}::ng-deep co-number-picker{max-width:100px;border:2px solid #f6f5f4;border-radius:5px}::ng-deep co-number-picker ::ng-deep co-input-text{height:50px!important;border:none!important;width:50px!important}::ng-deep co-number-picker ::ng-deep co-input-text:after{display:none}::ng-deep co-number-picker ::ng-deep co-input-text.focused{box-shadow:none!important;border:none!important;background:none!important}::ng-deep co-number-picker ::ng-deep co-input-text .clear-icon{display:none}::ng-deep co-number-picker ::ng-deep co-input-text input{width:100%;text-align:center}::ng-deep co-number-picker ::ng-deep co-button{justify-content:center;padding:0!important;margin:0!important;height:50px!important;background-color:transparent!important}::ng-deep co-number-picker ::ng-deep co-button ::ng-deep co-icon [fill]{fill:#22313c!important}.button-wrapper ::ng-deep co-button{height:50px;max-width:300px;justify-content:center;font-size:15px;border-radius:5px!important;cursor:pointer;padding:0 20px!important}.button-wrapper ::ng-deep co-button:hover{background:#74B77F}::ng-deep co-button.cart-button{border-radius:5px}::ng-deep co-button.cart-button.quote{background:#7292b6}\n"]
2334
+ },] }
2335
+ ];
2336
+ ProductAddtocartComponent.ctorParameters = function () { return [
2337
+ { type: IconCacheService },
2338
+ { type: ProductConnectorService },
2339
+ { type: ProductEventService },
2340
+ { type: ProductSettingsService }
2341
+ ]; };
2342
+ ProductAddtocartComponent.propDecorators = {
2343
+ addToCartButton: [{ type: i0.ViewChild, args: ['addtocartbutton', { read: i0.ElementRef },] }],
2344
+ article: [{ type: i0.Input }],
2345
+ configurable: [{ type: i0.Input }],
2346
+ configuring: [{ type: i0.Input }],
2347
+ fullscreen: [{ type: i0.HostBinding, args: ['class.full-screen',] }, { type: i0.Input }],
2348
+ quantity: [{ type: i0.Input }],
2349
+ startConfiguration: [{ type: i0.Output }],
2350
+ addToCartClick: [{ type: i0.Output }],
2351
+ addToQuoteClick: [{ type: i0.Output }]
2352
+ };
2353
+
2354
+ var ProductAddtocartModule = /** @class */ (function () {
2355
+ function ProductAddtocartModule() {
2356
+ }
2357
+ return ProductAddtocartModule;
2358
+ }());
2359
+ ProductAddtocartModule.decorators = [
2360
+ { type: i0.NgModule, args: [{
2361
+ imports: [
2362
+ common.CommonModule,
2363
+ corecomponents.NumberPickerModule,
2364
+ corecomponents.ButtonModule,
2365
+ PipeModule
2366
+ ],
2367
+ declarations: [
2368
+ ProductAddtocartComponent
2369
+ ],
2370
+ exports: [
2371
+ ProductAddtocartComponent
2372
+ ]
2373
+ },] }
2374
+ ];
2109
2375
 
2110
2376
  var ProductRelatedComponent = /** @class */ (function () {
2111
2377
  function ProductRelatedComponent(_iOne, _appEventService) {
@@ -2136,7 +2402,7 @@
2136
2402
  this._loadImages();
2137
2403
  }
2138
2404
  },
2139
- enumerable: true,
2405
+ enumerable: false,
2140
2406
  configurable: true
2141
2407
  });
2142
2408
  ProductRelatedComponent.prototype.handleContentClick = function (article) {
@@ -2154,37 +2420,93 @@
2154
2420
  }
2155
2421
  });
2156
2422
  };
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
2423
  return ProductRelatedComponent;
2181
- }());
2424
+ }());
2425
+ ProductRelatedComponent.decorators = [
2426
+ { type: i0.Component, args: [{
2427
+ selector: 'app-product-related',
2428
+ template: "\n <div *ngIf=\"articles && articles.length > 0\">\n <app-header [label]=\"label\" [amount]=\"articles?.length\" *ngIf=\"label\"></app-header>\n <co-scroll-container>\n <div class=\"article-wrapper\" *ngFor=\"let article of articles\">\n <co-article-tile\n [imageData]=\"article.image.documentBodyAsDataUri\"\n [description]=\"article.description\"\n [price]=\"article.price\"\n [level]=\"article.stockStatus\"\n [isSmallModus]=\"isSmallModus\"\n [hasConfigureButton]=\"article.goodType === 'B'\"\n (contentClick)=\"handleContentClick(article)\"\n ></co-article-tile>\n </div>\n </co-scroll-container>\n </div>\n ",
2429
+ styles: [":host{display:block}.article-wrapper{display:flex;flex-direction:row}.article-wrapper ::ng-deep co-tile.small{min-width:189px;max-width:189px;height:100%}.article-wrapper ::ng-deep co-tile.small:hover{box-shadow:none;cursor:pointer}.article-wrapper ::ng-deep co-tile.small:hover .tile-bottom .left-buttons{margin:0!important}.article-wrapper ::ng-deep co-tile.small .tile-wrapper{outline:none!important;padding-bottom:0;overflow:hidden}.article-wrapper ::ng-deep co-tile.small .tile-wrapper div.image{height:100px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons{position:absolute;top:0;right:0;margin:0 -32px 0 0;align-items:flex-end;transition:.2s ease-in-out}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini{width:30px;height:30px;transform:none;border-radius:4px;margin:0 0 5px}.article-wrapper ::ng-deep co-tile.small .tile-wrapper .tile-bottom .left-buttons ::ng-deep co-button.card-button.mini ::ng-deep co-icon{width:30px;height:30px}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom{outline:none!important;background:transparent!important}.article-wrapper ::ng-deep co-tile.small .tile-extra-bottom .price{color:#74b77f;margin:5px 0 0;font-weight:400;font-size:12px}\n"]
2430
+ },] }
2431
+ ];
2432
+ ProductRelatedComponent.ctorParameters = function () { return [
2433
+ { type: ProductConnectorService },
2434
+ { type: ProductEventService }
2435
+ ]; };
2436
+ ProductRelatedComponent.propDecorators = {
2437
+ refType: [{ type: i0.Input }],
2438
+ label: [{ type: i0.Input }],
2439
+ isSmallModus: [{ type: i0.Input }],
2440
+ articles: [{ type: i0.Input }]
2441
+ };
2442
+
2443
+ var HeaderComponent = /** @class */ (function () {
2444
+ function HeaderComponent() {
2445
+ }
2446
+ HeaderComponent.prototype.ngOnInit = function () {
2447
+ };
2448
+ return HeaderComponent;
2449
+ }());
2450
+ HeaderComponent.decorators = [
2451
+ { type: i0.Component, args: [{
2452
+ selector: 'app-header',
2453
+ template: "\n <ng-container *ngIf=\"label\">\n <div class=\"header-wrapper\">\n <h3 [textContent]=\"label\"></h3>\n <span *ngIf=\"amount\" class=\"amount\" [textContent]=\"'(' + amount + ')'\"></span>\n </div>\n </ng-container>\n ",
2454
+ styles: [".header-wrapper{display:flex;flex-direction:row;align-items:center}.header-wrapper .amount{margin-left:5px}\n"]
2455
+ },] }
2456
+ ];
2457
+ HeaderComponent.ctorParameters = function () { return []; };
2458
+ HeaderComponent.propDecorators = {
2459
+ label: [{ type: i0.Input }],
2460
+ amount: [{ type: i0.Input }]
2461
+ };
2462
+
2463
+ var HeaderModule = /** @class */ (function () {
2464
+ function HeaderModule() {
2465
+ }
2466
+ return HeaderModule;
2467
+ }());
2468
+ HeaderModule.decorators = [
2469
+ { type: i0.NgModule, args: [{
2470
+ imports: [
2471
+ common.CommonModule
2472
+ ],
2473
+ declarations: [
2474
+ HeaderComponent
2475
+ ],
2476
+ exports: [
2477
+ HeaderComponent
2478
+ ]
2479
+ },] }
2480
+ ];
2481
+
2482
+ var ProductRelatedModule = /** @class */ (function () {
2483
+ function ProductRelatedModule() {
2484
+ }
2485
+ return ProductRelatedModule;
2486
+ }());
2487
+ ProductRelatedModule.decorators = [
2488
+ { type: i0.NgModule, args: [{
2489
+ imports: [
2490
+ common.CommonModule,
2491
+ HeaderModule,
2492
+ corecomponents.ScrollContainerModule,
2493
+ corecomponents.ArticleTileModule
2494
+ ],
2495
+ declarations: [
2496
+ ProductRelatedComponent
2497
+ ],
2498
+ exports: [
2499
+ ProductRelatedComponent
2500
+ ]
2501
+ },] }
2502
+ ];
2182
2503
 
2183
2504
  var ProductStockComponent = /** @class */ (function () {
2184
2505
  function ProductStockComponent(_iOne, _iconCache) {
2185
2506
  this._iOne = _iOne;
2186
2507
  this._iconCache = _iconCache;
2187
2508
  this.icon = IconEnum;
2509
+ this.openStockEvent = new i0.EventEmitter();
2188
2510
  this.iconData = this._iconCache.getIcon(this.icon.Warehouse);
2189
2511
  }
2190
2512
  Object.defineProperty(ProductStockComponent.prototype, "stockAndDelivery", {
@@ -2193,56 +2515,52 @@
2193
2515
  this.numberInStock = value.stock;
2194
2516
  }
2195
2517
  },
2196
- enumerable: true,
2518
+ enumerable: false,
2197
2519
  configurable: true
2198
2520
  });
2199
2521
  ProductStockComponent.prototype.ngOnInit = function () {
2200
2522
  };
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);
2523
+ ProductStockComponent.prototype.openStock = function () {
2524
+ this.openStockEvent.emit();
2525
+ };
2215
2526
  return ProductStockComponent;
2216
- }());
2527
+ }());
2528
+ ProductStockComponent.decorators = [
2529
+ { type: i0.Component, args: [{
2530
+ selector: 'app-product-stock',
2531
+ template: "\n <!--<app-header [label]=\"'STOCK' | localize\"></app-header>-->\n <!--<co-level-indicator [model]=\"'medium'\"></co-level-indicator>-->\n <div class=\"product-stock-wrapper\">\n <co-icon class=\"stock-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-stock-fields\" (click)=\"openStock()\">\n <div class=\"pp-default-label in-stock\" [textContent]=\"'PRODUCT_IN_STOCK' | localize\" *ngIf=\"numberInStock > 0\"></div>\n <div class=\"pp-default-label not-in-stock\" [textContent]=\"'PRODUCT_NOT_IN_STOCK' | localize\" *ngIf=\"!(numberInStock > 0)\"></div>\n </div>\n </div>\n ",
2532
+ styles: [":host{display:block}.product-stock-wrapper{display:flex;flex-direction:row;align-items:center;border-top:1px solid #f6f5f4;border-bottom:1px solid #f6f5f4;padding:20px 15px;cursor:pointer}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:40px;height:37px}.product-stock-wrapper .product-stock-fields{display:flex;flex-direction:row}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:14px;margin:0;color:#2b60a7;text-decoration:underline}.product-stock-wrapper .product-stock-fields .pp-default-label:after{content:\"\";width:10px;height:10px;border-radius:10px;background:#74B77F;display:inline-block;margin:0 0 0 15px}.product-stock-wrapper .product-stock-fields .pp-default-label.not-in-stock:after{background:#f15152}@media screen and (max-width: 400px){.product-stock-wrapper{padding:15px 0 15px 10px}.product-stock-wrapper .stock-icon{margin:0 15px 0 0;width:32px;height:28px}.product-stock-wrapper .product-stock-fields .pp-default-label{font-size:13px}}\n"]
2533
+ },] }
2534
+ ];
2535
+ ProductStockComponent.ctorParameters = function () { return [
2536
+ { type: ProductConnectorService },
2537
+ { type: IconCacheService }
2538
+ ]; };
2539
+ ProductStockComponent.propDecorators = {
2540
+ stockAndDelivery: [{ type: i0.Input }],
2541
+ openStockEvent: [{ type: i0.Output }]
2542
+ };
2217
2543
 
2218
- var LocalizePipe = /** @class */ (function () {
2219
- function LocalizePipe(_dictionaryService) {
2220
- this._dictionaryService = _dictionaryService;
2544
+ var ProductStockModule = /** @class */ (function () {
2545
+ function ProductStockModule() {
2221
2546
  }
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
- }());
2547
+ return ProductStockModule;
2548
+ }());
2549
+ ProductStockModule.decorators = [
2550
+ { type: i0.NgModule, args: [{
2551
+ imports: [
2552
+ common.CommonModule,
2553
+ corecomponents.IconModule,
2554
+ PipeModule
2555
+ ],
2556
+ declarations: [
2557
+ ProductStockComponent
2558
+ ],
2559
+ exports: [
2560
+ ProductStockComponent
2561
+ ]
2562
+ },] }
2563
+ ];
2246
2564
 
2247
2565
  var ProductDeliveryComponent = /** @class */ (function () {
2248
2566
  function ProductDeliveryComponent(_localizePipe, _iOne, _iconCache) {
@@ -2261,28 +2579,49 @@
2261
2579
  }
2262
2580
  }
2263
2581
  },
2264
- enumerable: true,
2582
+ enumerable: false,
2265
2583
  configurable: true
2266
2584
  });
2267
2585
  ProductDeliveryComponent.prototype.ngOnInit = function () {
2268
2586
  };
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
2587
  return ProductDeliveryComponent;
2285
- }());
2588
+ }());
2589
+ ProductDeliveryComponent.decorators = [
2590
+ { type: i0.Component, args: [{
2591
+ selector: 'app-product-delivery',
2592
+ template: "\n <!--<app-header [label]=\"'DELIVERY_TIME_PERIOD' | localize\"></app-header>-->\n <div class=\"product-delivery-wrapper\">\n <co-icon class=\"delivery-icon\" [iconData]=\"iconData\"></co-icon>\n <div class=\"product-delivery-fields\">\n <div class=\"pp-default-label\" [textContent]=\"'DELIVERY_TIME_PERIOD' | localize\"></div>\n <div class=\"pp-default-description\" [textContent]=\"deliveryDescription | date:'dd MMMM yyyy'\"></div>\n </div>\n </div>\n ",
2593
+ styles: [":host{display:block}.product-delivery-wrapper{display:flex;flex-direction:row;align-items:center;border-bottom:1px solid #f6f5f4;padding:20px 15px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:40px;height:37px}.product-delivery-wrapper .product-delivery-fields{display:flex;flex-direction:column}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:14px;margin:0}@media screen and (max-width: 400px){.product-delivery-wrapper{padding:15px 0 15px 10px}.product-delivery-wrapper .delivery-icon{margin:0 15px 0 0;width:32px;height:28px}.product-delivery-wrapper .product-delivery-fields .pp-default-label{font-size:13px}}\n"]
2594
+ },] }
2595
+ ];
2596
+ ProductDeliveryComponent.ctorParameters = function () { return [
2597
+ { type: LocalizePipe },
2598
+ { type: ProductConnectorService },
2599
+ { type: IconCacheService }
2600
+ ]; };
2601
+ ProductDeliveryComponent.propDecorators = {
2602
+ stockAndDelivery: [{ type: i0.Input }]
2603
+ };
2604
+
2605
+ var ProductDeliveryModule = /** @class */ (function () {
2606
+ function ProductDeliveryModule() {
2607
+ }
2608
+ return ProductDeliveryModule;
2609
+ }());
2610
+ ProductDeliveryModule.decorators = [
2611
+ { type: i0.NgModule, args: [{
2612
+ imports: [
2613
+ common.CommonModule,
2614
+ corecomponents.IconModule,
2615
+ PipeModule
2616
+ ],
2617
+ declarations: [
2618
+ ProductDeliveryComponent
2619
+ ],
2620
+ exports: [
2621
+ ProductDeliveryComponent
2622
+ ]
2623
+ },] }
2624
+ ];
2286
2625
 
2287
2626
  var ProductInfoTabsComponent = /** @class */ (function () {
2288
2627
  function ProductInfoTabsComponent(_appEventService) {
@@ -2304,7 +2643,7 @@
2304
2643
  this.updateTab(0);
2305
2644
  }
2306
2645
  },
2307
- enumerable: true,
2646
+ enumerable: false,
2308
2647
  configurable: true
2309
2648
  });
2310
2649
  ProductInfoTabsComponent.prototype.ngOnDestroy = function () {
@@ -2331,125 +2670,22 @@
2331
2670
  this.tabs.push({ title: 'SYMBOLS' });
2332
2671
  }
2333
2672
  };
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
2673
  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
- }());
2674
+ }());
2675
+ ProductInfoTabsComponent.decorators = [
2676
+ { type: i0.Component, args: [{
2677
+ selector: 'app-product-info-tabs',
2678
+ template: "\n <div class=\"tab-container\">\n <div class=\"tab-header\">\n <button *ngFor=\"let tab of tabs; let i = index\" class=\"tab-header-button\" [class.active]=\"activeTab === i\" [textContent]=\"tab.title | localize\" (click)=\"updateTab(i)\"></button>\n </div>\n <div class=\"tab-content\" #tabContent [style.height.px]=\"(activeTabHeight > 0 ? activeTabHeight : '')\">\n <div class=\"tab-content-item\" *ngFor=\"let tab of tabs; let i = index\" [class.active]=\"activeTab === i\">\n <ng-container *ngIf=\"i === 0\">\n <app-product-additional-info class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-additional-info>\n </ng-container>\n <ng-container *ngIf=\"i === 1\">\n <app-product-properties class=\"\" [article]=\"articleObject\" [showLabel]=\"false\"></app-product-properties>\n </ng-container>\n <ng-container *ngIf=\"i === 2\">\n <app-product-documents [showLabel]=\"false\" class=\"\" *ngIf=\"articleObject?.documents && articleObject?.documents.length > 0\" [documents]=\"articleObject?.documents\"></app-product-documents>\n </ng-container>\n <ng-container *ngIf=\"i === 3\">\n <app-product-symbols class=\"\" *ngIf=\"articleObject?.symbols && articleObject?.symbols.length > 0\" [symbols]=\"articleObject?.symbols\"></app-product-symbols>\n </ng-container>\n </div>\n </div>\n </div>\n ",
2679
+ styles: ["*:focus{outline:none}:host .tab-header{border-bottom:3px solid #f6f5f4;margin:0 0 30px}:host .tab-header .tab-header-button{background:transparent;border:none;border-bottom:3px solid transparent;line-height:20px;padding:15px 20px;cursor:pointer;font-family:iOneMontserrat;color:#22313c;font-weight:bold;margin:0 0 -3px;opacity:.5}:host .tab-header .tab-header-button:hover{opacity:1}:host .tab-header .tab-header-button.active{opacity:1;border-color:#74b77f}:host .tab-content{padding:0 20px 30px;margin:0 0 20px;border-bottom:2px solid #f6f5f4;transition:all .2s ease-in-out;position:relative}:host .tab-content .tab-content-item{opacity:0;position:absolute;left:0;top:0;visibility:hidden;width:100%}:host .tab-content .tab-content-item.active{opacity:1;visibility:visible;position:static}@media screen and (max-width: 650px){:host .tab-content{padding:0 10px 15px}}@media screen and (max-width: 450px){:host .tab-header{display:flex}:host .tab-header .tab-header-button{width:100%;padding:10px;font-size:11px}}\n"]
2680
+ },] }
2681
+ ];
2682
+ ProductInfoTabsComponent.ctorParameters = function () { return [
2683
+ { type: ProductEventService }
2684
+ ]; };
2685
+ ProductInfoTabsComponent.propDecorators = {
2686
+ tabContent: [{ type: i0.ViewChild, args: ['tabContent',] }],
2687
+ article: [{ type: i0.Input }]
2688
+ };
2453
2689
 
2454
2690
  var ProductAdditionalInfoComponent = /** @class */ (function () {
2455
2691
  function ProductAdditionalInfoComponent(_sanitizer, _connectorService, _changeDetector) {
@@ -2473,7 +2709,7 @@
2473
2709
  });
2474
2710
  }
2475
2711
  },
2476
- enumerable: true,
2712
+ enumerable: false,
2477
2713
  configurable: true
2478
2714
  });
2479
2715
  ProductAdditionalInfoComponent.prototype.ngOnInit = function () {
@@ -2502,7 +2738,7 @@
2502
2738
  case 3:
2503
2739
  mainArticle.texts.forEach(function (txt) {
2504
2740
  if (BitUtils.IsFullDescription(txt.publication)) {
2505
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2741
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2506
2742
  texts.push(safeTxt);
2507
2743
  }
2508
2744
  });
@@ -2529,12 +2765,12 @@
2529
2765
  case 1:
2530
2766
  texts = _b.sent();
2531
2767
  if (texts.length > 0) {
2532
- (_a = this.textParts).push.apply(_a, __spread(texts));
2768
+ (_a = this.textParts).push.apply(_a, __spreadArray([], __read(texts)));
2533
2769
  }
2534
2770
  if (this.article.texts) {
2535
2771
  this.article.texts.forEach(function (txt) {
2536
2772
  if (BitUtils.IsFullDescription(txt.publication)) {
2537
- var safeTxt = _this._sanitizer.sanitize(core.SecurityContext.HTML, txt.text);
2773
+ var safeTxt = _this._sanitizer.sanitize(i0.SecurityContext.HTML, txt.text);
2538
2774
  _this.textParts.push(safeTxt);
2539
2775
  }
2540
2776
  });
@@ -2566,26 +2802,44 @@
2566
2802
  });
2567
2803
  });
2568
2804
  };
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
2805
  return ProductAdditionalInfoComponent;
2588
- }());
2806
+ }());
2807
+ ProductAdditionalInfoComponent.decorators = [
2808
+ { type: i0.Component, args: [{
2809
+ selector: 'app-product-additional-info',
2810
+ template: "\n <h3 *ngIf=\"showLabel\" [textContent]=\"'ADDITIONAL_DATA' | localize\"></h3>\n <ng-container *ngIf=\"textParts && textParts.length > 0\">\n <div class=\"additional-info-parts\" *ngFor=\"let text of textParts\" [innerHTML]=\"text\"></div>\n </ng-container>\n ",
2811
+ styles: [":host{display:block}:host .additional-info-parts{margin-bottom:20px;line-height:190%;color:#22313c;font-size:13px}:host ::ng-deep p{line-height:190%;margin:15px 0}:host ::ng-deep font{font-family:\"iOneMontserrat\"}:host .additional-info-parts>*:first-child{margin-top:0}:host .additional-info-parts>*:last-child{margin-bottom:0}\n"]
2812
+ },] }
2813
+ ];
2814
+ ProductAdditionalInfoComponent.ctorParameters = function () { return [
2815
+ { type: i1$1.DomSanitizer },
2816
+ { type: ProductConnectorService },
2817
+ { type: i0.ChangeDetectorRef }
2818
+ ]; };
2819
+ ProductAdditionalInfoComponent.propDecorators = {
2820
+ article: [{ type: i0.Input }],
2821
+ showLabel: [{ type: i0.Input }]
2822
+ };
2823
+
2824
+ var ProductAdditionalInfoModule = /** @class */ (function () {
2825
+ function ProductAdditionalInfoModule() {
2826
+ }
2827
+ return ProductAdditionalInfoModule;
2828
+ }());
2829
+ ProductAdditionalInfoModule.decorators = [
2830
+ { type: i0.NgModule, args: [{
2831
+ imports: [
2832
+ common.CommonModule,
2833
+ PipeModule
2834
+ ],
2835
+ declarations: [
2836
+ ProductAdditionalInfoComponent
2837
+ ],
2838
+ exports: [
2839
+ ProductAdditionalInfoComponent
2840
+ ]
2841
+ },] }
2842
+ ];
2589
2843
 
2590
2844
  var propertyMap = new Map([
2591
2845
  ['articleNr', 'ARTICLE_NUMBER'],
@@ -2611,7 +2865,7 @@
2611
2865
  this._article = value;
2612
2866
  this._prepareProperties();
2613
2867
  },
2614
- enumerable: true,
2868
+ enumerable: false,
2615
2869
  configurable: true
2616
2870
  });
2617
2871
  ProductPropertiesComponent.prototype.ngOnInit = function () {
@@ -2628,21 +2882,86 @@
2628
2882
  }
2629
2883
  });
2630
2884
  };
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
2885
  return ProductPropertiesComponent;
2645
- }());
2886
+ }());
2887
+ ProductPropertiesComponent.decorators = [
2888
+ { type: i0.Component, args: [{
2889
+ selector: 'app-product-properties',
2890
+ template: "\n <div class=\"article-properties-wrapper\">\n <h3 *ngIf=\"showLabel\" [textContent]=\"'PROPERTIES' | localize\"></h3>\n <ng-container *ngFor=\"let property of properties\">\n <div class=\"article-property\">\n <div class=\"article-property-key\" [textContent]=\"property.key | localize\"></div>\n <div class=\"article-property-value\" [textContent]=\"property.value\"></div>\n </div>\n </ng-container>\n </div>\n ",
2891
+ styles: [":host{display:block}.article-properties-wrapper{display:flex;flex-direction:column}.article-property{display:flex;flex-direction:row;border-bottom:1px solid #f6f5f4;padding:11px 0;font-size:13px}.article-property:first-child{border-top:1px solid #f6f5f4}.article-property-key{flex-basis:200px;flex-shrink:0;color:#5b6875}@media screen and (max-width: 450px){.article-property-key{flex-basis:130px}}\n"]
2892
+ },] }
2893
+ ];
2894
+ ProductPropertiesComponent.ctorParameters = function () { return []; };
2895
+ ProductPropertiesComponent.propDecorators = {
2896
+ article: [{ type: i0.Input }],
2897
+ showLabel: [{ type: i0.Input }]
2898
+ };
2899
+
2900
+ var ProductPropertiesModule = /** @class */ (function () {
2901
+ function ProductPropertiesModule() {
2902
+ }
2903
+ return ProductPropertiesModule;
2904
+ }());
2905
+ ProductPropertiesModule.decorators = [
2906
+ { type: i0.NgModule, args: [{
2907
+ imports: [
2908
+ common.CommonModule,
2909
+ PipeModule
2910
+ ],
2911
+ declarations: [
2912
+ ProductPropertiesComponent
2913
+ ],
2914
+ exports: [
2915
+ ProductPropertiesComponent
2916
+ ]
2917
+ },] }
2918
+ ];
2919
+
2920
+ var ProductDocumentsComponent = /** @class */ (function () {
2921
+ function ProductDocumentsComponent(iconCache) {
2922
+ this.iconCache = iconCache;
2923
+ this.icon = IconEnum;
2924
+ this.showLabel = false;
2925
+ this.documents = [];
2926
+ }
2927
+ return ProductDocumentsComponent;
2928
+ }());
2929
+ ProductDocumentsComponent.decorators = [
2930
+ { type: i0.Component, args: [{
2931
+ selector: 'app-product-documents',
2932
+ template: "\n <app-header *ngIf=\"showLabel\" [label]=\"'DOCUMENTS' | localize\" [amount]=\"documents?.length\"></app-header>\n <div *ngIf=\"documents && documents.length > 0\">\n <co-files-upload [documents]=\"documents\" [canAdd]=\"false\" readonly></co-files-upload>\n </div>\n ",
2933
+ styles: [":host{display:block}::ng-deep co-files-upload{flex-direction:column!important;width:100%}::ng-deep co-file-upload{margin:0!important;border-bottom:1px solid #f6f5f4}::ng-deep co-file-upload:first-child{border-top:1px solid #f6f5f4}::ng-deep co-files-upload .files-upload-wrapper{flex-direction:column!important;width:100%}::ng-deep co-file-upload co-tile{max-width:100%!important;width:100%;position:relative}::ng-deep co-file-upload co-tile:hover{box-shadow:none!important}::ng-deep co-file-upload co-tile:hover .tile-extra-bottom{background-color:#f6f5f4!important}::ng-deep co-file-upload co-tile .tile-wrapper{position:absolute!important;left:0;top:0;width:100%;height:100%;z-index:2;opacity:0;box-sizing:border-box}::ng-deep co-file-upload co-tile .tile-wrapper .image{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important;cursor:pointer}::ng-deep co-file-upload co-tile .tile-extra-bottom{outline:none!important;border:none!important;background:transparent!important;line-height:20px;padding:20px 20px 20px 60px!important;margin:0!important;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22 standalone%3D%22no%22%3F%3E%3Csvg xmlns%3Adc%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%22 xmlns%3Acc%3D%22http%3A%2F%2Fcreativecommons.org%2Fns%23%22 xmlns%3Ardf%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%22 xmlns%3Asvg%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Asodipodi%3D%22http%3A%2F%2Fsodipodi.sourceforge.net%2FDTD%2Fsodipodi-0.dtd%22 xmlns%3Ainkscape%3D%22http%3A%2F%2Fwww.inkscape.org%2Fnamespaces%2Finkscape%22 viewBox%3D%220 0 50 50%22 version%3D%221.1%22 id%3D%22svg8%22 sodipodi%3Adocname%3D%22download.svg%22 inkscape%3Aversion%3D%220.92.4 (5da689c313%2C 2019-01-14)%22%3E %3Cmetadata id%3D%22metadata14%22%3E %3Crdf%3ARDF%3E %3Ccc%3AWork rdf%3Aabout%3D%22%22%3E %3Cdc%3Aformat%3Eimage%2Fsvg%2Bxml%3C%2Fdc%3Aformat%3E %3Cdc%3Atype rdf%3Aresource%3D%22http%3A%2F%2Fpurl.org%2Fdc%2Fdcmitype%2FStillImage%22 %2F%3E %3Cdc%3Atitle%3E%3C%2Fdc%3Atitle%3E %3C%2Fcc%3AWork%3E %3C%2Frdf%3ARDF%3E %3C%2Fmetadata%3E %3Cdefs id%3D%22defs12%22 %2F%3E %3Csodipodi%3Anamedview pagecolor%3D%22%23ffffff%22 bordercolor%3D%22%23666666%22 borderopacity%3D%221%22 objecttolerance%3D%2210%22 gridtolerance%3D%2210%22 guidetolerance%3D%2210%22 inkscape%3Apageopacity%3D%220%22 inkscape%3Apageshadow%3D%222%22 inkscape%3Awindow-width%3D%221920%22 inkscape%3Awindow-height%3D%221017%22 id%3D%22namedview10%22 showgrid%3D%22false%22 inkscape%3Azoom%3D%226.675088%22 inkscape%3Acx%3D%22-14.056273%22 inkscape%3Acy%3D%2229.806579%22 inkscape%3Awindow-x%3D%22-8%22 inkscape%3Awindow-y%3D%22-8%22 inkscape%3Awindow-maximized%3D%221%22 inkscape%3Acurrent-layer%3D%22svg8%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g62%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g64%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g66%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g68%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g70%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g72%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g74%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g76%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g78%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g80%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g82%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g84%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g86%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g88%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05570714%2C0%2C0%2C0.05570648%2C10.763%2C10.859394)%22 id%3D%22g90%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g6-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g4-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 498.966%2C339.946 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 v 49.804 c 0%2C28.747 -23.388%2C52.135 -52.135%2C52.135 H 78.203 c -28.747%2C0 -52.135%2C-23.388 -52.135%2C-52.135 V 352.98 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 C 5.835%2C339.946 0%2C345.782 0%2C352.98 v 49.804 c 0%2C43.121 35.082%2C78.203 78.203%2C78.203 h 355.594 c 43.121%2C0 78.203%2C-35.082 78.203%2C-78.203 V 352.98 c 0%2C-7.198 -5.835%2C-13.034 -13.034%2C-13.034 z%22 id%3D%22path2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g12-0%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g10-8%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22M 419.833%2C391.3 H 92.167 c -7.197%2C0 -13.034%2C5.837 -13.034%2C13.034 0%2C7.197 5.835%2C13.034 13.034%2C13.034 h 327.665 c 7.199%2C0 13.034%2C-5.835 13.034%2C-13.034 0%2C-7.197 -5.835%2C-13.034 -13.033%2C-13.034 z%22 id%3D%22path8-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g18-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cg id%3D%22g16-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22%3E %3Cpath inkscape%3Aconnector-curvature%3D%220%22 d%3D%22m 387.919%2C207.93 c -4.795%2C-5.367 -13.034%2C-5.834 -18.404%2C-1.038 L 269.033%2C296.657 V 44.048 c 0%2C-7.197 -5.835%2C-13.034 -13.034%2C-13.034 -7.197%2C0 -13.034%2C5.835 -13.034%2C13.034 V 296.657 L 142.483%2C206.893 c -5.367%2C-4.796 -13.607%2C-4.328 -18.404%2C1.038 -4.794%2C5.369 -4.331%2C13.609 1.037%2C18.404 l 109.174%2C97.527 c 6.187%2C5.529 13.946%2C8.292 21.708%2C8.292 7.759%2C0 15.519%2C-2.763 21.708%2C-8.289 l 109.174%2C-97.53 c 5.37%2C-4.798 5.834%2C-13.038 1.039%2C-18.405 z%22 id%3D%22path14-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3C%2Fg%3E %3C%2Fg%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g20%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g22-9%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g24-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g26%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g28-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g30-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g32%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g34-2%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g36-1%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g38%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g40-6%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g42-4%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g44%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g46-7%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E %3Cg transform%3D%22matrix(0.05555739%2C0%2C0%2C0.05555739%2C10.739964%2C11.357401)%22 id%3D%22g48-3%22 style%3D%22fill%3A%23484f60%3Bfill-opacity%3A1%22 %2F%3E%3C%2Fsvg%3E\") no-repeat left 6px center / 36px auto!important}::ng-deep co-file-upload co-tile .tile-extra-bottom .main{padding:0!important}\n"]
2934
+ },] }
2935
+ ];
2936
+ ProductDocumentsComponent.ctorParameters = function () { return [
2937
+ { type: IconCacheService }
2938
+ ]; };
2939
+ ProductDocumentsComponent.propDecorators = {
2940
+ showLabel: [{ type: i0.Input }],
2941
+ documents: [{ type: i0.Input }]
2942
+ };
2943
+
2944
+ var ProductDocumentModule = /** @class */ (function () {
2945
+ function ProductDocumentModule() {
2946
+ }
2947
+ return ProductDocumentModule;
2948
+ }());
2949
+ ProductDocumentModule.decorators = [
2950
+ { type: i0.NgModule, args: [{
2951
+ imports: [
2952
+ common.CommonModule,
2953
+ HeaderModule,
2954
+ PipeModule,
2955
+ corecomponents.FilesUploadModule
2956
+ ],
2957
+ declarations: [
2958
+ ProductDocumentsComponent
2959
+ ],
2960
+ exports: [
2961
+ ProductDocumentsComponent
2962
+ ]
2963
+ },] }
2964
+ ];
2646
2965
 
2647
2966
  var ProductSymbolsComponent = /** @class */ (function () {
2648
2967
  function ProductSymbolsComponent() {
@@ -2663,154 +2982,307 @@
2663
2982
  }
2664
2983
  }
2665
2984
  },
2666
- enumerable: true,
2985
+ enumerable: false,
2667
2986
  configurable: true
2668
2987
  });
2669
2988
  ProductSymbolsComponent.prototype.ngOnInit = function () {
2670
2989
  };
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
2990
  return ProductSymbolsComponent;
2685
- }());
2991
+ }());
2992
+ ProductSymbolsComponent.decorators = [
2993
+ { type: i0.Component, args: [{
2994
+ selector: 'app-product-symbols',
2995
+ template: "\n <div *ngIf=\"symbols && symbols.length > 0\">\n <app-header [label]=\"'SYMBOLS' | localize\" [amount]=\"symbols?.length\"></app-header>\n <co-scroll-container>\n <co-tile small noImagePlaceholder *ngFor=\"let symbol of symbolStrings\">\n <ng-container tile-over-image>\n <div class=\"symbol\" [textContent]=\"symbol\"></div>\n </ng-container>\n <ng-container tile-extra-bottom-content>\n <div class=\"symbol-name\" [textContent]=\"'Wat moet hier?'\"></div>\n </ng-container>\n </co-tile>\n </co-scroll-container>\n </div>\n ",
2996
+ styles: [":host{display:block}:host.floor .symbol{font-family:iOneFloorsymbols}:host.ginetex .symbol{font-family:iOneGinetexsymbols}.symbol{font-size:100px}\n"]
2997
+ },] }
2998
+ ];
2999
+ ProductSymbolsComponent.ctorParameters = function () { return []; };
3000
+ ProductSymbolsComponent.propDecorators = {
3001
+ symbols: [{ type: i0.Input }],
3002
+ _className: [{ type: i0.HostBinding, args: ['class',] }]
3003
+ };
3004
+
3005
+ var ProductSymbolsModule = /** @class */ (function () {
3006
+ function ProductSymbolsModule() {
3007
+ }
3008
+ return ProductSymbolsModule;
3009
+ }());
3010
+ ProductSymbolsModule.decorators = [
3011
+ { type: i0.NgModule, args: [{
3012
+ imports: [
3013
+ common.CommonModule,
3014
+ HeaderModule,
3015
+ PipeModule,
3016
+ corecomponents.ScrollContainerModule,
3017
+ corecomponents.TileModule
3018
+ ],
3019
+ declarations: [
3020
+ ProductSymbolsComponent
3021
+ ],
3022
+ exports: [
3023
+ ProductSymbolsComponent
3024
+ ]
3025
+ },] }
3026
+ ];
3027
+
3028
+ var ProductInfoTabsModule = /** @class */ (function () {
3029
+ function ProductInfoTabsModule() {
3030
+ }
3031
+ return ProductInfoTabsModule;
3032
+ }());
3033
+ ProductInfoTabsModule.decorators = [
3034
+ { type: i0.NgModule, args: [{
3035
+ imports: [
3036
+ common.CommonModule,
3037
+ PipeModule,
3038
+ ProductAdditionalInfoModule,
3039
+ ProductPropertiesModule,
3040
+ ProductDocumentModule,
3041
+ ProductSymbolsModule
3042
+ ],
3043
+ declarations: [
3044
+ ProductInfoTabsComponent
3045
+ ],
3046
+ exports: [
3047
+ ProductInfoTabsComponent
3048
+ ]
3049
+ },] }
3050
+ ];
2686
3051
 
2687
3052
  var ProductPageModule = /** @class */ (function () {
2688
3053
  function ProductPageModule() {
2689
3054
  }
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
3055
  return ProductPageModule;
2731
- }());
3056
+ }());
3057
+ ProductPageModule.decorators = [
3058
+ { type: i0.NgModule, args: [{
3059
+ imports: [
3060
+ common.CommonModule,
3061
+ ProductSelectorTypeModule,
3062
+ ImageCarouselModule,
3063
+ corecomponents.IconModule,
3064
+ ProductDescriptionModule,
3065
+ ProductAdditionalDescriptionModule,
3066
+ ProductPriceModule,
3067
+ ProductAddtocartModule,
3068
+ ProductRelatedModule,
3069
+ ProductStockModule,
3070
+ ProductDeliveryModule,
3071
+ ProductInfoTabsModule,
3072
+ PipeModule
3073
+ ],
3074
+ schemas: [i0.CUSTOM_ELEMENTS_SCHEMA],
3075
+ declarations: [
3076
+ ProductPageComponent
3077
+ ],
3078
+ exports: [
3079
+ ProductPageComponent
3080
+ ]
3081
+ },] }
3082
+ ];
3083
+
3084
+ var IoneProductModule = /** @class */ (function () {
3085
+ function IoneProductModule() {
3086
+ }
3087
+ return IoneProductModule;
3088
+ }());
3089
+ IoneProductModule.decorators = [
3090
+ { type: i0.NgModule, args: [{
3091
+ imports: [
3092
+ // BrowserAnimationsModule,
3093
+ common.CommonModule,
3094
+ ProductPageModule
3095
+ ],
3096
+ declarations: [
3097
+ IoneProductComponent
3098
+ ],
3099
+ exports: [
3100
+ IoneProductComponent
3101
+ ],
3102
+ bootstrap: [
3103
+ IoneProductComponent
3104
+ ]
3105
+ },] }
3106
+ ];
3107
+
3108
+ var ProductExternalSourceComponent = /** @class */ (function () {
3109
+ function ProductExternalSourceComponent(_sanitizer, _productConnectorService, _appEventService) {
3110
+ this._sanitizer = _sanitizer;
3111
+ this._productConnectorService = _productConnectorService;
3112
+ this._appEventService = _appEventService;
3113
+ this.addToCart = new i0.EventEmitter();
3114
+ this.addToQuote = new i0.EventEmitter();
3115
+ this.alternativeClick = new i0.EventEmitter();
3116
+ this.showProduct = false;
3117
+ this.loaded = false;
3118
+ this.externalSettings = {};
3119
+ this._subs = [];
3120
+ }
3121
+ Object.defineProperty(ProductExternalSourceComponent.prototype, "externalSource", {
3122
+ get: function () {
3123
+ return this._externalSource;
3124
+ },
3125
+ set: function (value) {
3126
+ this._externalSource = value;
3127
+ this.loaded = false;
3128
+ this._prepareExternalSource();
3129
+ },
3130
+ enumerable: false,
3131
+ configurable: true
3132
+ });
3133
+ ProductExternalSourceComponent.prototype.showClass = function () {
3134
+ return true;
3135
+ };
3136
+ ProductExternalSourceComponent.prototype.ngOnInit = function () {
3137
+ var _this = this;
3138
+ this._subs.push(this._appEventService.onAddToCart.subscribe(function (json) { return _this.addToCart.next(json); }), this._appEventService.onAddToQuote.subscribe(function (json) { return _this.addToQuote.next(json); }), this._appEventService.onAlternativeClick.subscribe(function (article) { return _this.alternativeClick.next(article); }));
3139
+ };
3140
+ ProductExternalSourceComponent.prototype.ngOnDestroy = function () {
3141
+ this._subs.forEach(function (s) { return s.unsubscribe(); });
3142
+ };
3143
+ ProductExternalSourceComponent.prototype._prepareExternalSource = function () {
3144
+ return __awaiter(this, void 0, void 0, function () {
3145
+ var bundleSettings;
3146
+ return __generator(this, function (_a) {
3147
+ switch (_a.label) {
3148
+ case 0:
3149
+ if (!this._externalSource) {
3150
+ return [2 /*return*/];
3151
+ }
3152
+ this.externalUrl = undefined;
3153
+ this.externalSettings = {};
3154
+ if (!(this.externalSource.type === 'CATF')) return [3 /*break*/, 2];
3155
+ return [4 /*yield*/, this._productConnectorService.getProductBundleSettings(this.externalSource.url, parseInt(this.externalSource.schema, 0))];
3156
+ case 1:
3157
+ bundleSettings = _a.sent();
3158
+ this.externalSettings = JSON.parse(bundleSettings);
3159
+ if (this.options) {
3160
+ this.externalSettings.options = this.options;
3161
+ }
3162
+ // this.externalSettings.assetPath = "https://cdn1.colijn-it.nl/content43";
3163
+ // this.externalSettings.threeDAssetPath = "https://cdn1.colijn-it.nl/content43";
3164
+ if (this.externalSource.username && this.externalSource.password) {
3165
+ this.externalSettings.useLoginEncryption = true;
3166
+ this.externalSettings.username = this.externalSource.username;
3167
+ this.externalSettings.password = this.externalSource.password;
3168
+ }
3169
+ // finally show the catalog
3170
+ this.showProduct = true;
3171
+ return [3 /*break*/, 3];
3172
+ case 2:
3173
+ this.externalUrl = this.externalSource.url;
3174
+ this.safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.externalUrl);
3175
+ this.showProduct = false;
3176
+ _a.label = 3;
3177
+ case 3:
3178
+ this.loaded = true;
3179
+ return [2 /*return*/];
3180
+ }
3181
+ });
3182
+ });
3183
+ };
3184
+ return ProductExternalSourceComponent;
3185
+ }());
3186
+ ProductExternalSourceComponent.decorators = [
3187
+ { type: i0.Component, args: [{
3188
+ selector: 'co-product-external-source',
3189
+ template: "\n <ng-container *ngIf=\"loaded\">\n <ng-container *ngIf=\"showProduct\">\n <app-product-page\n [sku]=\"sku\"\n [settings]=\"externalSettings\"\n ></app-product-page>\n </ng-container>\n <ng-container *ngIf=\"!showProduct\">\n <iframe width=\"100%\" height=\"100%\" [src]=\"safeUrl\" frameborder=\"0\" allowfullscreen></iframe>\n </ng-container>\n </ng-container>\n ",
3190
+ providers: [
3191
+ ProductEventService,
3192
+ ProductSettingsService,
3193
+ ProductConnectorAdapterService,
3194
+ ProductConnectorService
3195
+ ],
3196
+ encapsulation: i0.ViewEncapsulation.None
3197
+ },] }
3198
+ ];
3199
+ ProductExternalSourceComponent.ctorParameters = function () { return [
3200
+ { type: i1$1.DomSanitizer },
3201
+ { type: ProductConnectorService },
3202
+ { type: ProductEventService }
3203
+ ]; };
3204
+ ProductExternalSourceComponent.propDecorators = {
3205
+ sku: [{ type: i0.Input }],
3206
+ externalSource: [{ type: i0.Input }],
3207
+ options: [{ type: i0.Input }],
3208
+ addToCart: [{ type: i0.Output }],
3209
+ addToQuote: [{ type: i0.Output }],
3210
+ alternativeClick: [{ type: i0.Output }],
3211
+ showClass: [{ type: i0.HostBinding, args: ['class.co-product-external-source',] }]
3212
+ };
2732
3213
 
2733
3214
  var ProductExternalSourceModule = /** @class */ (function () {
2734
3215
  function ProductExternalSourceModule() {
2735
3216
  }
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
3217
  return ProductExternalSourceModule;
2751
- }());
3218
+ }());
3219
+ ProductExternalSourceModule.decorators = [
3220
+ { type: i0.NgModule, args: [{
3221
+ imports: [
3222
+ common.CommonModule,
3223
+ ProductPageModule
3224
+ ],
3225
+ declarations: [
3226
+ ProductExternalSourceComponent
3227
+ ],
3228
+ exports: [
3229
+ ProductExternalSourceComponent
3230
+ ]
3231
+ },] }
3232
+ ];
2752
3233
 
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
- }());
3234
+ /**
3235
+ * Generated bundle index. Do not edit.
3236
+ */
2779
3237
 
3238
+ exports.IoneProductComponent = IoneProductComponent;
2780
3239
  exports.IoneProductModule = IoneProductModule;
2781
3240
  exports.ProductExternalSourceComponent = ProductExternalSourceComponent;
2782
3241
  exports.ProductExternalSourceModule = ProductExternalSourceModule;
2783
3242
  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;
3243
+ exports["ɵa"] = ProductPageModule;
3244
+ exports["ɵb"] = ProductSelectorTypeModule;
3245
+ exports["ɵba"] = ProductStockModule;
3246
+ exports["ɵbb"] = ProductStockComponent;
3247
+ exports["ɵbc"] = ProductDeliveryModule;
3248
+ exports["ɵbd"] = ProductDeliveryComponent;
3249
+ exports["ɵbe"] = ProductInfoTabsModule;
3250
+ exports["ɵbf"] = ProductAdditionalInfoModule;
3251
+ exports["ɵbg"] = ProductAdditionalInfoComponent;
3252
+ exports["ɵbh"] = ProductPropertiesModule;
3253
+ exports["ɵbi"] = ProductPropertiesComponent;
3254
+ exports["ɵbj"] = ProductDocumentModule;
3255
+ exports["ɵbk"] = ProductDocumentsComponent;
3256
+ exports["ɵbl"] = ProductSymbolsModule;
3257
+ exports["ɵbm"] = ProductSymbolsComponent;
3258
+ exports["ɵbn"] = ProductInfoTabsComponent;
3259
+ exports["ɵbo"] = ProductPageComponent;
3260
+ exports["ɵc"] = PipeModule;
3261
+ exports["ɵd"] = LocalizePipe;
3262
+ exports["ɵe"] = DictionaryService;
3263
+ exports["ɵf"] = JsonUtilsService;
3264
+ exports["ɵg"] = ProductSelectorTypeComponent;
3265
+ exports["ɵh"] = IconCacheService;
3266
+ exports["ɵi"] = ImageCarouselModule;
3267
+ exports["ɵj"] = ImageCarouselComponent;
3268
+ exports["ɵk"] = ProductConnectorService;
3269
+ exports["ɵl"] = ProductConnectorAdapterService;
3270
+ exports["ɵm"] = ProductSettingsService;
3271
+ exports["ɵn"] = ProductEventService;
3272
+ exports["ɵo"] = ProductDescriptionModule;
3273
+ exports["ɵp"] = ProductDescriptionComponent;
3274
+ exports["ɵq"] = ProductAdditionalDescriptionModule;
3275
+ exports["ɵr"] = ProductAdditionalDescriptionComponent;
3276
+ exports["ɵs"] = ProductPriceModule;
3277
+ exports["ɵt"] = ProductPriceComponent;
3278
+ exports["ɵu"] = ProductAddtocartModule;
3279
+ exports["ɵv"] = ProductAddtocartComponent;
3280
+ exports["ɵw"] = ProductRelatedModule;
3281
+ exports["ɵx"] = HeaderModule;
3282
+ exports["ɵy"] = HeaderComponent;
3283
+ exports["ɵz"] = ProductRelatedComponent;
2812
3284
 
2813
3285
  Object.defineProperty(exports, '__esModule', { value: true });
2814
3286
 
2815
- })));
3287
+ }));
2816
3288
  //# sourceMappingURL=colijnit-product.umd.js.map