thm-p3-configurator 0.0.138 → 0.0.140

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.
@@ -25,7 +25,7 @@ var _FormulaContext = require("./__context__/FormulaContext");
25
25
  var _OrderSessionContext = require("./__context__/OrderSessionContext");
26
26
  var _cookiebot = require("./__helpers__/cookiebot");
27
27
  var _queryClient = _interopRequireDefault(require("./__helpers__/queryClient"));
28
- var _index = _interopRequireDefault(require("./__pages__/index"));
28
+ var _TEST_ONLY_INTERNAL_ROUTES = _interopRequireDefault(require("./__pages__/internal/__TEST_ONLY_INTERNAL_ROUTES"));
29
29
  var _Experiments = _interopRequireDefault(require("./__services__/Experiments"));
30
30
  var _mainExternal = _interopRequireDefault(require("./__style__/main-external.scss"));
31
31
  var _main = _interopRequireDefault(require("./__style__/main.scss"));
@@ -59,7 +59,7 @@ function _interopRequireWildcard(e, r) {
59
59
  }
60
60
  return n.default = e, t && t.set(e, n), n;
61
61
  }
62
- // import TEST_ONLY_INTERNAL_ROUTES from './__pages__/internal/__TEST_ONLY_INTERNAL_ROUTES';
62
+ // import Routes from './__pages__/index';
63
63
 
64
64
  _reactGtmModule.default.initialize({
65
65
  gtmId: APP_CONFIG.googleTagManagerId || 'GTM-TC67SZ4'
@@ -76,6 +76,6 @@ const App = () => {
76
76
  defaultCountry: APP_CONFIG.country
77
77
  }, /*#__PURE__*/_react.default.createElement(_OrderSessionContext.OrderSessionController, null, /*#__PURE__*/_react.default.createElement(_reactQuery.QueryClientProvider, {
78
78
  client: _queryClient.default
79
- }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react.default.createElement(_reactHotLoader.AppContainer, null, /*#__PURE__*/_react.default.createElement(_ActiveMarkerContext.ActiveMarkerProvider, null, /*#__PURE__*/_react.default.createElement(_StyleWrapper.default, null, !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_Navbar.default, null), APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalBranchSelectorModal.default, null), /*#__PURE__*/_react.default.createElement(_index.default, null))))))))));
79
+ }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.BrowserRouter, null, /*#__PURE__*/_react.default.createElement(_reactHotLoader.AppContainer, null, /*#__PURE__*/_react.default.createElement(_ActiveMarkerContext.ActiveMarkerProvider, null, /*#__PURE__*/_react.default.createElement(_StyleWrapper.default, null, !APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_Navbar.default, null), APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalBranchSelectorModal.default, null), APP_CONFIG.nodeEnv === 'development' && APP_CONFIG.internal === true && /*#__PURE__*/_react.default.createElement(_TEST_ONLY_INTERNAL_ROUTES.default, null))))))))));
80
80
  };
81
81
  var _default = exports.default = App;
