@licklist/design 0.49.0 → 0.50.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/calendar/Calendar.d.ts +3 -0
- package/dist/calendar/Calendar.d.ts.map +1 -1
- package/dist/calendar/components/CalendarButtons/CalendarButtons.js +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.js +1 -1
- package/dist/calendar/utils/index.d.ts +2 -1
- package/dist/calendar/utils/index.d.ts.map +1 -1
- package/dist/calendar/utils/index.js +1 -1
- package/dist/date-time-button/DateTimeButton.d.ts +3 -2
- package/dist/date-time-button/DateTimeButton.d.ts.map +1 -1
- package/dist/date-time-button/DateTimeButton.js +1 -1
- package/dist/events/event-venue-map/components/Scrollbars/Scrollbars.js +1 -1
- package/dist/iframe/event/event-booking-products/EventBookingProducts.js +1 -1
- package/dist/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.d.ts +2 -2
- package/dist/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.d.ts.map +1 -1
- package/dist/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.js +1 -1
- package/dist/iframe/order-process/components/BookingSummary/components/ProductsByMenuStep/ProductsByMenuStep.js +1 -1
- package/dist/iframe/order-process/components/BookingSummary/components/ToggleHeader/ToggleHeader.js +1 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.d.ts +2 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.js +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.d.ts +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.js +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.js +1 -1
- package/dist/index.js +1 -1
- package/dist/product-set/product/ProductControl.d.ts.map +1 -1
- package/dist/product-set/product/ProductControl.js +1 -1
- package/dist/product-set/product/duration/ProductDurationControl.d.ts +1 -2
- package/dist/product-set/product/duration/ProductDurationControl.d.ts.map +1 -1
- package/dist/product-set/product/duration/ProductDurationControl.js +1 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts +2 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.d.ts.map +1 -1
- package/dist/sales/manual-booking/summary/ManualBookingSummary.js +1 -1
- package/dist/static/date-range-input/DateRangeInput.d.ts.map +1 -1
- package/dist/static/date-range-input/DateRangeInput.js +1 -1
- package/dist/static/switch/BooleanSwitch.d.ts +3 -1
- package/dist/static/switch/BooleanSwitch.d.ts.map +1 -1
- package/dist/static/switch/BooleanSwitch.js +1 -1
- package/dist/styles/resources-blocking/_index.scss +6 -0
- package/dist/styles/sales/BookingFilter.scss +21 -1
- package/dist/styles/sales/BookingResults.scss +1 -1
- package/dist/styles/sales/BookingTabs.scss +63 -5
- package/dist/styles/sales/LifeTimeSales.scss +1 -0
- package/dist/styles/sales/ManualBooking.scss +62 -3
- package/dist/styles/sales/SourceOfSales.scss +3 -0
- package/dist/styles/static/Switch.scss +1 -0
- package/dist/styles/static/Tabs.scss +6 -0
- package/dist/table/TableHelperComponent.d.ts +2 -1
- package/dist/table/TableHelperComponent.d.ts.map +1 -1
- package/dist/table/TableHelperComponent.js +1 -1
- package/package.json +3 -3
- package/src/calendar/Calendar.tsx +5 -0
- package/src/calendar/components/CalendarButtons/CalendarButtons.tsx +3 -3
- package/src/calendar/components/CalendarDates/CalendarDates.tsx +5 -2
- package/src/calendar/utils/index.ts +15 -6
- package/src/date-time-button/DateTimeButton.tsx +16 -3
- package/src/iframe/event/event-booking-products/EventBookingProducts.tsx +1 -1
- package/src/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.tsx +8 -8
- package/src/iframe/order-process/components/BookingSummary/BookingSummary.stories.tsx +5 -5
- package/src/iframe/order-process/components/BookingSummary/components/ProductsByMenuStep/ProductsByMenuStep.tsx +2 -2
- package/src/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.tsx +16 -3
- package/src/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.tsx +2 -2
- package/src/iframe/order-process/components/utils/useCategoryVerification.ts +1 -1
- package/src/iframe/payment/payment-page/PaymentPage.stories.tsx +1 -1
- package/src/product-set/product/ProductControl.tsx +1 -4
- package/src/product-set/product/duration/ProductDurationControl.tsx +10 -9
- package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +9 -1
- package/src/static/date-range-input/DateRangeInput.tsx +23 -2
- package/src/static/switch/BooleanSwitch.tsx +6 -2
- package/src/styles/resources-blocking/_index.scss +6 -0
- package/src/styles/sales/BookingFilter.scss +21 -1
- package/src/styles/sales/BookingResults.scss +1 -1
- package/src/styles/sales/BookingTabs.scss +63 -5
- package/src/styles/sales/LifeTimeSales.scss +1 -0
- package/src/styles/sales/ManualBooking.scss +62 -3
- package/src/styles/sales/SourceOfSales.scss +3 -0
- package/src/styles/static/Switch.scss +1 -0
- package/src/styles/static/Tabs.scss +6 -0
- package/src/table/TableHelperComponent.tsx +73 -18
|
@@ -147,35 +147,35 @@ export function Default() {
|
|
|
147
147
|
quantity: 1,
|
|
148
148
|
name: "cat 1 prod 1",
|
|
149
149
|
price: 0,
|
|
150
|
-
|
|
150
|
+
productCategoryId: 1,
|
|
151
151
|
},
|
|
152
152
|
"21": {
|
|
153
153
|
id: 21,
|
|
154
154
|
quantity: 2,
|
|
155
155
|
name: "cat 2 prod 1",
|
|
156
156
|
price: 1,
|
|
157
|
-
|
|
157
|
+
productCategoryId: 2,
|
|
158
158
|
},
|
|
159
159
|
"31": {
|
|
160
160
|
id: 31,
|
|
161
161
|
quantity: 4,
|
|
162
162
|
name: "cat 3 prod 1",
|
|
163
163
|
price: 1,
|
|
164
|
-
|
|
164
|
+
productCategoryId: 3,
|
|
165
165
|
},
|
|
166
166
|
"32": {
|
|
167
167
|
id: 32,
|
|
168
168
|
quantity: 4,
|
|
169
169
|
name: "cat 3 prod 2",
|
|
170
170
|
price: 1,
|
|
171
|
-
|
|
171
|
+
productCategoryId: 3,
|
|
172
172
|
},
|
|
173
173
|
"41": {
|
|
174
174
|
id: 41,
|
|
175
175
|
quantity: 4,
|
|
176
176
|
name: "cat 4 prod 1",
|
|
177
177
|
price: 1,
|
|
178
|
-
|
|
178
|
+
productCategoryId: 4,
|
|
179
179
|
},
|
|
180
180
|
}}
|
|
181
181
|
totalWithDiscount={5}
|
|
@@ -13,7 +13,7 @@ const doesStepHaveItems = (orderItems: OrderItems, step: MenuStep): boolean => {
|
|
|
13
13
|
const categoriesIds = step.productCategories.map((category) => category.id);
|
|
14
14
|
|
|
15
15
|
const stepItems = values(orderItems).filter((item) =>
|
|
16
|
-
categoriesIds.includes(item.
|
|
16
|
+
categoriesIds.includes(item.productCategoryId)
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
return stepItems.length > 0;
|
|
@@ -23,7 +23,7 @@ const getOrderItemsForCategory = (
|
|
|
23
23
|
orderItems: OrderItems,
|
|
24
24
|
categoryId: number
|
|
25
25
|
): OrderItem[] =>
|
|
26
|
-
values(orderItems).filter((item) => item.
|
|
26
|
+
values(orderItems).filter((item) => item.productCategoryId === categoryId);
|
|
27
27
|
|
|
28
28
|
export type ProductsByMenuStepsProps = {
|
|
29
29
|
orderItems: OrderItems;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { ReactNode, PropsWithChildren } from "react";
|
|
2
2
|
import { useTranslation } from "react-i18next";
|
|
3
3
|
import Button from "react-bootstrap/Button";
|
|
4
|
+
import { Spinner } from "react-bootstrap";
|
|
4
5
|
import { STEP_FORM_ID } from "../../constants";
|
|
5
6
|
|
|
6
7
|
type ButtonPropsWithoutOnClick = {
|
|
@@ -18,29 +19,41 @@ type FooterProps = Partial<
|
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
buttonLabel?: ReactNode;
|
|
20
21
|
showButton?: boolean;
|
|
22
|
+
isLoading: boolean;
|
|
21
23
|
} & (ButtonPropsWithoutOnClick | ButtonPropsWithOnClick)
|
|
22
24
|
>;
|
|
23
25
|
|
|
24
26
|
export type BookingSummaryFooterProps = PropsWithChildren<FooterProps>;
|
|
25
27
|
|
|
26
28
|
export const BookingSummaryFooter = ({
|
|
27
|
-
disabled = false,
|
|
29
|
+
disabled: _disabled = false,
|
|
28
30
|
onClick,
|
|
29
31
|
buttonLabel,
|
|
30
32
|
form = STEP_FORM_ID,
|
|
31
33
|
children,
|
|
32
34
|
showButton = true,
|
|
35
|
+
isLoading = false,
|
|
33
36
|
}: BookingSummaryFooterProps) => {
|
|
34
37
|
const { t } = useTranslation("Design");
|
|
35
38
|
|
|
36
39
|
const buttonProps = onClick ? { onClick } : { type: "submit", form };
|
|
37
40
|
|
|
41
|
+
const disabled = _disabled || isLoading;
|
|
42
|
+
|
|
38
43
|
return (
|
|
39
44
|
<div className="d-flex flex-column">
|
|
40
45
|
{children}
|
|
41
46
|
{showButton && (
|
|
42
|
-
<Button
|
|
43
|
-
|
|
47
|
+
<Button
|
|
48
|
+
className="m-0 d-flex align-items-center justify-content-center mt-3"
|
|
49
|
+
disabled={disabled}
|
|
50
|
+
{...buttonProps}
|
|
51
|
+
>
|
|
52
|
+
{isLoading ? (
|
|
53
|
+
<Spinner animation="border" size="sm" role="status" />
|
|
54
|
+
) : (
|
|
55
|
+
buttonLabel ?? t("continue")
|
|
56
|
+
)}
|
|
44
57
|
</Button>
|
|
45
58
|
)}
|
|
46
59
|
</div>
|
|
@@ -14,7 +14,7 @@ interface FormOrderItem {
|
|
|
14
14
|
id: number;
|
|
15
15
|
name: string;
|
|
16
16
|
price: number;
|
|
17
|
-
|
|
17
|
+
productCategoryId: number;
|
|
18
18
|
zoneId?: Zone["id"];
|
|
19
19
|
deposit?: number | null;
|
|
20
20
|
quantity: number;
|
|
@@ -50,7 +50,7 @@ export const ProductQuantityInput = ({
|
|
|
50
50
|
name: product.name,
|
|
51
51
|
deposit,
|
|
52
52
|
price: product.price,
|
|
53
|
-
|
|
53
|
+
productCategoryId: category.id,
|
|
54
54
|
zoneId: category.zone?.id,
|
|
55
55
|
quantity,
|
|
56
56
|
capacity: product?.capacity,
|
|
@@ -47,7 +47,7 @@ export const useCategoryVerification = () => {
|
|
|
47
47
|
if (!minSubItems && !maxSubItems) return;
|
|
48
48
|
|
|
49
49
|
const categoryProductsQuantity = productArray.filter(
|
|
50
|
-
(product) => product?.
|
|
50
|
+
(product) => product?.productCategoryId === id
|
|
51
51
|
).length;
|
|
52
52
|
|
|
53
53
|
if (minSubItems && categoryProductsQuantity < minSubItems) {
|
|
@@ -140,9 +140,7 @@ export function ProductControl<T extends FormValues>({
|
|
|
140
140
|
clearErrors,
|
|
141
141
|
} = useFormContext<T>();
|
|
142
142
|
|
|
143
|
-
const { setLoading
|
|
144
|
-
ProductSetLoadingContext
|
|
145
|
-
);
|
|
143
|
+
const { setLoading } = useContext(ProductSetLoadingContext);
|
|
146
144
|
const { t } = useTranslation(["Design", "Validation"]);
|
|
147
145
|
const [expanded, setExpanded] = useState(false);
|
|
148
146
|
const [initialImages, setInitialImages] = useState<Image[] | null>(null);
|
|
@@ -394,7 +392,6 @@ export function ProductControl<T extends FormValues>({
|
|
|
394
392
|
<Row className="align-items-start duration-capacity-container">
|
|
395
393
|
<ProductDurationControl
|
|
396
394
|
fieldNamePrefix={fieldNamePrefix}
|
|
397
|
-
providerHasBookingManagement={providerHasBookingManagement}
|
|
398
395
|
disabled={disabledDuration}
|
|
399
396
|
/>
|
|
400
397
|
|
|
@@ -8,13 +8,11 @@ import { useTranslation } from "react-i18next";
|
|
|
8
8
|
import { ReactComponent as IncrementIcon } from "../../../assets/dashboard/increment.svg";
|
|
9
9
|
|
|
10
10
|
export interface ProductDurationControlProps<T> extends FieldNamePrefixPath<T> {
|
|
11
|
-
providerHasBookingManagement: boolean;
|
|
12
11
|
disabled: boolean;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
14
|
export const ProductDurationControl = <T,>({
|
|
16
15
|
fieldNamePrefix,
|
|
17
|
-
providerHasBookingManagement,
|
|
18
16
|
disabled,
|
|
19
17
|
}: ProductDurationControlProps<T>) => {
|
|
20
18
|
const { t } = useTranslation("Design");
|
|
@@ -59,18 +57,21 @@ export const ProductDurationControl = <T,>({
|
|
|
59
57
|
control={control}
|
|
60
58
|
name={fieldName}
|
|
61
59
|
rules={{
|
|
62
|
-
required: {
|
|
63
|
-
value: Boolean(providerHasBookingManagement),
|
|
64
|
-
message: t("Validation:fieldRequired", {
|
|
65
|
-
attribute: t("duration"),
|
|
66
|
-
}),
|
|
67
|
-
},
|
|
68
60
|
min: {
|
|
69
|
-
value:
|
|
61
|
+
value: 0,
|
|
70
62
|
message: t("Validation:fieldMinNumber", {
|
|
71
63
|
attribute: t("duration"),
|
|
64
|
+
min: 0,
|
|
72
65
|
}),
|
|
73
66
|
},
|
|
67
|
+
validate: (val) => {
|
|
68
|
+
if (!disabled && (!val || val < 1)) {
|
|
69
|
+
return t("Validation:fieldRequired", {
|
|
70
|
+
attribute: t("duration"),
|
|
71
|
+
}) as string;
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
},
|
|
74
75
|
}}
|
|
75
76
|
render={({ field }) => (
|
|
76
77
|
<>
|
|
@@ -24,6 +24,7 @@ export interface ManualBookingSummaryProps {
|
|
|
24
24
|
isFeeFetching: boolean;
|
|
25
25
|
orderDate: string;
|
|
26
26
|
relyOnPeopleType?: RelyOnPeopleType | null;
|
|
27
|
+
isMobileView?: boolean;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
export const ManualBookingSummary = ({
|
|
@@ -35,6 +36,7 @@ export const ManualBookingSummary = ({
|
|
|
35
36
|
orderDate,
|
|
36
37
|
relyOnPeopleType,
|
|
37
38
|
hasBookingCategory,
|
|
39
|
+
isMobileView,
|
|
38
40
|
}: ManualBookingSummaryProps) => {
|
|
39
41
|
const { t } = useTranslation(["Design", "Sale"]);
|
|
40
42
|
const { formatNumber } = useIntl();
|
|
@@ -44,7 +46,13 @@ export const ManualBookingSummary = ({
|
|
|
44
46
|
const date = currentDate.toFormat(DATE_TIME_MANUAL_BOOKING_FORMAT);
|
|
45
47
|
const time = currentDate.toFormat(TIME_FORMAT);
|
|
46
48
|
return (
|
|
47
|
-
<div
|
|
49
|
+
<div
|
|
50
|
+
className={
|
|
51
|
+
isMobileView
|
|
52
|
+
? "manual-booking-summary-mobile"
|
|
53
|
+
: "manual-booking-summary"
|
|
54
|
+
}
|
|
55
|
+
>
|
|
48
56
|
<div className="receipt-title">{t("Sale:receipt")}</div>
|
|
49
57
|
<div className="event-name border-summary-item">{eventName}</div>
|
|
50
58
|
<div className="border-summary-item">{date}</div>
|
|
@@ -11,10 +11,13 @@ import {
|
|
|
11
11
|
rangeDatesToStringDates,
|
|
12
12
|
stringDatesToInputValue,
|
|
13
13
|
} from "./utils";
|
|
14
|
+
import { MOBILE_WIDTH } from "../../iframe/order-process/components/BookingSummary/types";
|
|
14
15
|
|
|
15
16
|
import "react-date-range/dist/styles.css";
|
|
16
17
|
import "react-date-range/dist/theme/default.css";
|
|
17
18
|
|
|
19
|
+
type DateRangeDirection = "vertical" | "horizontal";
|
|
20
|
+
|
|
18
21
|
type DateRangeInputProps = {
|
|
19
22
|
placeholder: string;
|
|
20
23
|
startDate?: string;
|
|
@@ -33,7 +36,7 @@ export const DateRangeInput = ({
|
|
|
33
36
|
disabled,
|
|
34
37
|
}: DateRangeInputProps) => {
|
|
35
38
|
const { t } = useTranslation("Design");
|
|
36
|
-
|
|
39
|
+
const [direction, setDirection] = useState<DateRangeDirection>("horizontal");
|
|
37
40
|
const [state, setState] = useState<Range[]>([
|
|
38
41
|
{
|
|
39
42
|
startDate: new Date(),
|
|
@@ -82,6 +85,24 @@ export const DateRangeInput = ({
|
|
|
82
85
|
}
|
|
83
86
|
}, [startDate, endDate]);
|
|
84
87
|
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
const resizeBodyInMobile = () => {
|
|
90
|
+
if (window.innerWidth > MOBILE_WIDTH) {
|
|
91
|
+
setDirection("horizontal");
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
setDirection("vertical");
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
resizeBodyInMobile();
|
|
99
|
+
window.addEventListener("resize", resizeBodyInMobile);
|
|
100
|
+
|
|
101
|
+
return () => {
|
|
102
|
+
window.removeEventListener("resize", resizeBodyInMobile);
|
|
103
|
+
};
|
|
104
|
+
}, []);
|
|
105
|
+
|
|
85
106
|
return (
|
|
86
107
|
<div>
|
|
87
108
|
<OverlayTrigger
|
|
@@ -94,7 +115,7 @@ export const DateRangeInput = ({
|
|
|
94
115
|
moveRangeOnFirstSelection={false}
|
|
95
116
|
ranges={state}
|
|
96
117
|
months={months}
|
|
97
|
-
direction=
|
|
118
|
+
direction={direction}
|
|
98
119
|
/>
|
|
99
120
|
<div className="mt-3 d-flex justify-content-end">
|
|
100
121
|
<Button onClick={onReset} variant="link">
|
|
@@ -8,6 +8,8 @@ export interface BooleanSwitchProps {
|
|
|
8
8
|
value?: boolean;
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
onChange: (value: boolean) => void;
|
|
11
|
+
firstValueTitle?: string;
|
|
12
|
+
secondValueTitle?: string;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export function BooleanSwitch({
|
|
@@ -15,12 +17,14 @@ export function BooleanSwitch({
|
|
|
15
17
|
value,
|
|
16
18
|
disabled,
|
|
17
19
|
onChange,
|
|
20
|
+
firstValueTitle,
|
|
21
|
+
secondValueTitle,
|
|
18
22
|
}: BooleanSwitchProps) {
|
|
19
23
|
const { t } = useTranslation("Design");
|
|
20
24
|
|
|
21
25
|
const options: SelectItem[] = [
|
|
22
|
-
{ id: 1, value: t("yes") },
|
|
23
|
-
{ id: 0, value: t("no") },
|
|
26
|
+
{ id: 1, value: firstValueTitle ?? t("yes") },
|
|
27
|
+
{ id: 0, value: secondValueTitle ?? t("no") },
|
|
24
28
|
];
|
|
25
29
|
|
|
26
30
|
const handleChange = useCallback(
|
|
@@ -157,6 +157,19 @@
|
|
|
157
157
|
margin-bottom: 0;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
+
|
|
161
|
+
.apply-container{
|
|
162
|
+
display: flex;
|
|
163
|
+
justify-content: space-around;
|
|
164
|
+
column-gap: 2rem;
|
|
165
|
+
margin-left: 3rem;
|
|
166
|
+
|
|
167
|
+
@include media-breakpoint-down(sm) {
|
|
168
|
+
flex-direction: row;
|
|
169
|
+
margin-left: 0rem;
|
|
170
|
+
column-gap: 1rem;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
160
173
|
}
|
|
161
174
|
|
|
162
175
|
.additional-filter-container {
|
|
@@ -164,10 +177,12 @@
|
|
|
164
177
|
|
|
165
178
|
@include media-breakpoint-down(md) {
|
|
166
179
|
flex-wrap: wrap;
|
|
180
|
+
|
|
167
181
|
.date-container {
|
|
168
182
|
width: 100%;
|
|
169
183
|
flex: 1;
|
|
170
184
|
}
|
|
185
|
+
|
|
171
186
|
.btn-primary {
|
|
172
187
|
margin-top: 1rem;
|
|
173
188
|
}
|
|
@@ -228,6 +243,11 @@
|
|
|
228
243
|
transform: rotate(45deg);
|
|
229
244
|
}
|
|
230
245
|
}
|
|
246
|
+
|
|
247
|
+
@include media-breakpoint-down(sm) {
|
|
248
|
+
flex-direction: column;
|
|
249
|
+
justify-content: flex-start;
|
|
250
|
+
}
|
|
231
251
|
}
|
|
232
252
|
}
|
|
233
|
-
}
|
|
253
|
+
}
|
|
@@ -1,24 +1,49 @@
|
|
|
1
1
|
.booking-tabs-pane {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: row;
|
|
4
|
+
justify-content: space-between;
|
|
4
5
|
align-items: center;
|
|
5
6
|
height: 2.75rem;
|
|
6
7
|
background-color: $white;
|
|
7
8
|
|
|
8
9
|
.booking-tabs {
|
|
9
10
|
svg {
|
|
10
|
-
g
|
|
11
|
-
fill: $white;
|
|
11
|
+
g>rect:first-child {
|
|
12
|
+
fill: $white;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
+
|
|
15
16
|
.active {
|
|
16
17
|
svg {
|
|
17
|
-
g
|
|
18
|
-
fill: $blue;
|
|
18
|
+
g>rect:first-child {
|
|
19
|
+
fill: $blue;
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
|
23
|
+
|
|
24
|
+
@include media-breakpoint-down(sm) {
|
|
25
|
+
width: 4rem;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.content {
|
|
30
|
+
display: flex;
|
|
31
|
+
justify-content: space-between;
|
|
32
|
+
width: 85%;
|
|
33
|
+
flex-direction: row;
|
|
34
|
+
|
|
35
|
+
@include media-breakpoint-down(sm) {
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
align-items: start;
|
|
39
|
+
height: 4rem;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.booking {
|
|
43
|
+
@include media-breakpoint-down(sm) {
|
|
44
|
+
height: 13rem;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
22
47
|
}
|
|
23
48
|
|
|
24
49
|
.separator {
|
|
@@ -29,6 +54,12 @@
|
|
|
29
54
|
.children {
|
|
30
55
|
flex: 1;
|
|
31
56
|
margin-left: 1rem;
|
|
57
|
+
|
|
58
|
+
@include media-breakpoint-down(sm) {
|
|
59
|
+
display: flex;
|
|
60
|
+
flex-direction: column;
|
|
61
|
+
align-items: start;
|
|
62
|
+
}
|
|
32
63
|
}
|
|
33
64
|
|
|
34
65
|
.buttons {
|
|
@@ -61,6 +92,33 @@
|
|
|
61
92
|
border-radius: 0.625rem;
|
|
62
93
|
margin-right: 0.5rem;
|
|
63
94
|
}
|
|
95
|
+
@include media-breakpoint-down(sm) {
|
|
96
|
+
width: 12.5rem;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@include media-breakpoint-down(sm) {
|
|
102
|
+
display: flex;
|
|
103
|
+
flex-direction: column;
|
|
104
|
+
align-items: start;
|
|
105
|
+
gap: .5rem;
|
|
106
|
+
margin-top: .5rem;
|
|
107
|
+
white-space: nowrap;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@include media-breakpoint-down(sm) {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: start;
|
|
114
|
+
gap: 1rem;
|
|
115
|
+
margin-top: 1rem;
|
|
116
|
+
height: 100%;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.booking {
|
|
120
|
+
@include media-breakpoint-down(sm) {
|
|
121
|
+
height: 13rem;
|
|
64
122
|
}
|
|
65
123
|
}
|
|
66
124
|
}
|
|
@@ -361,10 +361,11 @@
|
|
|
361
361
|
width: inherit;
|
|
362
362
|
|
|
363
363
|
@include media-breakpoint-down(sm) {
|
|
364
|
-
|
|
365
|
-
padding-top: 2rem;
|
|
364
|
+
display: none;
|
|
366
365
|
}
|
|
367
366
|
|
|
367
|
+
|
|
368
|
+
|
|
368
369
|
.form-control {
|
|
369
370
|
margin-bottom: 1.5rem;
|
|
370
371
|
}
|
|
@@ -411,6 +412,64 @@
|
|
|
411
412
|
}
|
|
412
413
|
}
|
|
413
414
|
|
|
415
|
+
.manual-booking-summary-mobile {
|
|
416
|
+
display: none;
|
|
417
|
+
|
|
418
|
+
@include media-breakpoint-down(sm) {
|
|
419
|
+
display: block;
|
|
420
|
+
padding: 0 1.5rem;
|
|
421
|
+
padding-top: 2rem;
|
|
422
|
+
height: max-content;
|
|
423
|
+
margin-bottom: 1.5rem;
|
|
424
|
+
width: inherit;
|
|
425
|
+
|
|
426
|
+
.form-control {
|
|
427
|
+
margin-bottom: .5rem;
|
|
428
|
+
}
|
|
429
|
+
.receipt-title {
|
|
430
|
+
font-size: 1.125rem;
|
|
431
|
+
font-weight: 600;
|
|
432
|
+
padding-bottom: 0.4rem;
|
|
433
|
+
margin-bottom: 1rem;
|
|
434
|
+
border-bottom: 2px solid $gray-400;
|
|
435
|
+
}
|
|
436
|
+
.event-name {
|
|
437
|
+
font-size: 0.94rem;
|
|
438
|
+
font-weight: 600;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.border-summary-item {
|
|
442
|
+
padding-bottom: 0.9rem;
|
|
443
|
+
margin-bottom: 1%;
|
|
444
|
+
border-bottom: 2px solid $gray-100;
|
|
445
|
+
flex-wrap: wrap;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.total-container {
|
|
449
|
+
display: flex;
|
|
450
|
+
justify-content: space-between;
|
|
451
|
+
font-size: 1rem;
|
|
452
|
+
font-weight: 600;
|
|
453
|
+
|
|
454
|
+
@include media-breakpoint-down(lg) {
|
|
455
|
+
flex-wrap: wrap;
|
|
456
|
+
}
|
|
457
|
+
.total-amount {
|
|
458
|
+
padding-left: 1rem;
|
|
459
|
+
@include media-breakpoint-down(lg) {
|
|
460
|
+
padding-left: 0;
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.summary-item-container {
|
|
466
|
+
.border-summary-item:nth-last-child(2) {
|
|
467
|
+
border-bottom: 2px solid $gray-400;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
414
473
|
.menu-list-manual-booking {
|
|
415
474
|
display: flex;
|
|
416
475
|
align-items: center;
|
|
@@ -437,4 +496,4 @@
|
|
|
437
496
|
color: $blue;
|
|
438
497
|
}
|
|
439
498
|
}
|
|
440
|
-
}
|
|
499
|
+
}
|
|
@@ -27,6 +27,7 @@ $btn-switch-option-padding-y: calc(#{$btn-padding-y} - #{sp(1)}) !default;
|
|
|
27
27
|
border-radius: $btn-switch-option-border-radius;
|
|
28
28
|
margin: 0;
|
|
29
29
|
padding: $btn-switch-option-padding-y $btn-switch-option-padding-x;
|
|
30
|
+
min-width: 4.25rem;
|
|
30
31
|
|
|
31
32
|
&:hover,
|
|
32
33
|
&:active,
|
|
@@ -11,6 +11,12 @@ $tab-nav-link-active-border-bottom: 1px solid $tab-nav-link-active-color !defaul
|
|
|
11
11
|
margin-left: -1.25rem;
|
|
12
12
|
border-bottom: 1px solid $nav-tabs-border-color;
|
|
13
13
|
|
|
14
|
+
@include media-breakpoint-down(sm) {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
.nav-link {
|
|
15
21
|
color: $tab-nav-link-color;
|
|
16
22
|
background-color: transparent;
|