@open-tender/store 1.1.21 → 1.1.22

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.
@@ -0,0 +1,11 @@
1
+ import { Order } from '@open-tender/types';
2
+ import { CheckTotalsProps, OrderDetailsItemProps, OrderDetailsProps } from '@open-tender/ui';
3
+ import React, { ReactNode } from 'react';
4
+ declare const OrderDetails: ({ apiUrl, order, children, CheckTotalsView, OrderDetailsItemView }: {
5
+ apiUrl: string;
6
+ order: Order;
7
+ children: (props: OrderDetailsProps) => ReactNode;
8
+ CheckTotalsView: (props: CheckTotalsProps) => ReactNode;
9
+ OrderDetailsItemView: (props: OrderDetailsItemProps) => ReactNode;
10
+ }) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
11
+ export default OrderDetails;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importStar(require("react"));
5
+ var hooks_1 = require("../app/hooks");
6
+ var hooks_2 = require("../hooks");
7
+ var slices_1 = require("../slices");
8
+ var CheckTotals_1 = tslib_1.__importDefault(require("./CheckTotals"));
9
+ var OrderDetailsItem_1 = tslib_1.__importDefault(require("./OrderDetailsItem"));
10
+ var OrderDetails = function (_a) {
11
+ var apiUrl = _a.apiUrl, order = _a.order, children = _a.children, CheckTotalsView = _a.CheckTotalsView, OrderDetailsItemView = _a.OrderDetailsItemView;
12
+ var dispatch = (0, hooks_1.useAppDispatch)();
13
+ var _b = (0, react_1.useState)(null), errMsg = _b[0], setErrMsg = _b[1];
14
+ var _c = (0, react_1.useState)(false), isReordering = _c[0], setIsReordering = _c[1];
15
+ var _d = (0, hooks_2.useOrder)(order), subtitle = _d.title, title = _d.orderNo, requestedAt = _d.requestedAt;
16
+ var _e = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _e.orderDetails, modalContentConfig = _e.modalContent;
17
+ var reorder = function () {
18
+ setErrMsg(null);
19
+ setIsReordering(true);
20
+ dispatch((0, slices_1.reorder)(order.cart));
21
+ };
22
+ var renderCheckTotals = (0, react_1.useCallback)(function () { return react_1.default.createElement(CheckTotals_1.default, { check: order, children: CheckTotalsView }); }, [order, CheckTotalsView]);
23
+ var renderOrderDetailsItem = (0, react_1.useCallback)(function (orderItem) { return (react_1.default.createElement(OrderDetailsItem_1.default, { key: orderItem.id, apiUrl: apiUrl, orderItem: orderItem, children: OrderDetailsItemView })); }, [apiUrl, OrderDetailsItemView]);
24
+ if (!config)
25
+ return react_1.default.createElement(react_1.default.Fragment, null);
26
+ return children({
27
+ config: config,
28
+ modalContentConfig: modalContentConfig,
29
+ renderCheckTotals: renderCheckTotals,
30
+ requestedAt: requestedAt,
31
+ order: order,
32
+ title: title,
33
+ subtitle: subtitle,
34
+ isReordering: isReordering,
35
+ errMsg: errMsg,
36
+ handlers: { reorder: reorder },
37
+ apiUrl: apiUrl,
38
+ renderOrderDetailsItem: renderOrderDetailsItem
39
+ });
40
+ };
41
+ exports.default = OrderDetails;
@@ -0,0 +1,9 @@
1
+ import { OrderItem } from '@open-tender/types';
2
+ import { OrderDetailsItemProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const OrderDetailsItem: ({ apiUrl, orderItem, children }: {
5
+ apiUrl: string;
6
+ orderItem: OrderItem;
7
+ children: (props: OrderDetailsItemProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default OrderDetailsItem;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hooks_1 = require("../app/hooks");
4
+ var slices_1 = require("../slices");
5
+ var OrderDetailsItem = function (_a) {
6
+ var apiUrl = _a.apiUrl, orderItem = _a.orderItem, children = _a.children;
7
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).orderDetailsItem;
8
+ if (!config)
9
+ return null;
10
+ return children({ config: config, orderItem: orderItem, apiUrl: apiUrl });
11
+ };
12
+ exports.default = OrderDetailsItem;
@@ -28,6 +28,8 @@ import ModalHeader from './ModalHeader';
28
28
  import NutritionalInfo from './NutritionalInfo';
29
29
  import Option from './Option';
30
30
  import OrderCard from './OrderCard';
31
+ import OrderDetails from './OrderDetails';
32
+ import OrderDetailsItem from './OrderDetailsItem';
31
33
  import PointsReward from './PointsReward';
32
34
  import PointsRewards from './PointsRewards';
33
35
  import PromoCode from './PromoCode';
@@ -45,4 +47,4 @@ import Tag from './Tag';
45
47
  import TextArea from './TextArea';
46
48
  import UpsellItem from './UpsellItem';
47
49
  import Upsells from './Upsells';
48
- export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
50
+ export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, OrderDetails, OrderDetailsItem, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Upsells = exports.UpsellItem = exports.TextArea = exports.Tag = exports.SuccessMessage = exports.SignInQr = exports.SignInPhone = exports.SignInOptions = exports.SignInCheckout = exports.SignInButton = exports.SignIn = exports.Rewards = exports.Reward = exports.Quantity = exports.PromoCode = exports.PointsRewards = exports.PointsReward = exports.OrderCard = exports.Option = exports.NutritionalInfo = exports.ModalHeader = exports.ModalContent = exports.MenuOther = exports.MenuCategory = exports.MadeForNotes = exports.Loader = exports.ItemSelections = exports.ItemOption = exports.ItemGroups = exports.ItemGroup = exports.Input = exports.Ingredients = exports.Header = exports.ErrorMessage = exports.Discount = exports.CheckTotals = exports.CategoryNavOther = exports.CategoryNavItem = exports.CategoryNav = exports.CategoryItem = exports.CartUpsellItem = exports.CartItem = exports.Cart = exports.Card = exports.ButtonLink = exports.Applied = exports.Allergen = void 0;
3
+ exports.Upsells = exports.UpsellItem = exports.TextArea = exports.Tag = exports.SuccessMessage = exports.SignInQr = exports.SignInPhone = exports.SignInOptions = exports.SignInCheckout = exports.SignInButton = exports.SignIn = exports.Rewards = exports.Reward = exports.Quantity = exports.PromoCode = exports.PointsRewards = exports.PointsReward = exports.OrderDetailsItem = exports.OrderDetails = exports.OrderCard = exports.Option = exports.NutritionalInfo = exports.ModalHeader = exports.ModalContent = exports.MenuOther = exports.MenuCategory = exports.MadeForNotes = exports.Loader = exports.ItemSelections = exports.ItemOption = exports.ItemGroups = exports.ItemGroup = exports.Input = exports.Ingredients = exports.Header = exports.ErrorMessage = exports.Discount = exports.CheckTotals = exports.CategoryNavOther = exports.CategoryNavItem = exports.CategoryNav = exports.CategoryItem = exports.CartUpsellItem = exports.CartItem = exports.Cart = exports.Card = exports.ButtonLink = exports.Applied = exports.Allergen = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var Allergen_1 = tslib_1.__importDefault(require("./Allergen"));
6
6
  exports.Allergen = Allergen_1.default;
@@ -62,6 +62,10 @@ var Option_1 = tslib_1.__importDefault(require("./Option"));
62
62
  exports.Option = Option_1.default;
63
63
  var OrderCard_1 = tslib_1.__importDefault(require("./OrderCard"));
64
64
  exports.OrderCard = OrderCard_1.default;
65
+ var OrderDetails_1 = tslib_1.__importDefault(require("./OrderDetails"));
66
+ exports.OrderDetails = OrderDetails_1.default;
67
+ var OrderDetailsItem_1 = tslib_1.__importDefault(require("./OrderDetailsItem"));
68
+ exports.OrderDetailsItem = OrderDetailsItem_1.default;
65
69
  var PointsReward_1 = tslib_1.__importDefault(require("./PointsReward"));
66
70
  exports.PointsReward = PointsReward_1.default;
67
71
  var PointsRewards_1 = tslib_1.__importDefault(require("./PointsRewards"));
@@ -48,6 +48,9 @@ var modalHeader_1 = tslib_1.__importDefault(require("./modalHeader"));
48
48
  var nutritionalInfo_1 = tslib_1.__importDefault(require("./nutritionalInfo"));
49
49
  var option_1 = tslib_1.__importDefault(require("./option"));
50
50
  var orderCard_1 = tslib_1.__importDefault(require("./orderCard"));
51
+ var orderDetails_1 = tslib_1.__importDefault(require("./orderDetails"));
52
+ var orderDetailsItem_1 = tslib_1.__importDefault(require("./orderDetailsItem"));
53
+ var page_1 = tslib_1.__importDefault(require("./page"));
51
54
  var pointsReward_1 = tslib_1.__importDefault(require("./pointsReward"));
52
55
  var pointsRewards_1 = tslib_1.__importDefault(require("./pointsRewards"));
53
56
  var promoCode_1 = tslib_1.__importDefault(require("./promoCode"));
@@ -113,6 +116,9 @@ var config = {
113
116
  nutritionalInfo: nutritionalInfo_1.default,
114
117
  option: option_1.default,
115
118
  orderCard: orderCard_1.default,
119
+ orderDetails: orderDetails_1.default,
120
+ orderDetailsItem: orderDetailsItem_1.default,
121
+ page: page_1.default,
116
122
  pointsReward: pointsReward_1.default,
117
123
  pointsRewards: pointsRewards_1.default,
118
124
  promoCode: promoCode_1.default,
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const orderDetails: ScreenConfig;
3
+ export default orderDetails;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var styles_1 = tslib_1.__importDefault(require("../styles"));
5
+ var utils_1 = require("../utils");
6
+ var orderDetails = {
7
+ orderDetails__totalsContainer: {
8
+ classes: '',
9
+ props: {},
10
+ style: {
11
+ width: '100%'
12
+ }
13
+ },
14
+ orderDetails__orderNumber: {
15
+ classes: '',
16
+ props: {},
17
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textHeadline), { fontSize: utils_1.theme.fontSizes.xsmall, textTransform: 'uppercase', textAlign: 'center' })
18
+ },
19
+ orderDetails__orderTitle: {
20
+ classes: '',
21
+ props: {},
22
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textHeading), { fontSize: utils_1.theme.fontSizes.xxlarge, textAlign: 'center' })
23
+ },
24
+ orderDetails__buttonsContainer: {
25
+ classes: '',
26
+ props: {},
27
+ style: {
28
+ width: '100%',
29
+ justifyContent: 'center',
30
+ flexDirection: 'row',
31
+ gap: utils_1.theme.spacing.margin.small,
32
+ marginBottom: utils_1.theme.spacing.margin.large
33
+ }
34
+ },
35
+ orderDetails__reorderButton: {
36
+ classes: '',
37
+ props: {},
38
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.buttonPrimary), { fontSize: utils_1.theme.fontSizes.small })
39
+ },
40
+ orderDetails__rateOrderButton: {
41
+ classes: '',
42
+ props: {},
43
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.buttonSecondary), { fontSize: utils_1.theme.fontSizes.small })
44
+ },
45
+ orderDetails__summary: {
46
+ classes: '',
47
+ props: {},
48
+ style: {
49
+ width: '100%',
50
+ alignItems: 'center',
51
+ marginBottom: utils_1.theme.spacing.margin.large
52
+ }
53
+ },
54
+ orderDetails__summaryItem: {
55
+ classes: '',
56
+ props: {},
57
+ style: {
58
+ width: '100%',
59
+ flexDirection: 'row',
60
+ alignItems: 'center'
61
+ }
62
+ },
63
+ orderDetails__divider: {
64
+ classes: '',
65
+ props: {},
66
+ style: {
67
+ width: '100%',
68
+ height: 0.5,
69
+ backgroundColor: utils_1.theme.colors.text.primary,
70
+ marginTop: utils_1.theme.spacing.margin.small,
71
+ marginBottom: utils_1.theme.spacing.margin.small
72
+ }
73
+ },
74
+ orderDetails__summaryLabel: {
75
+ classes: '',
76
+ props: {},
77
+ style: tslib_1.__assign(tslib_1.__assign({ width: '35%' }, styles_1.default.textHeadline), { fontSize: utils_1.theme.fontSizes.xxxsmall, textTransform: 'uppercase' })
78
+ },
79
+ orderDetails__summaryValuesContainer: {
80
+ classes: '',
81
+ props: {},
82
+ style: {
83
+ flexGrow: 1,
84
+ gap: 5
85
+ }
86
+ },
87
+ orderDetails__summaryValue: {
88
+ classes: '',
89
+ props: {},
90
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textBody), { fontSize: utils_1.theme.fontSizes.xxsmall })
91
+ },
92
+ orderDetails__itemsContainer: {
93
+ classes: '',
94
+ props: {},
95
+ style: {
96
+ width: '100%',
97
+ gap: utils_1.theme.spacing.margin.small
98
+ }
99
+ },
100
+ orderDetails__itemsTitle: {
101
+ classes: '',
102
+ props: {},
103
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textHeadline), { fontSize: utils_1.theme.fontSizes.xxxsmall, textTransform: 'uppercase' })
104
+ }
105
+ };
106
+ exports.default = orderDetails;
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const orderDetailsItem: ScreenConfig;
3
+ export default orderDetailsItem;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var styles_1 = tslib_1.__importDefault(require("../styles"));
5
+ var utils_1 = require("../utils");
6
+ var orderDetailsItem = {
7
+ orderDetailsItem__container: {
8
+ classes: '',
9
+ props: {},
10
+ style: {
11
+ width: '100%',
12
+ alignItems: 'center',
13
+ flexDirection: 'row',
14
+ gap: utils_1.theme.spacing.padding.small
15
+ }
16
+ },
17
+ orderDetailsItem__image: {
18
+ classes: '',
19
+ props: {},
20
+ style: {
21
+ aspectRatio: 1,
22
+ backgroundPosition: 'center',
23
+ backgroundSize: 'cover',
24
+ flexBasis: 60,
25
+ flexGrow: 0,
26
+ flexShrink: 0
27
+ }
28
+ },
29
+ orderDetailsItem__content: {
30
+ classes: '',
31
+ props: {},
32
+ style: {
33
+ alignItems: 'center',
34
+ flexDirection: 'row',
35
+ gap: utils_1.theme.spacing.margin.large,
36
+ flexGrow: 1,
37
+ flexShrink: 1
38
+ }
39
+ },
40
+ orderDetailsItem__header: {
41
+ classes: '',
42
+ props: {},
43
+ style: {
44
+ gap: 5,
45
+ flexGrow: 1
46
+ }
47
+ },
48
+ orderDetailsItem__title: {
49
+ classes: '',
50
+ props: {},
51
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textHeading), { fontSize: utils_1.theme.fontSizes.xxxsmall })
52
+ },
53
+ orderDetailsItem__description: {
54
+ classes: '',
55
+ props: {},
56
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textBody), { fontSize: utils_1.theme.fontSizes.xxxsmall })
57
+ },
58
+ orderDetailsItem__price: {
59
+ classes: '',
60
+ props: {},
61
+ style: tslib_1.__assign(tslib_1.__assign({}, styles_1.default.textHeading), { fontSize: utils_1.theme.fontSizes.xxxsmall })
62
+ }
63
+ };
64
+ exports.default = orderDetailsItem;
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const page: ScreenConfig;
3
+ export default page;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var styles_1 = tslib_1.__importDefault(require("../styles"));
5
+ var utils_1 = require("../utils");
6
+ var page = {
7
+ page: {
8
+ classes: '',
9
+ props: {},
10
+ style: {
11
+ alignItems: 'stretch',
12
+ flexBasis: 'auto',
13
+ flexGrow: 1,
14
+ flexShrink: 1,
15
+ overflow: 'hidden'
16
+ }
17
+ },
18
+ page__header: {
19
+ classes: '',
20
+ props: {},
21
+ style: {
22
+ alignItems: 'center',
23
+ justifyContent: 'center',
24
+ marginBottom: utils_1.theme.spacing.margin.medium,
25
+ marginTop: utils_1.theme.spacing.margin.medium,
26
+ paddingLeft: utils_1.theme.spacing.padding.medium,
27
+ paddingRight: utils_1.theme.spacing.padding.medium,
28
+ paddingTop: utils_1.theme.spacing.padding.large
29
+ }
30
+ },
31
+ page__title: {
32
+ classes: '',
33
+ props: {
34
+ as: 'h1',
35
+ text: 'Welcome back!'
36
+ },
37
+ style: tslib_1.__assign({}, styles_1.default.textHeadline)
38
+ },
39
+ page__content: {
40
+ classes: '',
41
+ props: {},
42
+ style: {
43
+ alignItems: 'stretch',
44
+ flexDirection: 'row',
45
+ flexWrap: 'wrap',
46
+ justifyContent: 'flex-start',
47
+ paddingBottom: utils_1.theme.spacing.padding.large,
48
+ paddingLeft: utils_1.theme.spacing.padding.medium,
49
+ paddingRight: utils_1.theme.spacing.padding.medium,
50
+ paddingTop: utils_1.theme.spacing.padding.large,
51
+ overflow: 'scroll'
52
+ }
53
+ },
54
+ page__content__item: {
55
+ classes: '',
56
+ props: {},
57
+ style: {
58
+ alignItems: 'stretch',
59
+ flexBasis: '33.333%',
60
+ flexGrow: 0,
61
+ flexShrink: 0,
62
+ padding: utils_1.theme.spacing.padding.small
63
+ }
64
+ },
65
+ page__footer: {
66
+ classes: '',
67
+ props: {},
68
+ style: {
69
+ alignItems: 'center',
70
+ flexBasis: 200,
71
+ flexGrow: 0,
72
+ flexShrink: 1,
73
+ flexDirection: 'row',
74
+ gap: 100,
75
+ justifyContent: 'center'
76
+ }
77
+ }
78
+ };
79
+ exports.default = page;
@@ -0,0 +1,11 @@
1
+ import { Order } from '@open-tender/types';
2
+ import { CheckTotalsProps, OrderDetailsItemProps, OrderDetailsProps } from '@open-tender/ui';
3
+ import React, { ReactNode } from 'react';
4
+ declare const OrderDetails: ({ apiUrl, order, children, CheckTotalsView, OrderDetailsItemView }: {
5
+ apiUrl: string;
6
+ order: Order;
7
+ children: (props: OrderDetailsProps) => ReactNode;
8
+ CheckTotalsView: (props: CheckTotalsProps) => ReactNode;
9
+ OrderDetailsItemView: (props: OrderDetailsItemProps) => ReactNode;
10
+ }) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
11
+ export default OrderDetails;
@@ -0,0 +1,38 @@
1
+ import React, { useCallback, useState } from 'react';
2
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
3
+ import { useOrder } from '../hooks';
4
+ import { selectKioskConfig, reorder as reorderPastOrder } from '../slices';
5
+ import { default as CheckTotalsContainer } from './CheckTotals';
6
+ import { default as OrderDetailsItemContainer } from './OrderDetailsItem';
7
+ var OrderDetails = function (_a) {
8
+ var apiUrl = _a.apiUrl, order = _a.order, children = _a.children, CheckTotalsView = _a.CheckTotalsView, OrderDetailsItemView = _a.OrderDetailsItemView;
9
+ var dispatch = useAppDispatch();
10
+ var _b = useState(null), errMsg = _b[0], setErrMsg = _b[1];
11
+ var _c = useState(false), isReordering = _c[0], setIsReordering = _c[1];
12
+ var _d = useOrder(order), subtitle = _d.title, title = _d.orderNo, requestedAt = _d.requestedAt;
13
+ var _e = useAppSelector(selectKioskConfig), config = _e.orderDetails, modalContentConfig = _e.modalContent;
14
+ var reorder = function () {
15
+ setErrMsg(null);
16
+ setIsReordering(true);
17
+ dispatch(reorderPastOrder(order.cart));
18
+ };
19
+ var renderCheckTotals = useCallback(function () { return React.createElement(CheckTotalsContainer, { check: order, children: CheckTotalsView }); }, [order, CheckTotalsView]);
20
+ var renderOrderDetailsItem = useCallback(function (orderItem) { return (React.createElement(OrderDetailsItemContainer, { key: orderItem.id, apiUrl: apiUrl, orderItem: orderItem, children: OrderDetailsItemView })); }, [apiUrl, OrderDetailsItemView]);
21
+ if (!config)
22
+ return React.createElement(React.Fragment, null);
23
+ return children({
24
+ config: config,
25
+ modalContentConfig: modalContentConfig,
26
+ renderCheckTotals: renderCheckTotals,
27
+ requestedAt: requestedAt,
28
+ order: order,
29
+ title: title,
30
+ subtitle: subtitle,
31
+ isReordering: isReordering,
32
+ errMsg: errMsg,
33
+ handlers: { reorder: reorder },
34
+ apiUrl: apiUrl,
35
+ renderOrderDetailsItem: renderOrderDetailsItem
36
+ });
37
+ };
38
+ export default OrderDetails;
@@ -0,0 +1,9 @@
1
+ import { OrderItem } from '@open-tender/types';
2
+ import { OrderDetailsItemProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const OrderDetailsItem: ({ apiUrl, orderItem, children }: {
5
+ apiUrl: string;
6
+ orderItem: OrderItem;
7
+ children: (props: OrderDetailsItemProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default OrderDetailsItem;
@@ -0,0 +1,10 @@
1
+ import { useAppSelector } from '../app/hooks';
2
+ import { selectKioskConfig } from '../slices';
3
+ var OrderDetailsItem = function (_a) {
4
+ var apiUrl = _a.apiUrl, orderItem = _a.orderItem, children = _a.children;
5
+ var config = useAppSelector(selectKioskConfig).orderDetailsItem;
6
+ if (!config)
7
+ return null;
8
+ return children({ config: config, orderItem: orderItem, apiUrl: apiUrl });
9
+ };
10
+ export default OrderDetailsItem;
@@ -28,6 +28,8 @@ import ModalHeader from './ModalHeader';
28
28
  import NutritionalInfo from './NutritionalInfo';
29
29
  import Option from './Option';
30
30
  import OrderCard from './OrderCard';
31
+ import OrderDetails from './OrderDetails';
32
+ import OrderDetailsItem from './OrderDetailsItem';
31
33
  import PointsReward from './PointsReward';
32
34
  import PointsRewards from './PointsRewards';
33
35
  import PromoCode from './PromoCode';
@@ -45,4 +47,4 @@ import Tag from './Tag';
45
47
  import TextArea from './TextArea';
46
48
  import UpsellItem from './UpsellItem';
47
49
  import Upsells from './Upsells';
48
- export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
50
+ export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, OrderDetails, OrderDetailsItem, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
@@ -28,6 +28,8 @@ import ModalHeader from './ModalHeader';
28
28
  import NutritionalInfo from './NutritionalInfo';
29
29
  import Option from './Option';
30
30
  import OrderCard from './OrderCard';
31
+ import OrderDetails from './OrderDetails';
32
+ import OrderDetailsItem from './OrderDetailsItem';
31
33
  import PointsReward from './PointsReward';
32
34
  import PointsRewards from './PointsRewards';
33
35
  import PromoCode from './PromoCode';
@@ -45,4 +47,4 @@ import Tag from './Tag';
45
47
  import TextArea from './TextArea';
46
48
  import UpsellItem from './UpsellItem';
47
49
  import Upsells from './Upsells';
48
- export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
50
+ export { Allergen, Applied, ButtonLink, Card, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, OrderDetails, OrderDetailsItem, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
@@ -45,6 +45,9 @@ import modalHeader from './modalHeader';
45
45
  import nutritionalInfo from './nutritionalInfo';
46
46
  import option from './option';
47
47
  import orderCard from './orderCard';
48
+ import orderDetails from './orderDetails';
49
+ import orderDetailsItem from './orderDetailsItem';
50
+ import page from './page';
48
51
  import pointsReward from './pointsReward';
49
52
  import pointsRewards from './pointsRewards';
50
53
  import promoCode from './promoCode';
@@ -110,6 +113,9 @@ var config = {
110
113
  nutritionalInfo: nutritionalInfo,
111
114
  option: option,
112
115
  orderCard: orderCard,
116
+ orderDetails: orderDetails,
117
+ orderDetailsItem: orderDetailsItem,
118
+ page: page,
113
119
  pointsReward: pointsReward,
114
120
  pointsRewards: pointsRewards,
115
121
  promoCode: promoCode,
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const orderDetails: ScreenConfig;
3
+ export default orderDetails;
@@ -0,0 +1,104 @@
1
+ import { __assign } from "tslib";
2
+ import styles from '../styles';
3
+ import { theme } from '../utils';
4
+ var orderDetails = {
5
+ orderDetails__totalsContainer: {
6
+ classes: '',
7
+ props: {},
8
+ style: {
9
+ width: '100%'
10
+ }
11
+ },
12
+ orderDetails__orderNumber: {
13
+ classes: '',
14
+ props: {},
15
+ style: __assign(__assign({}, styles.textHeadline), { fontSize: theme.fontSizes.xsmall, textTransform: 'uppercase', textAlign: 'center' })
16
+ },
17
+ orderDetails__orderTitle: {
18
+ classes: '',
19
+ props: {},
20
+ style: __assign(__assign({}, styles.textHeading), { fontSize: theme.fontSizes.xxlarge, textAlign: 'center' })
21
+ },
22
+ orderDetails__buttonsContainer: {
23
+ classes: '',
24
+ props: {},
25
+ style: {
26
+ width: '100%',
27
+ justifyContent: 'center',
28
+ flexDirection: 'row',
29
+ gap: theme.spacing.margin.small,
30
+ marginBottom: theme.spacing.margin.large
31
+ }
32
+ },
33
+ orderDetails__reorderButton: {
34
+ classes: '',
35
+ props: {},
36
+ style: __assign(__assign({}, styles.buttonPrimary), { fontSize: theme.fontSizes.small })
37
+ },
38
+ orderDetails__rateOrderButton: {
39
+ classes: '',
40
+ props: {},
41
+ style: __assign(__assign({}, styles.buttonSecondary), { fontSize: theme.fontSizes.small })
42
+ },
43
+ orderDetails__summary: {
44
+ classes: '',
45
+ props: {},
46
+ style: {
47
+ width: '100%',
48
+ alignItems: 'center',
49
+ marginBottom: theme.spacing.margin.large
50
+ }
51
+ },
52
+ orderDetails__summaryItem: {
53
+ classes: '',
54
+ props: {},
55
+ style: {
56
+ width: '100%',
57
+ flexDirection: 'row',
58
+ alignItems: 'center'
59
+ }
60
+ },
61
+ orderDetails__divider: {
62
+ classes: '',
63
+ props: {},
64
+ style: {
65
+ width: '100%',
66
+ height: 0.5,
67
+ backgroundColor: theme.colors.text.primary,
68
+ marginTop: theme.spacing.margin.small,
69
+ marginBottom: theme.spacing.margin.small
70
+ }
71
+ },
72
+ orderDetails__summaryLabel: {
73
+ classes: '',
74
+ props: {},
75
+ style: __assign(__assign({ width: '35%' }, styles.textHeadline), { fontSize: theme.fontSizes.xxxsmall, textTransform: 'uppercase' })
76
+ },
77
+ orderDetails__summaryValuesContainer: {
78
+ classes: '',
79
+ props: {},
80
+ style: {
81
+ flexGrow: 1,
82
+ gap: 5
83
+ }
84
+ },
85
+ orderDetails__summaryValue: {
86
+ classes: '',
87
+ props: {},
88
+ style: __assign(__assign({}, styles.textBody), { fontSize: theme.fontSizes.xxsmall })
89
+ },
90
+ orderDetails__itemsContainer: {
91
+ classes: '',
92
+ props: {},
93
+ style: {
94
+ width: '100%',
95
+ gap: theme.spacing.margin.small
96
+ }
97
+ },
98
+ orderDetails__itemsTitle: {
99
+ classes: '',
100
+ props: {},
101
+ style: __assign(__assign({}, styles.textHeadline), { fontSize: theme.fontSizes.xxxsmall, textTransform: 'uppercase' })
102
+ }
103
+ };
104
+ export default orderDetails;
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const orderDetailsItem: ScreenConfig;
3
+ export default orderDetailsItem;
@@ -0,0 +1,62 @@
1
+ import { __assign } from "tslib";
2
+ import styles from '../styles';
3
+ import { theme } from '../utils';
4
+ var orderDetailsItem = {
5
+ orderDetailsItem__container: {
6
+ classes: '',
7
+ props: {},
8
+ style: {
9
+ width: '100%',
10
+ alignItems: 'center',
11
+ flexDirection: 'row',
12
+ gap: theme.spacing.padding.small
13
+ }
14
+ },
15
+ orderDetailsItem__image: {
16
+ classes: '',
17
+ props: {},
18
+ style: {
19
+ aspectRatio: 1,
20
+ backgroundPosition: 'center',
21
+ backgroundSize: 'cover',
22
+ flexBasis: 60,
23
+ flexGrow: 0,
24
+ flexShrink: 0
25
+ }
26
+ },
27
+ orderDetailsItem__content: {
28
+ classes: '',
29
+ props: {},
30
+ style: {
31
+ alignItems: 'center',
32
+ flexDirection: 'row',
33
+ gap: theme.spacing.margin.large,
34
+ flexGrow: 1,
35
+ flexShrink: 1
36
+ }
37
+ },
38
+ orderDetailsItem__header: {
39
+ classes: '',
40
+ props: {},
41
+ style: {
42
+ gap: 5,
43
+ flexGrow: 1
44
+ }
45
+ },
46
+ orderDetailsItem__title: {
47
+ classes: '',
48
+ props: {},
49
+ style: __assign(__assign({}, styles.textHeading), { fontSize: theme.fontSizes.xxxsmall })
50
+ },
51
+ orderDetailsItem__description: {
52
+ classes: '',
53
+ props: {},
54
+ style: __assign(__assign({}, styles.textBody), { fontSize: theme.fontSizes.xxxsmall })
55
+ },
56
+ orderDetailsItem__price: {
57
+ classes: '',
58
+ props: {},
59
+ style: __assign(__assign({}, styles.textHeading), { fontSize: theme.fontSizes.xxxsmall })
60
+ }
61
+ };
62
+ export default orderDetailsItem;
@@ -0,0 +1,3 @@
1
+ import { ScreenConfig } from '@open-tender/ui';
2
+ declare const page: ScreenConfig;
3
+ export default page;
@@ -0,0 +1,77 @@
1
+ import { __assign } from "tslib";
2
+ import styles from '../styles';
3
+ import { theme } from '../utils';
4
+ var page = {
5
+ page: {
6
+ classes: '',
7
+ props: {},
8
+ style: {
9
+ alignItems: 'stretch',
10
+ flexBasis: 'auto',
11
+ flexGrow: 1,
12
+ flexShrink: 1,
13
+ overflow: 'hidden'
14
+ }
15
+ },
16
+ page__header: {
17
+ classes: '',
18
+ props: {},
19
+ style: {
20
+ alignItems: 'center',
21
+ justifyContent: 'center',
22
+ marginBottom: theme.spacing.margin.medium,
23
+ marginTop: theme.spacing.margin.medium,
24
+ paddingLeft: theme.spacing.padding.medium,
25
+ paddingRight: theme.spacing.padding.medium,
26
+ paddingTop: theme.spacing.padding.large
27
+ }
28
+ },
29
+ page__title: {
30
+ classes: '',
31
+ props: {
32
+ as: 'h1',
33
+ text: 'Welcome back!'
34
+ },
35
+ style: __assign({}, styles.textHeadline)
36
+ },
37
+ page__content: {
38
+ classes: '',
39
+ props: {},
40
+ style: {
41
+ alignItems: 'stretch',
42
+ flexDirection: 'row',
43
+ flexWrap: 'wrap',
44
+ justifyContent: 'flex-start',
45
+ paddingBottom: theme.spacing.padding.large,
46
+ paddingLeft: theme.spacing.padding.medium,
47
+ paddingRight: theme.spacing.padding.medium,
48
+ paddingTop: theme.spacing.padding.large,
49
+ overflow: 'scroll'
50
+ }
51
+ },
52
+ page__content__item: {
53
+ classes: '',
54
+ props: {},
55
+ style: {
56
+ alignItems: 'stretch',
57
+ flexBasis: '33.333%',
58
+ flexGrow: 0,
59
+ flexShrink: 0,
60
+ padding: theme.spacing.padding.small
61
+ }
62
+ },
63
+ page__footer: {
64
+ classes: '',
65
+ props: {},
66
+ style: {
67
+ alignItems: 'center',
68
+ flexBasis: 200,
69
+ flexGrow: 0,
70
+ flexShrink: 1,
71
+ flexDirection: 'row',
72
+ gap: 100,
73
+ justifyContent: 'center'
74
+ }
75
+ }
76
+ };
77
+ export default page;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/store",
3
- "version": "1.1.21",
3
+ "version": "1.1.22",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -36,7 +36,7 @@
36
36
  "@babel/core": "^7.23.6",
37
37
  "@emotion/react": "^11.11.1",
38
38
  "@open-tender/types": "^0.4.44",
39
- "@open-tender/ui": "^0.3.14",
39
+ "@open-tender/ui": "^0.3.16",
40
40
  "@open-tender/utils": "^0.4.23",
41
41
  "@reduxjs/toolkit": "^2.0.1",
42
42
  "@types/react": "^18.2.45",
@@ -65,7 +65,7 @@
65
65
  "peerDependencies": {
66
66
  "@emotion/react": "^11.11.1",
67
67
  "@open-tender/types": "^0.4.43",
68
- "@open-tender/ui": "^0.3.14",
68
+ "@open-tender/ui": "^0.3.16",
69
69
  "@open-tender/utils": "^0.4.23",
70
70
  "@reduxjs/toolkit": "^2.0.1",
71
71
  "date-fns": "2.30.0",