@@ -421,6 +421,7 @@ const useProductsQuery = orderParameters => {
421
421
  queryFn: async () => {
422
422
  var _response$data, _JSON$parse, _data$articles, _data$articles2, _data$articles3, _data$articles4, _data$articles5, _data$articles6;
423
423
  const response = await _authenticatedProxyApi.authenticatedProxyApi.getOrder(productsSearchParams);
424
+ console.log(response.data, productsSearchParams);
424
425
  const data = (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.data;
425
426
  if (!data) return data;
426
427
  const authSession = _LocalStorageWorker.lsw.get(_constants__.AUTH_SESSION_KEY);
@@ -435,6 +436,10 @@ const useProductsQuery = orderParameters => {
435
436
  // NOTE: the API to enrich the products with extra data is only available when the configurator has an authenticated user, so on in the PP.
436
437
  // If we need this also for the public version than Hyper needs to implement this.
437
438
 
439
+ console.log('alle producten', allProducts);
440
+ if (!allProducts.length) {
441
+ return data;
442
+ }
438
443
  try {
439
444
  var _data$articles7, _data$articles8, _data$articles9, _data$articles10, _data$articles11;
440
445
  // Enrich all products with brands and prices
@@ -4,6 +4,7 @@ require("core-js/modules/es.array.includes.js");
4
4
  require("core-js/modules/es.string.includes.js");
5
5
  require("core-js/modules/esnext.iterator.constructor.js");
6
6
  require("core-js/modules/esnext.iterator.filter.js");
7
+ require("core-js/modules/esnext.iterator.find.js");
7
8
  require("core-js/modules/esnext.iterator.map.js");
8
9
  Object.defineProperty(exports, "__esModule", {
9
10
  value: true
@@ -13,8 +14,10 @@ require("core-js/modules/es.array.includes.js");
13
14
  require("core-js/modules/es.string.includes.js");
14
15
  require("core-js/modules/esnext.iterator.constructor.js");
15
16
  require("core-js/modules/esnext.iterator.filter.js");
17
+ require("core-js/modules/esnext.iterator.find.js");
16
18
  require("core-js/modules/esnext.iterator.map.js");
17
19
  var _react = _interopRequireDefault(require("react"));
20
+ var _constants__ = require("../../__constants__");
18
21
  var _helpers__ = require("../../__helpers__");
19
22
  function _interopRequireDefault(e) {
20
23
  return e && e.__esModule ? e : {
@@ -30,18 +33,36 @@ const ProductCardSpecifications = _ref => {
30
33
  if (!specifications.length) {
31
34
  return null;
32
35
  }
36
+
37
+ // convert the key to a human readable format
38
+ const convertedSpecifications = specifications.map(_ref2 => {
39
+ let {
40
+ key,
41
+ value
42
+ } = _ref2;
43
+ const translation = _constants__.ARTICLE_SPECS_TRANSLATIONS.find(_ref3 => {
44
+ let {
45
+ key: translationKey
46
+ } = _ref3;
47
+ return translationKey === key;
48
+ });
49
+ return {
50
+ key: (translation === null || translation === void 0 ? void 0 : translation.value) || key,
51
+ value
52
+ };
53
+ });
33
54
  return /*#__PURE__*/_react.default.createElement("ul", {
34
- className: (0, _helpers__.withStyle)("col-12 col-md-6 list-unstyled product-critera__text mt-2 mb-2 ".concat(className))
35
- }, specifications.filter(_ref2 => {
55
+ className: (0, _helpers__.withStyle)("col-md-6 list-unstyled product-critera__text mb-2 ".concat(className))
56
+ }, convertedSpecifications.filter(_ref4 => {
36
57
  let {
37
58
  key
38
- } = _ref2;
59
+ } = _ref4;
39
60
  return !excludeKeys.includes(key);
40
- }).map(_ref3 => {
61
+ }).map(_ref5 => {
41
62
  let {
42
63
  key,
43
64
  value
44
- } = _ref3;
65
+ } = _ref5;
45
66
  return /*#__PURE__*/_react.default.createElement("li", {
46
67
  key: key + value,
47
68
  className: (0, _helpers__.withStyle)('d-flex justify-content-between card-text__criterea')
@@ -3,6 +3,7 @@
3
3
  require("core-js/modules/es.promise.js");
4
4
  require("core-js/modules/es.weak-map.js");
5
5
  require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.every.js");
6
7
  require("core-js/modules/esnext.iterator.filter.js");
7
8
  require("core-js/modules/esnext.iterator.find.js");
8
9
  require("core-js/modules/esnext.iterator.map.js");
@@ -14,6 +15,7 @@ Object.defineProperty(exports, "__esModule", {
14
15
  exports.default = void 0;
15
16
  require("core-js/modules/es.promise.js");
16
17
  require("core-js/modules/esnext.iterator.constructor.js");
18
+ require("core-js/modules/esnext.iterator.every.js");
17
19
  require("core-js/modules/esnext.iterator.filter.js");
18
20
  require("core-js/modules/esnext.iterator.find.js");
19
21
  require("core-js/modules/esnext.iterator.map.js");
@@ -21,13 +23,13 @@ require("core-js/modules/web.dom-collections.iterator.js");
21
23
  var _react = _interopRequireWildcard(require("react"));
22
24
  var _queries = require("../__api__/queries");
23
25
  var _NumericInput = _interopRequireDefault(require("../__components__/Form/NumericInput"));
26
+ var _constants__ = require("../__constants__");
24
27
  var _helpers__ = require("../__helpers__");
25
28
  var _singleOrderArticles = require("../__helpers__/singleOrderArticles");
26
29
  var _OutlinedButton = _interopRequireDefault(require("./Buttons/OutlinedButton"));
27
30
  var _PrimaryButton = _interopRequireDefault(require("./Buttons/PrimaryButton"));
28
31
  var _ProductCardSpecifications = _interopRequireDefault(require("./ProductCard/ProductCardSpecifications"));
29
32
  var _ProductCardUsps = _interopRequireDefault(require("./ProductCard/ProductCardUsps"));
30
- var _constants__ = require("../__constants__");
31
33
  function _interopRequireDefault(e) {
32
34
  return e && e.__esModule ? e : {
33
35
  default: e
@@ -126,7 +128,9 @@ const ProductCategories = _ref3 => {
126
128
  partStockLevels = null,
127
129
  showPartStockLevel = false
128
130
  } = _ref3;
129
- return /*#__PURE__*/_react.default.createElement("div", null, articleNumber && /*#__PURE__*/_react.default.createElement("p", {
131
+ return /*#__PURE__*/_react.default.createElement("div", {
132
+ className: (0, _helpers__.withStyle)('col-md-6')
133
+ }, articleNumber && /*#__PURE__*/_react.default.createElement("p", {
130
134
  className: (0, _helpers__.withStyle)('fst-italic mb-0')
131
135
  }, /*#__PURE__*/_react.default.createElement("strong", null, "Artikelnummer:"), " ", articleNumber), productType && /*#__PURE__*/_react.default.createElement("p", {
132
136
  className: (0, _helpers__.withStyle)('fst-italic mb-0')
@@ -136,7 +140,7 @@ const ProductCategories = _ref3 => {
136
140
  className: (0, _helpers__.withStyle)('fst-italic mb-0')
137
141
  }, /*#__PURE__*/_react.default.createElement("strong", null, "Subgroep:"), " ", productSubgroup), preferredPart && /*#__PURE__*/_react.default.createElement("p", {
138
142
  className: (0, _helpers__.withStyle)('fst-italic mb-0')
139
- }, /*#__PURE__*/_react.default.createElement("strong", null, "Voorkeur onderdeel:"), " ", preferredPart.preferredPart), showPartStockLevel && partStockLevels && /*#__PURE__*/_react.default.createElement("p", {
143
+ }, /*#__PURE__*/_react.default.createElement("strong", null, "Voorkeur onderdeel:"), " ", preferredPart.preferredPart), showPartStockLevel && (partStockLevels === null || partStockLevels === void 0 ? void 0 : partStockLevels.status) && /*#__PURE__*/_react.default.createElement("p", {
140
144
  className: (0, _helpers__.withStyle)('fst-italic mb-0')
141
145
  }, /*#__PURE__*/_react.default.createElement("small", {
142
146
  className: (0, _helpers__.withStyle)(partStockLevels.status === _constants__.StockStatus.OutOfStock ? 'text-danger' : 'text-success')
@@ -199,9 +203,10 @@ const SingleOrderProductCard = _ref4 => {
199
203
  }, [parts]);
200
204
  const filteredProductSpecifications = productSpecifications.filter(_ref5 => {
201
205
  let {
202
- key
206
+ key,
207
+ value
203
208
  } = _ref5;
204
- return productFieldLabels === null || productFieldLabels === void 0 ? void 0 : productFieldLabels[key];
209
+ return (productFieldLabels === null || productFieldLabels === void 0 ? void 0 : productFieldLabels[key]) && value !== 'kg';
205
210
  }).map(_ref6 => {
206
211
  let {
207
212
  key,
@@ -227,7 +232,9 @@ const SingleOrderProductCard = _ref4 => {
227
232
  className: (0, _helpers__.withStyle)('card-title mb-3')
228
233
  }, productTitle, /*#__PURE__*/_react.default.createElement("span", {
229
234
  className: (0, _helpers__.withStyle)('ms-2')
230
- }, "\u20AC", productPrice)), (productType || productGroup || productSubgroup || articleNumber || preferredPart) && /*#__PURE__*/_react.default.createElement(ProductCategories, {
235
+ }, "\u20AC", productPrice)), /*#__PURE__*/_react.default.createElement("div", {
236
+ className: (0, _helpers__.withStyle)(isModelArticle ? 'd-flex justify-content-between' : '')
237
+ }, (productType || productGroup || productSubgroup || articleNumber || preferredPart) && /*#__PURE__*/_react.default.createElement(ProductCategories, {
231
238
  productType: productType,
232
239
  productGroup: productGroup,
233
240
  productSubgroup: productSubgroup,
@@ -235,15 +242,13 @@ const SingleOrderProductCard = _ref4 => {
235
242
  preferredPart: preferredPart,
236
243
  partStockLevels: partStockLevels,
237
244
  showPartStockLevel: showPartStockLevel
238
- }), /*#__PURE__*/_react.default.createElement("div", {
239
- className: (0, _helpers__.withStyle)(isModelArticle ? 'd-flex justify-content-between' : '')
240
- }, (productUsps === null || productUsps === void 0 ? void 0 : productUsps.length) > 0 && /*#__PURE__*/_react.default.createElement(_ProductCardUsps.default, {
241
- usps: productUsps,
242
- className: isModelArticle ? 'mr-2' : 'w-100'
243
245
  }), (filteredProductSpecifications === null || filteredProductSpecifications === void 0 ? void 0 : filteredProductSpecifications.length) > 0 && /*#__PURE__*/_react.default.createElement(_ProductCardSpecifications.default, {
244
246
  specifications: filteredProductSpecifications,
245
247
  className: isModelArticle ? '' : 'w-100'
246
- }))), /*#__PURE__*/_react.default.createElement(ProductActions, {
248
+ })), (productUsps === null || productUsps === void 0 ? void 0 : productUsps.length) > 0 && !productUsps.every(usp => usp.text === null) && /*#__PURE__*/_react.default.createElement(_ProductCardUsps.default, {
249
+ usps: productUsps,
250
+ className: isModelArticle ? 'mr-2' : 'w-100'
251
+ })), /*#__PURE__*/_react.default.createElement(ProductActions, {
247
252
  showPartStockLevel: showPartStockLevel,
248
253
  setShowPartStockLevel: setShowPartStockLevel,
249
254
  isOutOfStock: isOutOfStock,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.VESTIGING_TYPE_ID = exports.VEHICLE_SINGLE_ORDER_OWNERSHIP_TYPE = exports.VEHICLE_OWNERSHIP_TYPE = exports.VEHICLE_CODING_SUBGROUP_NAME = exports.USER_GEOLOCATION_KEY = exports.TMG_ORGANIZATION_TYPE = exports.StockStatus = exports.PRODUCT_CATEGORIES = exports.PRIVATE_SINGLE_ORDER_SESSION_KEY = exports.ORDER_SESSION_KEY = exports.NAVIGATION_STEPS_INTERNAL = exports.NAVIGATION_STEPS_EXTERNAL = exports.NAVIGATION_BUTTONS = exports.MOUSE_EXIT_INTENT_THROTTLE = exports.MOUSE_EXIT_INTENT_OFFSET = exports.LOCATION_TYPE = exports.LOCATION_CHANGE_BUTTON_LABEL = exports.LOCALE = exports.FORM_ERROR_MESSAGES = exports.DOSSIER_TYPES = exports.DISCOUNT_TYPES = exports.DEFAULT_MAP_LONGITUDE = exports.DEFAULT_MAP_LATITUDE = exports.DEFAULT_ARTICLE_BRAND = exports.DAY_NAMES = exports.CONFIGURATOR_FORMULAS = exports.BOARD_COMPUTER_DISABLED_KEY = exports.AUTH_SESSION_KEY = exports.ARTICLES_SYSTEM_FIELDS = exports.API_ERROR_CODES = exports.ANWB_DISCOUNT_CODE = exports.ALL_EXPERIMENTS = exports.ACTIVE_VARIANTS = void 0;
6
+ exports.VESTIGING_TYPE_ID = exports.VEHICLE_SINGLE_ORDER_OWNERSHIP_TYPE = exports.VEHICLE_OWNERSHIP_TYPE = exports.VEHICLE_CODING_SUBGROUP_NAME = exports.USER_GEOLOCATION_KEY = exports.TMG_ORGANIZATION_TYPE = exports.StockStatus = exports.PRODUCT_CATEGORIES = exports.PRIVATE_SINGLE_ORDER_SESSION_KEY = exports.ORDER_SESSION_KEY = exports.NAVIGATION_STEPS_INTERNAL = exports.NAVIGATION_STEPS_EXTERNAL = exports.NAVIGATION_BUTTONS = exports.MOUSE_EXIT_INTENT_THROTTLE = exports.MOUSE_EXIT_INTENT_OFFSET = exports.LOCATION_TYPE = exports.LOCATION_CHANGE_BUTTON_LABEL = exports.LOCALE = exports.FORM_ERROR_MESSAGES = exports.DOSSIER_TYPES = exports.DISCOUNT_TYPES = exports.DEFAULT_MAP_LONGITUDE = exports.DEFAULT_MAP_LATITUDE = exports.DEFAULT_ARTICLE_BRAND = exports.DAY_NAMES = exports.CONFIGURATOR_FORMULAS = exports.BOARD_COMPUTER_DISABLED_KEY = exports.AUTH_SESSION_KEY = exports.ARTICLE_SPECS_TRANSLATIONS = exports.ARTICLES_SYSTEM_FIELDS = exports.API_ERROR_CODES = exports.ANWB_DISCOUNT_CODE = exports.ALL_EXPERIMENTS = exports.ACTIVE_VARIANTS = void 0;
7
7
  const DOSSIER_TYPES = exports.DOSSIER_TYPES = {
8
8
  Quotation: 'quotation',
9
9
  AppointmentRequest: 'appointment-request',
@@ -145,6 +145,37 @@ const PRIVATE_SINGLE_ORDER_SESSION_KEY = exports.PRIVATE_SINGLE_ORDER_SESSION_KE
145
145
  const MOUSE_EXIT_INTENT_THROTTLE = exports.MOUSE_EXIT_INTENT_THROTTLE = 50;
146
146
  const MOUSE_EXIT_INTENT_OFFSET = exports.MOUSE_EXIT_INTENT_OFFSET = 20;
147
147
  const ARTICLES_SYSTEM_FIELDS = exports.ARTICLES_SYSTEM_FIELDS = ['title', 'articleNumber', 'typeName', 'typeId', 'groupName', 'subgroupName', 'description', 'option', 'remark', 'incl', 'excl'];
148
+ const ARTICLE_SPECS_TRANSLATIONS = exports.ARTICLE_SPECS_TRANSLATIONS = [{
149
+ key: 'Draw weight',
150
+ value: 'Trekgewicht'
151
+ }, {
152
+ key: 'D Value',
153
+ value: 'D-waarde'
154
+ }, {
155
+ key: 'S Value',
156
+ value: 'S-waarde'
157
+ }, {
158
+ key: 'Foglight shutdown',
159
+ value: 'Mistlicht uitschakeling'
160
+ }, {
161
+ key: 'PDC shutdown',
162
+ value: 'PDC uitschakeling'
163
+ }, {
164
+ key: 'Switched PSU (+15)',
165
+ value: 'Geschakelde voeding (+15)'
166
+ }, {
167
+ key: 'Led',
168
+ value: 'LED verlichting'
169
+ }, {
170
+ key: 'C2 module',
171
+ value: 'C2 module'
172
+ }, {
173
+ key: 'Check control',
174
+ value: 'Check control'
175
+ }, {
176
+ key: 'Direct current (+30)',
177
+ value: 'Constante voeding (+30)'
178
+ }];
148
179
  const StockStatus = exports.StockStatus = {
149
180
  InStock: 'in_stock',
150
181
  OutOfStock: 'out_of_stock'
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.array.includes.js");
4
- require("core-js/modules/es.json.stringify.js");
5
4
  require("core-js/modules/es.parse-float.js");
6
5
  require("core-js/modules/es.regexp.to-string.js");
7
6
  require("core-js/modules/es.string.includes.js");
@@ -17,7 +16,6 @@ Object.defineProperty(exports, "__esModule", {
17
16
  });
18
17
  exports.default = void 0;
19
18
  require("core-js/modules/es.array.includes.js");
20
- require("core-js/modules/es.json.stringify.js");
21
19
  require("core-js/modules/es.parse-float.js");
22
20
  require("core-js/modules/es.regexp.to-string.js");
23
21
  require("core-js/modules/es.string.includes.js");
@@ -29,7 +27,6 @@ require("core-js/modules/web.dom-collections.iterator.js");
29
27
  var _react = _interopRequireWildcard(require("react"));
30
28
  var _logoPrimary = _interopRequireDefault(require("../../../public/assets/images/logo-primary.png"));
31
29
  var _montagePlaceholder = _interopRequireDefault(require("../../../public/assets/images/montage-placeholder.png"));
32
- var _queries = require("../__api__/queries");
33
30
  var _TogglableCard = _interopRequireDefault(require("../__components__/Cards/TogglableCard"));
34
31
  var _ProductTableEditableRow = _interopRequireDefault(require("../__components__/ProductTable/ProductTableEditableRow"));
35
32
  var _ProductTableHead = _interopRequireDefault(require("../__components__/ProductTable/ProductTableHead"));
@@ -42,7 +39,6 @@ var _FormulaContext = require("../__context__/FormulaContext");
42
39
  var _OrderSessionContext = require("../__context__/OrderSessionContext");
43
40
  var _helpers__ = require("../__helpers__");
44
41
  var _image = require("../__helpers__/image");
45
- var _product = require("../__helpers__/product");
46
42
  function _interopRequireDefault(e) {
47
43
  return e && e.__esModule ? e : {
48
44
  default: e
@@ -73,15 +69,16 @@ function _interopRequireWildcard(e, r) {
73
69
  }
74
70
  return n.default = e, t && t.set(e, n), n;
75
71
  }
76
- const ProductCartSide = () => {
72
+ const ProductCartSide = _ref => {
73
+ let {
74
+ products,
75
+ cart,
76
+ totals,
77
+ isLoadingProducts
78
+ } = _ref;
77
79
  const formula = (0, _FormulaContext.useFormula)();
78
80
  const [isToggled, setIsToggled] = (0, _react.useState)(false);
79
81
  const [{
80
- licensePlate,
81
- model,
82
- executionAnswer1,
83
- executionAnswer2,
84
- durationAnswer,
85
82
  selectedTowbar,
86
83
  selectedCableset,
87
84
  selectedCombiset,
@@ -89,39 +86,6 @@ const ProductCartSide = () => {
89
86
  selectedExtras,
90
87
  selectedBranch
91
88
  }, dispatch] = (0, _OrderSessionContext.useOrderSession)();
92
- const cartInput = (0, _product.validateCartInput)([{
93
- articleNumber: selectedCableset,
94
- quantity: 1
95
- }, {
96
- articleNumber: selectedCombiset,
97
- quantity: 1
98
- }, {
99
- articleNumber: selectedTowbar,
100
- quantity: 1
101
- }, ...Object.entries(selectedExtras).map(_ref => {
102
- let [extraArticleNumber, extraQuantity] = _ref;
103
- return {
104
- articleNumber: extraArticleNumber,
105
- quantity: extraQuantity
106
- };
107
- })]);
108
- const {
109
- cart,
110
- totals,
111
- products,
112
- isLoadingProducts
113
- } = (0, _queries.useProductsQuery)({
114
- licensePlate,
115
- model,
116
- executionAnswer1,
117
- executionAnswer2,
118
- durationAnswer,
119
- selectBoardComputerUpdate: selectedBoardComputer != null,
120
- cart: cartInput ? JSON.stringify(cartInput) : undefined,
121
- formula,
122
- branchId: isToggled ? selectedBranch : undefined
123
- });
124
- const marketCorrection = cart === null || cart === void 0 ? void 0 : cart.find(item => item.articleNumber === 'MC');
125
89
  let mainProducts = [];
126
90
  let accessoireProducts = [];
127
91
  if (products) {
@@ -171,6 +135,7 @@ const ProductCartSide = () => {
171
135
  * Montage price including VAT
172
136
  */
173
137
  const montageInclVat = parseFloat(totals === null || totals === void 0 ? void 0 : totals.montagePricePlusMarketCorrectionInclVat) || 0;
138
+ const marketCorrection = cart === null || cart === void 0 ? void 0 : cart.find(item => item.articleNumber === 'MC');
174
139
  return /*#__PURE__*/_react.default.createElement("div", {
175
140
  className: (0, _helpers__.withStyle)("col-lg mt-3")
176
141
  }, /*#__PURE__*/_react.default.createElement(_TogglableCard.default, {
@@ -3,7 +3,6 @@
3
3
  require("core-js/modules/es.symbol.description.js");
4
4
  require("core-js/modules/es.array.includes.js");
5
5
  require("core-js/modules/es.array.sort.js");
6
- require("core-js/modules/es.json.stringify.js");
7
6
  require("core-js/modules/es.string.includes.js");
8
7
  require("core-js/modules/es.weak-map.js");
9
8
  require("core-js/modules/esnext.iterator.constructor.js");
@@ -18,7 +17,6 @@ exports.default = void 0;
18
17
  require("core-js/modules/es.symbol.description.js");
19
18
  require("core-js/modules/es.array.includes.js");
20
19
  require("core-js/modules/es.array.sort.js");
21
- require("core-js/modules/es.json.stringify.js");
22
20
  require("core-js/modules/es.string.includes.js");
23
21
  require("core-js/modules/esnext.iterator.constructor.js");
24
22
  require("core-js/modules/esnext.iterator.map.js");
@@ -27,18 +25,17 @@ require("core-js/modules/web.dom-collections.iterator.js");
27
25
  var _react = _interopRequireWildcard(require("react"));
28
26
  var _reactRouter = require("react-router");
29
27
  var _logoPrimary = _interopRequireDefault(require("../../../public/assets/images/logo-primary.png"));
30
- var _queries = require("../__api__/queries");
28
+ var _CheckboxInput = _interopRequireDefault(require("../__components__/Form/CheckboxInput"));
31
29
  var _ProductCard = _interopRequireDefault(require("../__components__/ProductCard"));
32
30
  var _FullPageSpinner = _interopRequireDefault(require("../__components__/Spinners/FullPageSpinner"));
33
31
  var _constants__ = require("../__constants__");
34
32
  var _FormulaContext = require("../__context__/FormulaContext");
35
- var _useIsTmg = require("../__hooks__/useIsTmg");
36
33
  var _OrderSessionContext = require("../__context__/OrderSessionContext");
37
34
  var _helpers__ = require("../__helpers__");
38
35
  var _image = require("../__helpers__/image");
39
36
  var _product = require("../__helpers__/product");
37
+ var _useIsTmg = require("../__hooks__/useIsTmg");
40
38
  var _BoardComputerCard = _interopRequireDefault(require("./BoardComputerCard"));
41
- var _CheckboxInput = _interopRequireDefault(require("../__components__/Form/CheckboxInput"));
42
39
  function _interopRequireDefault(e) {
43
40
  return e && e.__esModule ? e : {
44
41
  default: e
@@ -69,65 +66,28 @@ function _interopRequireWildcard(e, r) {
69
66
  }
70
67
  return n.default = e, t && t.set(e, n), n;
71
68
  }
72
- const ProductsOverview = () => {
69
+ const ProductsOverview = _ref => {
73
70
  var _products$Trekhaak, _products$Kabelset, _products$Combiset;
71
+ let {
72
+ products,
73
+ isLoadingProducts
74
+ } = _ref;
74
75
  const isProductsInitialLoad = (0, _react.useRef)(true);
75
76
  const formula = (0, _FormulaContext.useFormula)();
76
77
  const isTmg = (0, _useIsTmg.useIsTmg)();
77
78
  const [skipFilters, setSkipFilters] = (0, _react.useState)(false);
78
79
  const [{
79
- licensePlate,
80
- model,
81
- executionAnswer1,
82
- executionAnswer2,
83
- durationAnswer,
84
80
  selectedTowbar,
85
81
  selectedCableset,
86
82
  selectedCombiset,
87
- selectedExtras,
88
83
  selectedBoardComputer,
89
- isBoardComputerDeselected,
90
- discountCode,
91
- priceCalculationDate
84
+ isBoardComputerDeselected
92
85
  }, dispatch] = (0, _OrderSessionContext.useOrderSession)();
93
- const cartInput = (0, _product.validateCartInput)([{
94
- articleNumber: selectedCableset,
95
- quantity: 1
96
- }, {
97
- articleNumber: selectedCombiset,
98
- quantity: 1
99
- }, {
100
- articleNumber: selectedTowbar,
101
- quantity: 1
102
- }, ...Object.entries(selectedExtras).map(_ref => {
103
- let [extraArticleNumber, extraQuantity] = _ref;
104
- return {
105
- articleNumber: extraArticleNumber,
106
- quantity: extraQuantity
107
- };
108
- })]);
109
- const {
110
- products,
111
- isLoadingProducts,
112
- isProductsError
113
- } = (0, _queries.useProductsQuery)({
114
- licensePlate,
115
- model,
116
- executionAnswer1,
117
- executionAnswer2,
118
- durationAnswer: durationAnswer,
119
- selectBoardComputerUpdate: selectedBoardComputer != null,
120
- cart: cartInput ? JSON.stringify(cartInput) : undefined,
121
- formula,
122
- discountCode,
123
- priceCalculationDate,
124
- skipFilters
125
- });
126
86
  if (isLoadingProducts && isProductsInitialLoad.current === true) {
127
87
  isProductsInitialLoad.current = false;
128
88
  return /*#__PURE__*/_react.default.createElement(_FullPageSpinner.default, null);
129
89
  }
130
- if (isProductsError || !isLoadingProducts && (!(products !== null && products !== void 0 && (_products$Trekhaak = products.Trekhaak) !== null && _products$Trekhaak !== void 0 && _products$Trekhaak.length) || !(products !== null && products !== void 0 && (_products$Kabelset = products.Kabelset) !== null && _products$Kabelset !== void 0 && _products$Kabelset.length)) && !(products !== null && products !== void 0 && (_products$Combiset = products.Combiset) !== null && _products$Combiset !== void 0 && _products$Combiset.length)) {
90
+ if (!isLoadingProducts && !(products !== null && products !== void 0 && (_products$Trekhaak = products.Trekhaak) !== null && _products$Trekhaak !== void 0 && _products$Trekhaak.length) && !(products !== null && products !== void 0 && (_products$Kabelset = products.Kabelset) !== null && _products$Kabelset !== void 0 && _products$Kabelset.length) && !(products !== null && products !== void 0 && (_products$Combiset = products.Combiset) !== null && _products$Combiset !== void 0 && _products$Combiset.length)) {
131
91
  return /*#__PURE__*/_react.default.createElement(_reactRouter.Redirect, {
132
92
  to: "/configurator/geen-producten"
133
93
  });
@@ -11,7 +11,6 @@ require("core-js/modules/web.dom-collections.iterator.js");
11
11
  var _lodash = require("lodash");
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
  var _reactRouter = require("react-router");
14
- var _queries = require("../__api__/queries");
15
14
  var _LinkButton = _interopRequireDefault(require("../__components__/Buttons/LinkButton"));
16
15
  var _ExpandableCard = _interopRequireDefault(require("../__components__/Cards/ExpandableCard"));
17
16
  var _LicensePlateInput = _interopRequireDefault(require("../__components__/Form/LicensePlateInput"));
@@ -26,36 +25,18 @@ function _interopRequireDefault(e) {
26
25
  }
27
26
  const VehicleData = _ref => {
28
27
  let {
29
- isFilter = false
28
+ isFilter = false,
29
+ vehicleDetails,
30
+ vehicleLogo
30
31
  } = _ref;
31
32
  const [{
32
33
  licensePlate,
33
- model,
34
- executionAnswer1,
35
- executionAnswer2,
36
- durationAnswer,
37
- discountCode,
38
- priceCalculationDate,
39
- singleOrderFormulaCode,
40
- existingDossierId
34
+ singleOrderFormulaCode
41
35
  }] = (0, _OrderSessionContext.useOrderSession)();
42
36
  let formula = (0, _FormulaContext.useFormula)();
43
37
  if (isFilter && singleOrderFormulaCode) {
44
38
  formula = singleOrderFormulaCode;
45
39
  }
46
- const {
47
- vehicleDetails,
48
- vehicleLogo
49
- } = (0, _queries.useProductsQuery)({
50
- licensePlate,
51
- model,
52
- executionAnswer1,
53
- executionAnswer2,
54
- durationAnswer: durationAnswer,
55
- formula,
56
- discountCode,
57
- priceCalculationDate
58
- });
59
40
  const history = (0, _reactRouter.useHistory)();
60
41
  return /*#__PURE__*/_react.default.createElement(_ExpandableCard.default, {
61
42
  title: isFilter ? 'Voertuig' : 'Uw voertuig',
@@ -141,8 +141,16 @@ const fetchArticlesByLicensePlateAndModel = async (filters, formula, branchId) =
141
141
  return value;
142
142
  }).filter(Array.isArray);
143
143
  const modelArticles = articleArrays.flatMap(articles => articles.map(formatModelArticle));
144
+ const articleNumbers = modelArticles.map(article => article.articleNumber);
145
+ const articlesByArticleNumbers = await fetchArticlesByArticleNumbers(articleNumbers);
146
+ const articlesWithParts = modelArticles.map(article => {
147
+ var _articlesByArticleNum;
148
+ return _objectSpread(_objectSpread({}, article), {}, {
149
+ parts: (_articlesByArticleNum = articlesByArticleNumbers.articles.find(a => a.articleNumber === article.articleNumber)) === null || _articlesByArticleNum === void 0 ? void 0 : _articlesByArticleNum.parts
150
+ });
151
+ });
144
152
  return {
145
- articles: modelArticles,
153
+ articles: articlesWithParts,
146
154
  totalCount: modelArticles.length
147
155
  };
148
156
  };
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.json.stringify.js");
4
+ require("core-js/modules/esnext.iterator.map.js");
5
+ require("core-js/modules/web.dom-collections.iterator.js");
3
6
  Object.defineProperty(exports, "__esModule", {
4
7
  value: true
5
8
  });
6
9
  exports.default = void 0;
10
+ require("core-js/modules/es.json.stringify.js");
11
+ require("core-js/modules/esnext.iterator.map.js");
12
+ require("core-js/modules/web.dom-collections.iterator.js");
7
13
  var _react = _interopRequireDefault(require("react"));
14
+ var _queries = require("../../__api__/queries");
8
15
  var _Header = _interopRequireDefault(require("../../__components__/Header"));
9
16
  var _NavigationSteps = _interopRequireDefault(require("../../__components__/NavigationSteps"));
10
17
  var _constants__ = require("../../__constants__");
11
18
  var _BottomNavigationBar = _interopRequireDefault(require("../../__containers__/BottomNavigationBar"));
12
19
  var _internal = require("../../__containers__/internal");
20
+ var _InternalPriceCalculationSelector = _interopRequireDefault(require("../../__containers__/internal/InternalPriceCalculationSelector"));
13
21
  var _ProductCartSide = _interopRequireDefault(require("../../__containers__/ProductCartSide"));
14
22
  var _ProductsOverview = _interopRequireDefault(require("../../__containers__/ProductsOverview"));
15
23
  var _VehicleData = _interopRequireDefault(require("../../__containers__/VehicleData"));
16
24
  var _FormulaContext = require("../../__context__/FormulaContext");
25
+ var _OrderSessionContext = require("../../__context__/OrderSessionContext");
17
26
  var _helpers__ = require("../../__helpers__");
18
- var _InternalPriceCalculationSelector = _interopRequireDefault(require("../../__containers__/internal/InternalPriceCalculationSelector"));
27
+ var _product = require("../../__helpers__/product");
19
28
  function _interopRequireDefault(e) {
20
29
  return e && e.__esModule ? e : {
21
30
  default: e
@@ -23,6 +32,55 @@ function _interopRequireDefault(e) {
23
32
  }
24
33
  const InternalProductsPage = () => {
25
34
  const formula = (0, _FormulaContext.useFormula)();
35
+ const [{
36
+ licensePlate,
37
+ model,
38
+ executionAnswer1,
39
+ executionAnswer2,
40
+ durationAnswer,
41
+ selectedTowbar,
42
+ selectedCableset,
43
+ selectedCombiset,
44
+ selectedBoardComputer,
45
+ selectedExtras,
46
+ discountCode,
47
+ priceCalculationDate
48
+ }] = (0, _OrderSessionContext.useOrderSession)();
49
+ const cartInput = (0, _product.validateCartInput)([{
50
+ articleNumber: selectedCableset,
51
+ quantity: 1
52
+ }, {
53
+ articleNumber: selectedCombiset,
54
+ quantity: 1
55
+ }, {
56
+ articleNumber: selectedTowbar,
57
+ quantity: 1
58
+ }, ...Object.entries(selectedExtras).map(_ref => {
59
+ let [extraArticleNumber, extraQuantity] = _ref;
60
+ return {
61
+ articleNumber: extraArticleNumber,
62
+ quantity: extraQuantity
63
+ };
64
+ })]);
65
+ const {
66
+ products,
67
+ cart,
68
+ totals,
69
+ vehicleDetails,
70
+ vehicleLogo,
71
+ isLoadingProducts
72
+ } = (0, _queries.useProductsQuery)({
73
+ licensePlate,
74
+ model,
75
+ executionAnswer1,
76
+ executionAnswer2,
77
+ durationAnswer,
78
+ selectBoardComputerUpdate: selectedBoardComputer != null,
79
+ cart: cartInput ? JSON.stringify(cartInput) : undefined,
80
+ formula,
81
+ discountCode,
82
+ priceCalculationDate
83
+ });
26
84
  return /*#__PURE__*/_react.default.createElement("div", {
27
85
  className: (0, _helpers__.withStyle)('vh-100')
28
86
  }, /*#__PURE__*/_react.default.createElement(_internal.InternalCancelDossierEdit, null), /*#__PURE__*/_react.default.createElement(_Header.default, {
@@ -40,8 +98,20 @@ const InternalProductsPage = () => {
40
98
  className: (0, _helpers__.withStyle)('row gx-5 mt-3 mt-lg-5')
41
99
  }, /*#__PURE__*/_react.default.createElement("div", {
42
100
  className: (0, _helpers__.withStyle)("col-xxl")
43
- }, /*#__PURE__*/_react.default.createElement(_ProductsOverview.default, null)), /*#__PURE__*/_react.default.createElement("div", {
101
+ }, /*#__PURE__*/_react.default.createElement(_ProductsOverview.default, {
102
+ products: products,
103
+ isLoadingProducts: isLoadingProducts
104
+ })), /*#__PURE__*/_react.default.createElement("div", {
44
105
  className: (0, _helpers__.withStyle)("sidebar col-xxl-auto col-lg-12 pt-5")
45
- }, APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalPriceCalculationSelector.default, null), /*#__PURE__*/_react.default.createElement(_VehicleData.default, null), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, null)))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
106
+ }, APP_CONFIG.internal && /*#__PURE__*/_react.default.createElement(_InternalPriceCalculationSelector.default, null), /*#__PURE__*/_react.default.createElement(_VehicleData.default, {
107
+ vehicleDetails: vehicleDetails,
108
+ vehicleLogo: vehicleLogo,
109
+ isFilter: false
110
+ }), /*#__PURE__*/_react.default.createElement(_ProductCartSide.default, {
111
+ products: products,
112
+ cart: cart,
113
+ totals: totals,
114
+ isLoadingProducts: isLoadingProducts
115
+ })))), /*#__PURE__*/_react.default.createElement(_BottomNavigationBar.default, null)));
46
116
  };
47
117
  var _default = exports.default = InternalProductsPage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.138",
3
+ "version": "0.0.140",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",