thm-p3-configurator 0.0.393 → 0.0.394

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 (41) hide show
  1. package/dist/src/shared/__components__/ProductCard/index.js +228 -0
  2. package/dist/src/shared/__components__/ProductTable/ProductTableEditableRow.js +66 -0
  3. package/dist/src/shared/__components__/ProductTable/ProductTableHead.js +32 -0
  4. package/dist/src/shared/__components__/ProductTable/ProductTableSection.js +25 -0
  5. package/dist/src/shared/__components__/ProductTable/ProductTableSectionTotal.js +46 -0
  6. package/dist/src/shared/__components__/ProductTable/ProductTableStaticRow.js +47 -0
  7. package/dist/src/shared/__components__/ProductTable/ProductTableTotal.js +41 -0
  8. package/dist/src/shared/__components__/ProductTable/index.js +127 -0
  9. package/dist/src/shared/__components__/SingleOrderCartCard.js +79 -0
  10. package/dist/src/shared/__components__/SingleOrderProductCard.js +356 -0
  11. package/dist/src/shared/__components__/Spinners/FullPageSpinner.js +73 -0
  12. package/dist/src/shared/__components__/Spinners/InlineSpinner.js +26 -0
  13. package/dist/src/shared/__components__/Spinners/TextSpinner.js +31 -0
  14. package/dist/src/shared/__components__/UspsList.js +27 -0
  15. package/dist/src/shared/__components__/internal/InternalCustomerDetailsForm.js +990 -0
  16. package/dist/src/shared/__constants__/__tests__/index.test.js +20 -0
  17. package/dist/src/shared/__constants__/cartTable.js +35 -0
  18. package/dist/src/shared/__constants__/cookiebot.js +7 -0
  19. package/dist/src/shared/__constants__/index.js +380 -0
  20. package/dist/src/shared/__constants__/sentry.js +20 -0
  21. package/dist/src/shared/__containers__/ANWBMembershipInput.js +170 -0
  22. package/dist/src/shared/__containers__/AppointmentForm.js +535 -0
  23. package/dist/src/shared/__containers__/BoardComputerCard.js +139 -0
  24. package/dist/src/shared/__containers__/BottomNavigationBar.js +182 -0
  25. package/dist/src/shared/__containers__/DiscountProductsSelector.js +151 -0
  26. package/dist/src/shared/__containers__/ExitIntentModal.js +403 -0
  27. package/dist/src/shared/__containers__/ExtraProductsOverview.js +202 -0
  28. package/dist/src/shared/__containers__/LicensePlateForm.js +169 -0
  29. package/dist/src/shared/__containers__/ManualSelectionForm.js +277 -0
  30. package/dist/src/shared/__containers__/ProductCartSide.js +362 -0
  31. package/dist/src/shared/__containers__/ProductDiscountCard.js +169 -0
  32. package/dist/src/shared/__containers__/ProductsCartOverview.js +914 -0
  33. package/dist/src/shared/__containers__/ProductsOverview.js +440 -0
  34. package/dist/src/shared/__containers__/QuestionsForm.js +494 -0
  35. package/dist/src/shared/__containers__/QuotationForm.js +520 -0
  36. package/dist/src/shared/__containers__/QuotationSuccessModal.js +34 -0
  37. package/dist/src/shared/__containers__/SentryWrapper.js +60 -0
  38. package/dist/src/shared/__containers__/StyleWrapper.js +81 -0
  39. package/dist/src/shared/__containers__/VehicleData.js +218 -0
  40. package/dist/src/shared/__containers__/internal/DirectVehicleSelectorModal.js +125 -0
  41. package/package.json +1 -1
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ require("core-js/modules/esnext.iterator.constructor.js");
5
+ require("core-js/modules/esnext.iterator.filter.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
7
+ require("core-js/modules/esnext.iterator.map.js");
8
+ require("core-js/modules/web.dom-collections.iterator.js");
9
+ require("core-js/modules/es.weak-map.js");
10
+ require("core-js/modules/esnext.iterator.constructor.js");
11
+ require("core-js/modules/esnext.iterator.filter.js");
12
+ require("core-js/modules/esnext.iterator.for-each.js");
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.default = void 0;
17
+ require("core-js/modules/esnext.iterator.map.js");
18
+ require("core-js/modules/web.dom-collections.iterator.js");
19
+ var _react = _interopRequireWildcard(require("react"));
20
+ var _queries = require("../../__api__/queries");
21
+ var _constants__ = require("../../__constants__");
22
+ var _helpers__ = require("../../__helpers__");
23
+ var _singleOrderArticles = require("../../__helpers__/singleOrderArticles");
24
+ var _ProductCardCheckbox = _interopRequireDefault(require("./ProductCardCheckbox"));
25
+ var _ProductCardDescription = _interopRequireDefault(require("./ProductCardDescription"));
26
+ var _ProductCardDiscountAlert = _interopRequireDefault(require("./ProductCardDiscountAlert"));
27
+ var _ProductCardImage = _interopRequireDefault(require("./ProductCardImage"));
28
+ var _ProductCardPrice = _interopRequireDefault(require("./ProductCardPrice"));
29
+ var _ProductCardRibbon = _interopRequireDefault(require("./ProductCardRibbon"));
30
+ var _ProductCardSpecifications = _interopRequireDefault(require("./ProductCardSpecifications"));
31
+ var _ProductCardUsps = _interopRequireDefault(require("./ProductCardUsps"));
32
+ function _interopRequireDefault(e) {
33
+ return e && e.__esModule ? e : {
34
+ default: e
35
+ };
36
+ }
37
+ function _getRequireWildcardCache(e) {
38
+ if ("function" != typeof WeakMap) return null;
39
+ var r = new WeakMap(),
40
+ t = new WeakMap();
41
+ return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
42
+ return e ? t : r;
43
+ })(e);
44
+ }
45
+ function _interopRequireWildcard(e, r) {
46
+ if (!r && e && e.__esModule) return e;
47
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
48
+ default: e
49
+ };
50
+ var t = _getRequireWildcardCache(r);
51
+ if (t && t.has(e)) return t.get(e);
52
+ var n = {
53
+ __proto__: null
54
+ },
55
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
56
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
57
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
58
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
59
+ }
60
+ return n.default = e, t && t.set(e, n), n;
61
+ }
62
+ function ownKeys(e, r) {
63
+ var t = Object.keys(e);
64
+ if (Object.getOwnPropertySymbols) {
65
+ var o = Object.getOwnPropertySymbols(e);
66
+ r && (o = o.filter(function (r) {
67
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
68
+ })), t.push.apply(t, o);
69
+ }
70
+ return t;
71
+ }
72
+ function _objectSpread(e) {
73
+ for (var r = 1; r < arguments.length; r++) {
74
+ var t = null != arguments[r] ? arguments[r] : {};
75
+ r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
76
+ _defineProperty(e, r, t[r]);
77
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
78
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
79
+ });
80
+ }
81
+ return e;
82
+ }
83
+ function _defineProperty(e, r, t) {
84
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
85
+ value: t,
86
+ enumerable: !0,
87
+ configurable: !0,
88
+ writable: !0
89
+ }) : e[r] = t, e;
90
+ }
91
+ function _toPropertyKey(t) {
92
+ var i = _toPrimitive(t, "string");
93
+ return "symbol" == typeof i ? i : i + "";
94
+ }
95
+ function _toPrimitive(t, r) {
96
+ if ("object" != typeof t || !t) return t;
97
+ var e = t[Symbol.toPrimitive];
98
+ if (void 0 !== e) {
99
+ var i = e.call(t, r || "default");
100
+ if ("object" != typeof i) return i;
101
+ throw new TypeError("@@toPrimitive must return a primitive value.");
102
+ }
103
+ return ("string" === r ? String : Number)(t);
104
+ }
105
+ const ProductCard = _ref => {
106
+ var _normalizedStock$quan, _normalizedStock$quan2;
107
+ let {
108
+ hasCheckbox = true,
109
+ isRecommended = false,
110
+ productId,
111
+ productTitle,
112
+ productDescription,
113
+ stock = null,
114
+ productUsps = [],
115
+ productImage = null,
116
+ isDisabled = false,
117
+ defaultSelected = false,
118
+ productPrice = null,
119
+ productDiscountedPrice = null,
120
+ productDiscountedLabel = null,
121
+ productSpecifications = [],
122
+ showPrice = false,
123
+ canUnselect = true,
124
+ onSelect = () => {},
125
+ onDescriptionToggle = () => {},
126
+ isOnlyProductInCategory = false,
127
+ isAnotherProductSelected = true,
128
+ isTmg = false,
129
+ isBoardComputer = false
130
+ } = _ref;
131
+ const [isSelected, setIsSelected] = (0, _react.useState)(defaultSelected);
132
+ const {
133
+ productFieldLabels
134
+ } = (0, _queries.useProductFieldLabels)();
135
+ const normalizedStock = stock && stock.status ? _objectSpread(_objectSpread({}, stock), {}, {
136
+ status: (0, _singleOrderArticles.mapApiStockStatusToStockStatus)(stock.status)
137
+ }) : stock;
138
+ const handleSelected = isSelected => {
139
+ if (!canUnselect && !isSelected) {
140
+ // Do not update local state, only call onSelect
141
+ onSelect({
142
+ isSelected: isSelected
143
+ });
144
+ return;
145
+ }
146
+ setIsSelected(isSelected);
147
+ onSelect({
148
+ productId,
149
+ isSelected: isSelected
150
+ });
151
+ };
152
+ (0, _react.useEffect)(() => {
153
+ setIsSelected(defaultSelected);
154
+ }, [defaultSelected]);
155
+ (0, _react.useEffect)(() => {
156
+ if (isOnlyProductInCategory || !isAnotherProductSelected && isRecommended) {
157
+ handleSelected(true);
158
+ }
159
+ }, [isOnlyProductInCategory, isRecommended]);
160
+ return /*#__PURE__*/_react.default.createElement("div", {
161
+ key: productId,
162
+ className: (0, _helpers__.withStyle)("card card__horizontal card__link ".concat(isSelected ? 'active' : '', " container-fluid g-0")),
163
+ disabled: isDisabled,
164
+ onClick: () => handleSelected(!isSelected)
165
+ }, /*#__PURE__*/_react.default.createElement(_ProductCardRibbon.default, {
166
+ isRecommended: isRecommended
167
+ }), /*#__PURE__*/_react.default.createElement("div", {
168
+ className: (0, _helpers__.withStyle)('row g-0')
169
+ }, /*#__PURE__*/_react.default.createElement("div", {
170
+ className: (0, _helpers__.withStyle)('col-md-4 d-flex justify-content-center position-relative')
171
+ }, /*#__PURE__*/_react.default.createElement(_ProductCardImage.default, {
172
+ image: productImage,
173
+ isBoardComputer: isBoardComputer
174
+ }), /*#__PURE__*/_react.default.createElement(_ProductCardDiscountAlert.default, {
175
+ label: productDiscountedLabel,
176
+ price: productDiscountedPrice,
177
+ discountedPrice: productPrice
178
+ })), /*#__PURE__*/_react.default.createElement("div", {
179
+ className: (0, _helpers__.withStyle)("".concat(productImage ? 'col-md-8' : 'col-12', " d-flex flex-wrap"))
180
+ }, /*#__PURE__*/_react.default.createElement("div", {
181
+ className: (0, _helpers__.withStyle)('card-body')
182
+ }, /*#__PURE__*/_react.default.createElement("h5", {
183
+ className: (0, _helpers__.withStyle)('card-title')
184
+ }, productTitle, showPrice && /*#__PURE__*/_react.default.createElement("div", {
185
+ className: (0, _helpers__.withStyle)('col-12 col-md-auto d-flex flex-xxl-column my-2 my-xxl-0')
186
+ }, /*#__PURE__*/_react.default.createElement(_ProductCardPrice.default, {
187
+ price: productDiscountedPrice < productPrice ? productPrice : productDiscountedPrice,
188
+ discountedPrice: productDiscountedPrice < productPrice ? productDiscountedPrice : productPrice
189
+ }))), /*#__PURE__*/_react.default.createElement("div", {
190
+ className: (0, _helpers__.withStyle)('card-text row no-gutters flex-wrap align-items-bottom justify-content-start')
191
+ }, /*#__PURE__*/_react.default.createElement(_ProductCardUsps.default, {
192
+ usps: productUsps
193
+ }), /*#__PURE__*/_react.default.createElement(_ProductCardSpecifications.default, {
194
+ specifications: [...(productId ? [{
195
+ key: 'Artikel',
196
+ value: productId
197
+ }] : []), ...productSpecifications.map(_ref2 => {
198
+ let {
199
+ key,
200
+ value
201
+ } = _ref2;
202
+ return {
203
+ key: (productFieldLabels === null || productFieldLabels === void 0 ? void 0 : productFieldLabels[key]) || key,
204
+ value
205
+ };
206
+ })],
207
+ excludeKeys: ['brand', 'brandName']
208
+ }), /*#__PURE__*/_react.default.createElement(_ProductCardDescription.default, {
209
+ description: productDescription,
210
+ onDescriptionToggle: onDescriptionToggle
211
+ })), /*#__PURE__*/_react.default.createElement("div", {
212
+ className: (0, _helpers__.withStyle)('card-footer pt-2 col-12 col-md-8 col-xxl-6 pb-0 justify-content-end')
213
+ }, /*#__PURE__*/_react.default.createElement("div", {
214
+ className: (0, _helpers__.withStyle)('d-flex flex-column align-items-end')
215
+ }, showPrice && normalizedStock && /*#__PURE__*/_react.default.createElement("div", null, normalizedStock.status === _constants__.StockStatus.OutOfStock ? /*#__PURE__*/_react.default.createElement("div", {
216
+ className: (0, _helpers__.withStyle)('text-danger mb-1')
217
+ }, "Niet op voorraad") : normalizedStock.status === _constants__.StockStatus.InsufficientStock ? /*#__PURE__*/_react.default.createElement("div", {
218
+ className: (0, _helpers__.withStyle)('text-warning mb-1')
219
+ }, isTmg ? "".concat((_normalizedStock$quan = normalizedStock.quantity) !== null && _normalizedStock$quan !== void 0 ? _normalizedStock$quan : 0, " op voorraad") : 'Weinig op voorraad') : /*#__PURE__*/_react.default.createElement("div", {
220
+ className: (0, _helpers__.withStyle)('text-success mb-1')
221
+ }, isTmg ? "".concat((_normalizedStock$quan2 = normalizedStock.quantity) !== null && _normalizedStock$quan2 !== void 0 ? _normalizedStock$quan2 : 0, " op voorraad") : 'Op voorraad')), hasCheckbox && /*#__PURE__*/_react.default.createElement(_ProductCardCheckbox.default, {
222
+ id: productId,
223
+ isDisabled: isDisabled,
224
+ defaultChecked: isSelected,
225
+ isTmg: isTmg
226
+ })))))));
227
+ };
228
+ var _default = exports.default = ProductCard;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/esnext.iterator.map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _logoPrimary = _interopRequireDefault(require("../../../../public/assets/images/logo-primary.svg"));
11
+ var _helpers__ = require("../../__helpers__");
12
+ var _NumericInput = _interopRequireDefault(require("../Form/NumericInput"));
13
+ function _interopRequireDefault(e) {
14
+ return e && e.__esModule ? e : {
15
+ default: e
16
+ };
17
+ }
18
+ const ProductTableEditableRow = _ref => {
19
+ let {
20
+ productImage,
21
+ productTitle,
22
+ productAmount = 1,
23
+ extraCells = [],
24
+ onEdit,
25
+ onRemove,
26
+ isDisabled,
27
+ canAlterQuantity = true
28
+ } = _ref;
29
+ return /*#__PURE__*/_react.default.createElement("tr", {
30
+ className: (0, _helpers__.withStyle)('cart__table-product')
31
+ }, /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("div", {
32
+ className: (0, _helpers__.withStyle)('cart__product row align-items-center justify-content-between')
33
+ }, /*#__PURE__*/_react.default.createElement("div", {
34
+ className: (0, _helpers__.withStyle)('col-12')
35
+ }, /*#__PURE__*/_react.default.createElement("img", {
36
+ className: (0, _helpers__.withStyle)('img-fluid rounded-1'),
37
+ src: productImage || _logoPrimary.default,
38
+ alt: "product"
39
+ })), /*#__PURE__*/_react.default.createElement("div", {
40
+ className: (0, _helpers__.withStyle)('col')
41
+ }, /*#__PURE__*/_react.default.createElement("p", null, productTitle), /*#__PURE__*/_react.default.createElement("div", {
42
+ className: (0, _helpers__.withStyle)('row mt-0 flex-row flex-md-column flex-wrap flex-md-nowrap')
43
+ }, /*#__PURE__*/_react.default.createElement("div", {
44
+ className: (0, _helpers__.withStyle)('d-flex col-12 align-items-center')
45
+ }, canAlterQuantity && /*#__PURE__*/_react.default.createElement(_NumericInput.default, {
46
+ defaultValue: productAmount,
47
+ isDisabled: false,
48
+ onChange: onEdit,
49
+ min: 0,
50
+ max: 99
51
+ }), /*#__PURE__*/_react.default.createElement("button", {
52
+ onClick: onRemove,
53
+ disabled: isDisabled,
54
+ className: (0, _helpers__.withStyle)('link-primary license-plate__edit')
55
+ }, "Verwijder")))))), extraCells.map((_ref2, index) => {
56
+ let {
57
+ className = '',
58
+ text = ''
59
+ } = _ref2;
60
+ return /*#__PURE__*/_react.default.createElement("td", {
61
+ key: "product-table-product-static-".concat(text, "-").concat(index),
62
+ className: (0, _helpers__.withStyle)(className)
63
+ }, text);
64
+ }));
65
+ };
66
+ var _default = exports.default = ProductTableEditableRow;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/esnext.iterator.map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _helpers__ = require("../../__helpers__");
11
+ function _interopRequireDefault(e) {
12
+ return e && e.__esModule ? e : {
13
+ default: e
14
+ };
15
+ }
16
+ const ProductTableHead = _ref => {
17
+ let {
18
+ columns
19
+ } = _ref;
20
+ return /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, columns.map((_ref2, index) => {
21
+ let {
22
+ className = '',
23
+ text = ''
24
+ } = _ref2;
25
+ return /*#__PURE__*/_react.default.createElement("th", {
26
+ key: "".concat(text, "-table-head-").concat(index),
27
+ className: (0, _helpers__.withStyle)(className),
28
+ scope: "col"
29
+ }, text);
30
+ })));
31
+ };
32
+ var _default = exports.default = ProductTableHead;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _helpers__ = require("../../__helpers__");
9
+ function _interopRequireDefault(e) {
10
+ return e && e.__esModule ? e : {
11
+ default: e
12
+ };
13
+ }
14
+ const ProductTableSection = _ref => {
15
+ let {
16
+ heading,
17
+ children
18
+ } = _ref;
19
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("tr", {
20
+ className: (0, _helpers__.withStyle)('cart__table-heading')
21
+ }, /*#__PURE__*/_react.default.createElement("th", {
22
+ scope: "row"
23
+ }, /*#__PURE__*/_react.default.createElement("h5", null, heading))), children);
24
+ };
25
+ var _default = exports.default = ProductTableSection;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/esnext.iterator.map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactRouterDom = require("react-router-dom");
11
+ var _helpers__ = require("../../__helpers__");
12
+ function _interopRequireDefault(e) {
13
+ return e && e.__esModule ? e : {
14
+ default: e
15
+ };
16
+ }
17
+ const ProductTableSectionTotal = _ref => {
18
+ let {
19
+ isEditable,
20
+ editLink,
21
+ editLabel,
22
+ onEditClick = () => {},
23
+ extraCells = []
24
+ } = _ref;
25
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isEditable && /*#__PURE__*/_react.default.createElement("tr", {
26
+ className: (0, _helpers__.withStyle)('cart__table-subtotal')
27
+ }, /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("div", {
28
+ className: (0, _helpers__.withStyle)('cart__edit')
29
+ }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, {
30
+ className: "".concat((0, _helpers__.withStyle)('link-primary license-plate__edit')),
31
+ to: editLink,
32
+ onClick: onEditClick
33
+ }, editLabel)))), /*#__PURE__*/_react.default.createElement("tr", {
34
+ className: (0, _helpers__.withStyle)("cart__row--with-border")
35
+ }, extraCells.map((_ref2, index) => {
36
+ let {
37
+ className = '',
38
+ text = ''
39
+ } = _ref2;
40
+ return /*#__PURE__*/_react.default.createElement("td", {
41
+ key: "total-row-".concat(text, "-").concat(index),
42
+ className: (0, _helpers__.withStyle)(className)
43
+ }, text);
44
+ })));
45
+ };
46
+ var _default = exports.default = ProductTableSectionTotal;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/esnext.iterator.map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _logoPrimary = _interopRequireDefault(require("../../../../public/assets/images/logo-primary.svg"));
11
+ var _helpers__ = require("../../__helpers__");
12
+ function _interopRequireDefault(e) {
13
+ return e && e.__esModule ? e : {
14
+ default: e
15
+ };
16
+ }
17
+ const ProductTableStaticRow = _ref => {
18
+ let {
19
+ productImage,
20
+ productTitle,
21
+ productSubtitle,
22
+ extraCells
23
+ } = _ref;
24
+ return /*#__PURE__*/_react.default.createElement("tr", {
25
+ className: (0, _helpers__.withStyle)('cart__table-product')
26
+ }, /*#__PURE__*/_react.default.createElement("td", null, /*#__PURE__*/_react.default.createElement("div", {
27
+ className: (0, _helpers__.withStyle)('cart__product row align-items-center justify-content-between')
28
+ }, /*#__PURE__*/_react.default.createElement("div", {
29
+ className: (0, _helpers__.withStyle)('col-12')
30
+ }, /*#__PURE__*/_react.default.createElement("img", {
31
+ className: (0, _helpers__.withStyle)('img-fluid rounded-1'),
32
+ src: productImage || _logoPrimary.default,
33
+ alt: "product"
34
+ })), /*#__PURE__*/_react.default.createElement("div", {
35
+ className: (0, _helpers__.withStyle)('col')
36
+ }, /*#__PURE__*/_react.default.createElement("p", null, productTitle, productSubtitle && /*#__PURE__*/_react.default.createElement("span", null, " - ", productSubtitle))))), extraCells.map((_ref2, index) => {
37
+ let {
38
+ className = '',
39
+ text = ''
40
+ } = _ref2;
41
+ return /*#__PURE__*/_react.default.createElement("td", {
42
+ key: "product-table-product-static-".concat(text, "-").concat(index),
43
+ className: (0, _helpers__.withStyle)(className)
44
+ }, text);
45
+ }));
46
+ };
47
+ var _default = exports.default = ProductTableStaticRow;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/esnext.iterator.map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/esnext.iterator.map.js");
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _helpers__ = require("../../__helpers__");
11
+ function _interopRequireDefault(e) {
12
+ return e && e.__esModule ? e : {
13
+ default: e
14
+ };
15
+ }
16
+ const ProductTableTotals = _ref => {
17
+ let {
18
+ rows = []
19
+ } = _ref;
20
+ if (!rows.length) {
21
+ return null;
22
+ }
23
+ return rows.map(function () {
24
+ let cells = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
25
+ let key = arguments.length > 1 ? arguments[1] : undefined;
26
+ return /*#__PURE__*/_react.default.createElement("tr", {
27
+ key: key,
28
+ className: (0, _helpers__.withStyle)('cart__table-total')
29
+ }, cells.map((_ref2, index) => {
30
+ let {
31
+ className = '',
32
+ text = ''
33
+ } = _ref2;
34
+ return /*#__PURE__*/_react.default.createElement("td", {
35
+ key: "product-table-totals-".concat(text, "-").concat(index),
36
+ className: (0, _helpers__.withStyle)(className)
37
+ }, text);
38
+ }));
39
+ });
40
+ };
41
+ var _default = exports.default = ProductTableTotals;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.includes.js");
4
+ require("core-js/modules/es.string.includes.js");
5
+ require("core-js/modules/esnext.iterator.map.js");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ require("core-js/modules/es.array.includes.js");
11
+ require("core-js/modules/es.string.includes.js");
12
+ require("core-js/modules/esnext.iterator.map.js");
13
+ var _react = _interopRequireDefault(require("react"));
14
+ var _helpers__ = require("../../__helpers__");
15
+ var _TogglableCard = _interopRequireDefault(require("../Cards/TogglableCard"));
16
+ var _ProductTableEditableRow = _interopRequireDefault(require("./ProductTableEditableRow"));
17
+ var _ProductTableHead = _interopRequireDefault(require("./ProductTableHead"));
18
+ var _ProductTableSection = _interopRequireDefault(require("./ProductTableSection"));
19
+ var _ProductTableSectionTotal = _interopRequireDefault(require("./ProductTableSectionTotal"));
20
+ var _ProductTableStaticRow = _interopRequireDefault(require("./ProductTableStaticRow"));
21
+ var _ProductTableTotal = _interopRequireDefault(require("./ProductTableTotal"));
22
+ var _OrderSessionContext = require("../../__context__/OrderSessionContext");
23
+ function _interopRequireDefault(e) {
24
+ return e && e.__esModule ? e : {
25
+ default: e
26
+ };
27
+ }
28
+ const ProductTable = _ref => {
29
+ let {
30
+ staticProducts = [],
31
+ editableProducts = [],
32
+ canAlterQuantity = true
33
+ } = _ref;
34
+ const {
35
+ selectedBranch,
36
+ allArticleNumbers
37
+ } = (0, _OrderSessionContext.useOrderSession)();
38
+ return /*#__PURE__*/_react.default.createElement("div", {
39
+ className: (0, _helpers__.withStyle)("content col-lg")
40
+ }, /*#__PURE__*/_react.default.createElement(_TogglableCard.default, {
41
+ title: 'Overzicht',
42
+ untoggleButton: selectedBranch ? 'Verberg inkoopprijzen' : undefined,
43
+ toggleButton: selectedBranch ? 'Toon inkoopprijzen' : undefined,
44
+ onToggle: toggled => console.info('Toggled ' + toggled)
45
+ }, /*#__PURE__*/_react.default.createElement("table", {
46
+ className: (0, _helpers__.withStyle)('cart__table table table-borderless align-middle')
47
+ }, /*#__PURE__*/_react.default.createElement(_ProductTableHead.default, {
48
+ columns: [{}, {}, {}, {}, {
49
+ text: 'Verkoop Prjs',
50
+ className: 'fw-bold text-end'
51
+ }]
52
+ }), /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement(_ProductTableSection.default, {
53
+ heading: 'Trekhaakmontage'
54
+ }, staticProducts.map(_ref2 => {
55
+ let {
56
+ title,
57
+ id,
58
+ image,
59
+ price
60
+ } = _ref2;
61
+ return /*#__PURE__*/_react.default.createElement(_ProductTableStaticRow.default, {
62
+ key: id,
63
+ productTitle: title,
64
+ productImage: image,
65
+ extraCells: [{}, {}, {}, {
66
+ text: (0, _helpers__.formatPrice)(price),
67
+ className: 'cart__table-purchase-price text-end'
68
+ }]
69
+ });
70
+ }), /*#__PURE__*/_react.default.createElement(_ProductTableSectionTotal.default, {
71
+ isEditable: true,
72
+ editLabel: 'Wijzig je trekhaakpakket',
73
+ editLink: '/configurator/trekhaakpakket',
74
+ extraCells: [{}, {}, {}, {
75
+ text: 'Subtotaal (incl. BTW)',
76
+ className: 'fw-bold text-end pb-2'
77
+ }, {
78
+ text: (0, _helpers__.formatPrice)(100),
79
+ className: 'fw-bold text-end pb-2'
80
+ }]
81
+ })), /*#__PURE__*/_react.default.createElement(_ProductTableSection.default, {
82
+ heading: 'Toebehoren'
83
+ }, editableProducts.map(_ref3 => {
84
+ let {
85
+ title,
86
+ image,
87
+ price,
88
+ amount,
89
+ articleNumber
90
+ } = _ref3;
91
+ let canProductBeAltered = canAlterQuantity;
92
+ if (!canAlterQuantity && !(allArticleNumbers !== null && allArticleNumbers !== void 0 && allArticleNumbers.includes(articleNumber))) {
93
+ canProductBeAltered = true;
94
+ }
95
+ return /*#__PURE__*/_react.default.createElement(_ProductTableEditableRow.default, {
96
+ canAlterQuantity: canProductBeAltered,
97
+ productTitle: title,
98
+ productImage: image,
99
+ extraCells: [{}, {}, {}, {
100
+ text: (0, _helpers__.formatPrice)(price),
101
+ className: 'cart__table-purchase-price text-end'
102
+ }],
103
+ productAmount: amount,
104
+ onEdit: () => console.info('Edit'),
105
+ onRemove: () => console.info('Remove'),
106
+ isDisabled: false
107
+ });
108
+ }), /*#__PURE__*/_react.default.createElement(_ProductTableSectionTotal.default, {
109
+ isEditable: false,
110
+ extraCells: [{}, {}, {}, {
111
+ text: 'Subtotaal (incl. BTW)',
112
+ className: 'fw-bold text-end pb-2'
113
+ }, {
114
+ text: (0, _helpers__.formatPrice)(100),
115
+ className: 'fw-bold text-end pb-2'
116
+ }]
117
+ })), /*#__PURE__*/_react.default.createElement(_ProductTableTotal.default, {
118
+ rows: [[{}, {}, {}, {
119
+ text: 'Producten (excl. btw)',
120
+ className: 'fw-bold text-end pt-2'
121
+ }, {
122
+ text: (0, _helpers__.formatPrice)(100),
123
+ className: 'fw-bold text-end pt-2'
124
+ }]]
125
+ })))));
126
+ };
127
+ var _default = exports.default = ProductTable;