@qite/tide-booking-component 1.4.5 → 1.4.7
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/.vs/ProjectSettings.json +3 -3
- package/.vs/VSWorkspaceState.json +5 -5
- package/README.md +8 -8
- package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +1 -1
- package/build/build-cjs/index.js +11 -3
- package/build/build-cjs/shared/utils/localization-util.d.ts +0 -3
- package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +1 -1
- package/build/build-esm/index.js +11 -3
- package/build/build-esm/shared/utils/localization-util.d.ts +0 -3
- package/package.json +1 -1
- package/rollup.config.js +23 -23
- package/src/booking-product/components/age-select.tsx +35 -35
- package/src/booking-product/components/amount-input.tsx +78 -78
- package/src/booking-product/components/date-range-picker/calendar-day.tsx +58 -58
- package/src/booking-product/components/date-range-picker/calendar.tsx +178 -178
- package/src/booking-product/components/date-range-picker/index.tsx +196 -196
- package/src/booking-product/components/dates.tsx +136 -136
- package/src/booking-product/components/footer.tsx +69 -69
- package/src/booking-product/components/header.tsx +79 -79
- package/src/booking-product/components/icon.tsx +251 -251
- package/src/booking-product/components/rating.tsx +21 -21
- package/src/booking-product/components/rooms.tsx +199 -199
- package/src/booking-product/index.tsx +30 -30
- package/src/booking-product/settings-context.ts +14 -14
- package/src/booking-product/types.ts +28 -28
- package/src/booking-product/utils/api.ts +25 -25
- package/src/booking-product/utils/price.ts +28 -28
- package/src/booking-wizard/api-settings-slice.ts +24 -24
- package/src/booking-wizard/components/icon.tsx +508 -508
- package/src/booking-wizard/components/labeled-input.tsx +64 -64
- package/src/booking-wizard/components/labeled-select.tsx +69 -69
- package/src/booking-wizard/components/message.tsx +34 -34
- package/src/booking-wizard/components/multi-range-filter.tsx +113 -113
- package/src/booking-wizard/components/product-card.tsx +37 -37
- package/src/booking-wizard/components/step-indicator.tsx +51 -51
- package/src/booking-wizard/components/step-route.tsx +27 -27
- package/src/booking-wizard/declarations.d.ts +4 -4
- package/src/booking-wizard/features/booking/api.ts +49 -49
- package/src/booking-wizard/features/booking/booking-slice.ts +3 -3
- package/src/booking-wizard/features/booking/booking.tsx +9 -0
- package/src/booking-wizard/features/booking/constants.ts +16 -16
- package/src/booking-wizard/features/error/error.tsx +78 -78
- package/src/booking-wizard/features/flight-options/flight-filter.tsx +432 -432
- package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +385 -385
- package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +229 -229
- package/src/booking-wizard/features/flight-options/flight-option.tsx +80 -80
- package/src/booking-wizard/features/flight-options/index.tsx +196 -196
- package/src/booking-wizard/features/price-details/price-details-api.ts +24 -24
- package/src/booking-wizard/features/price-details/price-details-slice.ts +178 -178
- package/src/booking-wizard/features/price-details/util.ts +155 -155
- package/src/booking-wizard/features/product-options/no-options.tsx +21 -21
- package/src/booking-wizard/features/product-options/none-option.tsx +121 -121
- package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +64 -64
- package/src/booking-wizard/features/product-options/option-booking-group.tsx +216 -216
- package/src/booking-wizard/features/product-options/option-item.tsx +321 -321
- package/src/booking-wizard/features/product-options/option-pax-card.tsx +201 -201
- package/src/booking-wizard/features/product-options/option-pax-group.tsx +175 -175
- package/src/booking-wizard/features/product-options/option-unit-group.tsx +198 -198
- package/src/booking-wizard/features/product-options/option-units-card.tsx +185 -185
- package/src/booking-wizard/features/room-options/index.tsx +187 -187
- package/src/booking-wizard/features/room-options/room-utils.ts +191 -190
- package/src/booking-wizard/features/room-options/room.tsx +161 -161
- package/src/booking-wizard/features/room-options/traveler-rooms.tsx +75 -75
- package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -25
- package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +69 -69
- package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +63 -63
- package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +66 -66
- package/src/booking-wizard/features/summary/summary-slice.ts +28 -28
- package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +101 -101
- package/src/booking-wizard/index.tsx +36 -36
- package/src/booking-wizard/store.ts +31 -31
- package/src/index.ts +4 -4
- package/src/shared/components/loader.tsx +16 -16
- package/src/shared/types.ts +4 -4
- package/src/shared/utils/class-util.ts +9 -9
- package/src/shared/utils/localization-util.ts +62 -62
- package/src/shared/utils/query-string-util.ts +119 -119
- package/styles/booking-product-variables.scss +394 -394
- package/styles/booking-product.scss +446 -446
- package/styles/components/_animations.scss +39 -39
- package/styles/components/_base.scss +107 -107
- package/styles/components/_button.scss +238 -238
- package/styles/components/_checkbox.scss +219 -219
- package/styles/components/_cta.scss +208 -208
- package/styles/components/_date-list.scss +41 -41
- package/styles/components/_date-range-picker.scss +225 -225
- package/styles/components/_decrement-increment.scss +35 -35
- package/styles/components/_flight-option.scss +1429 -1429
- package/styles/components/_info-message.scss +71 -71
- package/styles/components/_input.scss +25 -25
- package/styles/components/_list.scss +187 -187
- package/styles/components/_loader.scss +72 -72
- package/styles/components/_mixins.scss +550 -550
- package/styles/components/_placeholders.scss +166 -166
- package/styles/components/_pricing-summary.scss +155 -155
- package/styles/components/_qsm.scss +17 -17
- package/styles/components/_radiobutton.scss +170 -170
- package/styles/components/_select-wrapper.scss +80 -80
- package/styles/components/_spinner.scss +29 -29
- package/styles/components/_table.scss +81 -81
- package/styles/components/_tree.scss +530 -530
- package/styles/components/_typeahead.scss +281 -281
- package/styles/components/_variables.scss +89 -89
- package/tsconfig.json +24 -24
package/.vs/ProjectSettings.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
{
|
|
2
|
-
"CurrentProjectSetting": null
|
|
3
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"CurrentProjectSetting": null
|
|
3
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
{
|
|
2
|
-
"ExpandedNodes": [""],
|
|
3
|
-
"SelectedNode": "\\D:\\2.0. Qite\\Tide-Booking-Component\\tide-booking-component",
|
|
4
|
-
"PreviewInSolutionExplorer": false
|
|
5
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"ExpandedNodes": [""],
|
|
3
|
+
"SelectedNode": "\\D:\\2.0. Qite\\Tide-Booking-Component\\tide-booking-component",
|
|
4
|
+
"PreviewInSolutionExplorer": false
|
|
5
|
+
}
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# README
|
|
2
|
-
|
|
3
|
-
This is the unified Tide Booking Component.
|
|
4
|
-
|
|
5
|
-
## Remarks
|
|
6
|
-
|
|
7
|
-
Do not forget to sync React versions when you're doing local changes and when you try to test them in a local React project (check https://reactjs.org/warnings/invalid-hook-call-warning.html#duplicate-react).
|
|
8
|
-
If using the playground, after installing it's node modules execute the following command in the root folder `npm link ./playground/node_modules/react`
|
|
1
|
+
# README
|
|
2
|
+
|
|
3
|
+
This is the unified Tide Booking Component.
|
|
4
|
+
|
|
5
|
+
## Remarks
|
|
6
|
+
|
|
7
|
+
Do not forget to sync React versions when you're doing local changes and when you try to test them in a local React project (check https://reactjs.org/warnings/invalid-hook-call-warning.html#duplicate-react).
|
|
8
|
+
If using the playground, after installing it's node modules execute the following command in the root folder `npm link ./playground/node_modules/react`
|
|
@@ -42,6 +42,6 @@ export declare const fetchPackage: import("@reduxjs/toolkit").AsyncThunk<void, v
|
|
|
42
42
|
fulfilledMeta?: unknown;
|
|
43
43
|
rejectedMeta?: unknown;
|
|
44
44
|
}>;
|
|
45
|
-
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").
|
|
45
|
+
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ProductAttributes | undefined, "booking/setProductAttributes">, setBookingAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingAttributes | undefined, "booking/setBookingAttributes">, setCalculateDeposit: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setCalculateDeposit">, setBookingNumber: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingNumber">, setIsRetry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsRetry">, setFetchingPackage: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setFetchingPackage">, setPackage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingPackage | undefined, "booking/setPackage">, setPackageRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingPackageRoom[], "booking/setPackageRooms">, setPackageOptionPax: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionPax[], "booking/setPackageOptionPax">, setPackageOptionUnits: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionUnit[], "booking/setPackageOptionUnits">, setPackageGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionGroup<PerBookingPackageOption>[], "booking/setPackageGroups">, setSkipPayment: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setSkipPayment">, setGeneratePaymentUrl: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setGeneratePaymentUrl">, setTagIds: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[] | undefined, "booking/setTagIds">, setAgentAdressId: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number | undefined, "booking/setAgentAdressId">, setBookingRemarks: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingRemarks">, setVoucherCodes: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "booking/setVoucherCodes">, setCurrentStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingStep, "booking/setCurrentStep">, setPackageAirlineGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirlineGroup<AirlineBookingPackageOption>[], "booking/setPackageAirlineGroups">, setPackageAirportGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirportGroup<AirportBookingPackageOption>[], "booking/setPackageAirportGroups">, setFlights: import("@reduxjs/toolkit").ActionCreatorWithPayload<GroupedFlights, "booking/setFlights">, setAccommodationViewId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setAccommodationViewId">, setIsOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsOption">;
|
|
46
46
|
declare const _default: import("redux").Reducer<BookingState, import("redux").AnyAction>;
|
|
47
47
|
export default _default;
|
package/build/build-cjs/index.js
CHANGED
|
@@ -12323,9 +12323,10 @@ var updatePackageRooms = function (rooms, index, accommodationCode, regimeCode,
|
|
|
12323
12323
|
if (availability) {
|
|
12324
12324
|
var accoCount = accoCounter.find(function (x) { return x.code === option.accommodationCode; });
|
|
12325
12325
|
var roomsLeft = availability.count - usedCount;
|
|
12326
|
-
var isOnRequest =
|
|
12327
|
-
|
|
12328
|
-
|
|
12326
|
+
var isOnRequest = (option.isOnRequest && availability.count == 99) // Tide sets count to 99 if an option falls back to on request.
|
|
12327
|
+
|| (isCurrentOption
|
|
12328
|
+
? accoCount.count < 0 && ((_b = availability === null || availability === void 0 ? void 0 : availability.onRequestPossible) !== null && _b !== void 0 ? _b : false)
|
|
12329
|
+
: roomsLeft < 0 && ((_c = availability === null || availability === void 0 ? void 0 : availability.onRequestPossible) !== null && _c !== void 0 ? _c : false));
|
|
12329
12330
|
if (isCurrentOption)
|
|
12330
12331
|
accoCount.count--;
|
|
12331
12332
|
return __assign(__assign({}, option), { isLocked: !option.isSelected &&
|
|
@@ -15066,6 +15067,13 @@ var Booking = function (_a) {
|
|
|
15066
15067
|
var packageDetails = reactRedux.useSelector(selectPackageDetails);
|
|
15067
15068
|
var isUnvailable = reactRedux.useSelector(selectIsUnavailable);
|
|
15068
15069
|
var translations = reactRedux.useSelector(selectTranslations);
|
|
15070
|
+
React.useEffect(function () {
|
|
15071
|
+
return function () {
|
|
15072
|
+
dispatch(setPackage(undefined));
|
|
15073
|
+
dispatch(setBookingAttributes(undefined));
|
|
15074
|
+
dispatch(setProductAttributes(undefined));
|
|
15075
|
+
};
|
|
15076
|
+
}, []);
|
|
15069
15077
|
React.useEffect(function () {
|
|
15070
15078
|
dispatch(setSkipPayment(skipPaymentWithAgent !== null && skipPaymentWithAgent !== void 0 ? skipPaymentWithAgent : false));
|
|
15071
15079
|
dispatch(setGeneratePaymentUrl(generatePaymentUrl !== null && generatePaymentUrl !== void 0 ? generatePaymentUrl : false));
|
|
@@ -166,11 +166,8 @@ export declare const getTranslations: (language: string) => {
|
|
|
166
166
|
CHOOSE_AGENT_PLACEHOLDER: string;
|
|
167
167
|
VALIDATION: {
|
|
168
168
|
TRAVELER_X_FIELD: string;
|
|
169
|
-
SINGLE_ROOM_TRAVELER_X_FIELD: string;
|
|
170
169
|
TRAVELER_X_IS_NO_ADULT: string;
|
|
171
|
-
SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT: string;
|
|
172
170
|
TRAVELER_X_IS_NO_CHILD: string;
|
|
173
|
-
SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD: string;
|
|
174
171
|
NO_MAIN_BOOKER_SELECTED: string;
|
|
175
172
|
MAIN_BOOKER_FIELD: string;
|
|
176
173
|
MAIN_BOOKER_EMAIL_IS_INVALID: string;
|
|
@@ -42,6 +42,6 @@ export declare const fetchPackage: import("@reduxjs/toolkit").AsyncThunk<void, v
|
|
|
42
42
|
fulfilledMeta?: unknown;
|
|
43
43
|
rejectedMeta?: unknown;
|
|
44
44
|
}>;
|
|
45
|
-
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").
|
|
45
|
+
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ProductAttributes | undefined, "booking/setProductAttributes">, setBookingAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingAttributes | undefined, "booking/setBookingAttributes">, setCalculateDeposit: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setCalculateDeposit">, setBookingNumber: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingNumber">, setIsRetry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsRetry">, setFetchingPackage: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setFetchingPackage">, setPackage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingPackage | undefined, "booking/setPackage">, setPackageRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingPackageRoom[], "booking/setPackageRooms">, setPackageOptionPax: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionPax[], "booking/setPackageOptionPax">, setPackageOptionUnits: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionUnit[], "booking/setPackageOptionUnits">, setPackageGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionGroup<PerBookingPackageOption>[], "booking/setPackageGroups">, setSkipPayment: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setSkipPayment">, setGeneratePaymentUrl: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setGeneratePaymentUrl">, setTagIds: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[] | undefined, "booking/setTagIds">, setAgentAdressId: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number | undefined, "booking/setAgentAdressId">, setBookingRemarks: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingRemarks">, setVoucherCodes: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "booking/setVoucherCodes">, setCurrentStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingStep, "booking/setCurrentStep">, setPackageAirlineGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirlineGroup<AirlineBookingPackageOption>[], "booking/setPackageAirlineGroups">, setPackageAirportGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirportGroup<AirportBookingPackageOption>[], "booking/setPackageAirportGroups">, setFlights: import("@reduxjs/toolkit").ActionCreatorWithPayload<GroupedFlights, "booking/setFlights">, setAccommodationViewId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setAccommodationViewId">, setIsOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsOption">;
|
|
46
46
|
declare const _default: import("redux").Reducer<BookingState, import("redux").AnyAction>;
|
|
47
47
|
export default _default;
|
package/build/build-esm/index.js
CHANGED
|
@@ -12312,9 +12312,10 @@ var updatePackageRooms = function (rooms, index, accommodationCode, regimeCode,
|
|
|
12312
12312
|
if (availability) {
|
|
12313
12313
|
var accoCount = accoCounter.find(function (x) { return x.code === option.accommodationCode; });
|
|
12314
12314
|
var roomsLeft = availability.count - usedCount;
|
|
12315
|
-
var isOnRequest =
|
|
12316
|
-
|
|
12317
|
-
|
|
12315
|
+
var isOnRequest = (option.isOnRequest && availability.count == 99) // Tide sets count to 99 if an option falls back to on request.
|
|
12316
|
+
|| (isCurrentOption
|
|
12317
|
+
? accoCount.count < 0 && ((_b = availability === null || availability === void 0 ? void 0 : availability.onRequestPossible) !== null && _b !== void 0 ? _b : false)
|
|
12318
|
+
: roomsLeft < 0 && ((_c = availability === null || availability === void 0 ? void 0 : availability.onRequestPossible) !== null && _c !== void 0 ? _c : false));
|
|
12318
12319
|
if (isCurrentOption)
|
|
12319
12320
|
accoCount.count--;
|
|
12320
12321
|
return __assign(__assign({}, option), { isLocked: !option.isSelected &&
|
|
@@ -15055,6 +15056,13 @@ var Booking = function (_a) {
|
|
|
15055
15056
|
var packageDetails = useSelector(selectPackageDetails);
|
|
15056
15057
|
var isUnvailable = useSelector(selectIsUnavailable);
|
|
15057
15058
|
var translations = useSelector(selectTranslations);
|
|
15059
|
+
useEffect(function () {
|
|
15060
|
+
return function () {
|
|
15061
|
+
dispatch(setPackage(undefined));
|
|
15062
|
+
dispatch(setBookingAttributes(undefined));
|
|
15063
|
+
dispatch(setProductAttributes(undefined));
|
|
15064
|
+
};
|
|
15065
|
+
}, []);
|
|
15058
15066
|
useEffect(function () {
|
|
15059
15067
|
dispatch(setSkipPayment(skipPaymentWithAgent !== null && skipPaymentWithAgent !== void 0 ? skipPaymentWithAgent : false));
|
|
15060
15068
|
dispatch(setGeneratePaymentUrl(generatePaymentUrl !== null && generatePaymentUrl !== void 0 ? generatePaymentUrl : false));
|
|
@@ -166,11 +166,8 @@ export declare const getTranslations: (language: string) => {
|
|
|
166
166
|
CHOOSE_AGENT_PLACEHOLDER: string;
|
|
167
167
|
VALIDATION: {
|
|
168
168
|
TRAVELER_X_FIELD: string;
|
|
169
|
-
SINGLE_ROOM_TRAVELER_X_FIELD: string;
|
|
170
169
|
TRAVELER_X_IS_NO_ADULT: string;
|
|
171
|
-
SINGLE_ROOM_TRAVELER_X_IS_NO_ADULT: string;
|
|
172
170
|
TRAVELER_X_IS_NO_CHILD: string;
|
|
173
|
-
SINGLE_ROOM_TRAVELER_X_IS_NO_CHILD: string;
|
|
174
171
|
NO_MAIN_BOOKER_SELECTED: string;
|
|
175
172
|
MAIN_BOOKER_FIELD: string;
|
|
176
173
|
MAIN_BOOKER_EMAIL_IS_INVALID: string;
|
package/package.json
CHANGED
package/rollup.config.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import commonjs from "@rollup/plugin-commonjs";
|
|
2
|
-
import del from "rollup-plugin-delete";
|
|
3
|
-
import json from "@rollup/plugin-json";
|
|
4
|
-
import nodeResolve from "@rollup/plugin-node-resolve";
|
|
5
|
-
import packageJson from "./package.json";
|
|
6
|
-
import peerDepsExternal from "rollup-plugin-peer-deps-external";
|
|
7
|
-
import typescript from "rollup-plugin-typescript2";
|
|
8
|
-
|
|
9
|
-
export default {
|
|
10
|
-
input: "src/index.ts",
|
|
11
|
-
output: [
|
|
12
|
-
{ file: packageJson.main, format: "cjs", banner: "/* eslint-disable */" },
|
|
13
|
-
{ file: packageJson.module, format: "esm", banner: "/* eslint-disable */" },
|
|
14
|
-
],
|
|
15
|
-
plugins: [
|
|
16
|
-
peerDepsExternal(),
|
|
17
|
-
json(),
|
|
18
|
-
nodeResolve(),
|
|
19
|
-
commonjs(),
|
|
20
|
-
typescript(),
|
|
21
|
-
del({ targets: ["build/*"] }),
|
|
22
|
-
],
|
|
23
|
-
};
|
|
1
|
+
import commonjs from "@rollup/plugin-commonjs";
|
|
2
|
+
import del from "rollup-plugin-delete";
|
|
3
|
+
import json from "@rollup/plugin-json";
|
|
4
|
+
import nodeResolve from "@rollup/plugin-node-resolve";
|
|
5
|
+
import packageJson from "./package.json";
|
|
6
|
+
import peerDepsExternal from "rollup-plugin-peer-deps-external";
|
|
7
|
+
import typescript from "rollup-plugin-typescript2";
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
input: "src/index.ts",
|
|
11
|
+
output: [
|
|
12
|
+
{ file: packageJson.main, format: "cjs", banner: "/* eslint-disable */" },
|
|
13
|
+
{ file: packageJson.module, format: "esm", banner: "/* eslint-disable */" },
|
|
14
|
+
],
|
|
15
|
+
plugins: [
|
|
16
|
+
peerDepsExternal(),
|
|
17
|
+
json(),
|
|
18
|
+
nodeResolve(),
|
|
19
|
+
commonjs(),
|
|
20
|
+
typescript(),
|
|
21
|
+
del({ targets: ["build/*"] }),
|
|
22
|
+
],
|
|
23
|
+
};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { range } from "lodash";
|
|
2
|
-
import React, { useContext } from "react";
|
|
3
|
-
import { getTranslations } from "../../shared/utils/localization-util";
|
|
4
|
-
import SettingsContext from "../settings-context";
|
|
5
|
-
|
|
6
|
-
interface AgeSelectProps {
|
|
7
|
-
value?: number;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
onChange?: (value: number) => void;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const AgeSelect: React.FC<AgeSelectProps> = ({ value, disabled, onChange }) => {
|
|
13
|
-
const { language } = useContext(SettingsContext);
|
|
14
|
-
const translations = getTranslations(language);
|
|
15
|
-
|
|
16
|
-
const handleChange: React.ChangeEventHandler<HTMLSelectElement> = (event) => {
|
|
17
|
-
if (onChange) {
|
|
18
|
-
onChange(event.target.selectedIndex);
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<div className="dropdown dropdown--small">
|
|
24
|
-
<select onChange={handleChange} value={value ?? 0} disabled={disabled}>
|
|
25
|
-
{range(0, 18).map((age) => (
|
|
26
|
-
<option key={age} value={age}>
|
|
27
|
-
{age} {translations.PRODUCT.YEAR}
|
|
28
|
-
</option>
|
|
29
|
-
))}
|
|
30
|
-
</select>
|
|
31
|
-
</div>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
export default AgeSelect;
|
|
1
|
+
import { range } from "lodash";
|
|
2
|
+
import React, { useContext } from "react";
|
|
3
|
+
import { getTranslations } from "../../shared/utils/localization-util";
|
|
4
|
+
import SettingsContext from "../settings-context";
|
|
5
|
+
|
|
6
|
+
interface AgeSelectProps {
|
|
7
|
+
value?: number;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
onChange?: (value: number) => void;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const AgeSelect: React.FC<AgeSelectProps> = ({ value, disabled, onChange }) => {
|
|
13
|
+
const { language } = useContext(SettingsContext);
|
|
14
|
+
const translations = getTranslations(language);
|
|
15
|
+
|
|
16
|
+
const handleChange: React.ChangeEventHandler<HTMLSelectElement> = (event) => {
|
|
17
|
+
if (onChange) {
|
|
18
|
+
onChange(event.target.selectedIndex);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<div className="dropdown dropdown--small">
|
|
24
|
+
<select onChange={handleChange} value={value ?? 0} disabled={disabled}>
|
|
25
|
+
{range(0, 18).map((age) => (
|
|
26
|
+
<option key={age} value={age}>
|
|
27
|
+
{age} {translations.PRODUCT.YEAR}
|
|
28
|
+
</option>
|
|
29
|
+
))}
|
|
30
|
+
</select>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default AgeSelect;
|
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import React, { useContext } from "react";
|
|
2
|
-
import { getTranslations } from "../../shared/utils/localization-util";
|
|
3
|
-
import SettingsContext from "../settings-context";
|
|
4
|
-
import { buildClassName } from "../../shared/utils/class-util";
|
|
5
|
-
import Icon from "./icon";
|
|
6
|
-
|
|
7
|
-
interface AmountInputProps {
|
|
8
|
-
label: string;
|
|
9
|
-
value: number;
|
|
10
|
-
disabled?: boolean;
|
|
11
|
-
min?: number;
|
|
12
|
-
onChange?: (value: number) => void;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const AmountInput: React.FC<AmountInputProps> = ({
|
|
16
|
-
label,
|
|
17
|
-
value,
|
|
18
|
-
disabled,
|
|
19
|
-
min,
|
|
20
|
-
onChange,
|
|
21
|
-
}) => {
|
|
22
|
-
const { language } = useContext(SettingsContext);
|
|
23
|
-
const translations = getTranslations(language);
|
|
24
|
-
|
|
25
|
-
const handleIncreaseClick: React.MouseEventHandler<HTMLButtonElement> = (
|
|
26
|
-
event
|
|
27
|
-
) => {
|
|
28
|
-
if (onChange) {
|
|
29
|
-
onChange(value + 1);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
const handleDecreaseClick: React.MouseEventHandler<HTMLButtonElement> = (
|
|
34
|
-
event
|
|
35
|
-
) => {
|
|
36
|
-
if (onChange) {
|
|
37
|
-
onChange(Math.max(value - 1, min ?? 0));
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<div
|
|
43
|
-
className={buildClassName([
|
|
44
|
-
"decrement-increment",
|
|
45
|
-
disabled && "decrement-increment--disabled",
|
|
46
|
-
])}
|
|
47
|
-
>
|
|
48
|
-
<label className="decrement-increment__label">{label}</label>
|
|
49
|
-
<div className="decrement-increment__ui">
|
|
50
|
-
{!disabled && (
|
|
51
|
-
<button
|
|
52
|
-
type="button"
|
|
53
|
-
className="button button--decrement"
|
|
54
|
-
title={translations.INPUT.DECREASE}
|
|
55
|
-
disabled={disabled}
|
|
56
|
-
onClick={handleDecreaseClick}
|
|
57
|
-
>
|
|
58
|
-
<Icon name="ui-min" />
|
|
59
|
-
</button>
|
|
60
|
-
)}
|
|
61
|
-
<span>{value}</span>
|
|
62
|
-
{!disabled && (
|
|
63
|
-
<button
|
|
64
|
-
type="button"
|
|
65
|
-
className="button button--increment"
|
|
66
|
-
title={translations.INPUT.INCREASE}
|
|
67
|
-
disabled={disabled}
|
|
68
|
-
onClick={handleIncreaseClick}
|
|
69
|
-
>
|
|
70
|
-
<Icon name="ui-plus" />
|
|
71
|
-
</button>
|
|
72
|
-
)}
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
);
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
export default AmountInput;
|
|
1
|
+
import React, { useContext } from "react";
|
|
2
|
+
import { getTranslations } from "../../shared/utils/localization-util";
|
|
3
|
+
import SettingsContext from "../settings-context";
|
|
4
|
+
import { buildClassName } from "../../shared/utils/class-util";
|
|
5
|
+
import Icon from "./icon";
|
|
6
|
+
|
|
7
|
+
interface AmountInputProps {
|
|
8
|
+
label: string;
|
|
9
|
+
value: number;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
min?: number;
|
|
12
|
+
onChange?: (value: number) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const AmountInput: React.FC<AmountInputProps> = ({
|
|
16
|
+
label,
|
|
17
|
+
value,
|
|
18
|
+
disabled,
|
|
19
|
+
min,
|
|
20
|
+
onChange,
|
|
21
|
+
}) => {
|
|
22
|
+
const { language } = useContext(SettingsContext);
|
|
23
|
+
const translations = getTranslations(language);
|
|
24
|
+
|
|
25
|
+
const handleIncreaseClick: React.MouseEventHandler<HTMLButtonElement> = (
|
|
26
|
+
event
|
|
27
|
+
) => {
|
|
28
|
+
if (onChange) {
|
|
29
|
+
onChange(value + 1);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const handleDecreaseClick: React.MouseEventHandler<HTMLButtonElement> = (
|
|
34
|
+
event
|
|
35
|
+
) => {
|
|
36
|
+
if (onChange) {
|
|
37
|
+
onChange(Math.max(value - 1, min ?? 0));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<div
|
|
43
|
+
className={buildClassName([
|
|
44
|
+
"decrement-increment",
|
|
45
|
+
disabled && "decrement-increment--disabled",
|
|
46
|
+
])}
|
|
47
|
+
>
|
|
48
|
+
<label className="decrement-increment__label">{label}</label>
|
|
49
|
+
<div className="decrement-increment__ui">
|
|
50
|
+
{!disabled && (
|
|
51
|
+
<button
|
|
52
|
+
type="button"
|
|
53
|
+
className="button button--decrement"
|
|
54
|
+
title={translations.INPUT.DECREASE}
|
|
55
|
+
disabled={disabled}
|
|
56
|
+
onClick={handleDecreaseClick}
|
|
57
|
+
>
|
|
58
|
+
<Icon name="ui-min" />
|
|
59
|
+
</button>
|
|
60
|
+
)}
|
|
61
|
+
<span>{value}</span>
|
|
62
|
+
{!disabled && (
|
|
63
|
+
<button
|
|
64
|
+
type="button"
|
|
65
|
+
className="button button--increment"
|
|
66
|
+
title={translations.INPUT.INCREASE}
|
|
67
|
+
disabled={disabled}
|
|
68
|
+
onClick={handleIncreaseClick}
|
|
69
|
+
>
|
|
70
|
+
<Icon name="ui-plus" />
|
|
71
|
+
</button>
|
|
72
|
+
)}
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export default AmountInput;
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { getDate, isToday } from "date-fns";
|
|
3
|
-
import { buildClassName } from "../../../shared/utils/class-util";
|
|
4
|
-
|
|
5
|
-
interface CalendarDayProps {
|
|
6
|
-
day: Date;
|
|
7
|
-
isSelected: boolean;
|
|
8
|
-
isDisabled: boolean;
|
|
9
|
-
isOutsideMonth: boolean;
|
|
10
|
-
extraClassNames?: string[];
|
|
11
|
-
onClick: (date: Date) => void;
|
|
12
|
-
onMouseOver: (date: Date) => void;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const CalendarDay: React.FC<CalendarDayProps> = ({
|
|
16
|
-
day,
|
|
17
|
-
isSelected,
|
|
18
|
-
isDisabled,
|
|
19
|
-
isOutsideMonth,
|
|
20
|
-
extraClassNames = [],
|
|
21
|
-
children,
|
|
22
|
-
onClick,
|
|
23
|
-
onMouseOver,
|
|
24
|
-
}) => {
|
|
25
|
-
const handleClick = () => {
|
|
26
|
-
if (onClick && !isDisabled) {
|
|
27
|
-
onClick(day);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const handleMouseOver = () => {
|
|
32
|
-
if (onMouseOver) {
|
|
33
|
-
onMouseOver(day);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
const classNames = buildClassName([
|
|
38
|
-
"calendar__day",
|
|
39
|
-
isToday(day) && "calendar__day--today",
|
|
40
|
-
isDisabled && "calendar__day--disabled",
|
|
41
|
-
isOutsideMonth && "calendar__day--outside-month",
|
|
42
|
-
isSelected && "calendar__day--selected",
|
|
43
|
-
...extraClassNames,
|
|
44
|
-
]);
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<div
|
|
48
|
-
className={classNames}
|
|
49
|
-
onClick={handleClick}
|
|
50
|
-
onMouseOver={handleMouseOver}
|
|
51
|
-
>
|
|
52
|
-
{getDate(day).toString().padStart(2, "0")}
|
|
53
|
-
{children}
|
|
54
|
-
</div>
|
|
55
|
-
);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default CalendarDay;
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { getDate, isToday } from "date-fns";
|
|
3
|
+
import { buildClassName } from "../../../shared/utils/class-util";
|
|
4
|
+
|
|
5
|
+
interface CalendarDayProps {
|
|
6
|
+
day: Date;
|
|
7
|
+
isSelected: boolean;
|
|
8
|
+
isDisabled: boolean;
|
|
9
|
+
isOutsideMonth: boolean;
|
|
10
|
+
extraClassNames?: string[];
|
|
11
|
+
onClick: (date: Date) => void;
|
|
12
|
+
onMouseOver: (date: Date) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const CalendarDay: React.FC<CalendarDayProps> = ({
|
|
16
|
+
day,
|
|
17
|
+
isSelected,
|
|
18
|
+
isDisabled,
|
|
19
|
+
isOutsideMonth,
|
|
20
|
+
extraClassNames = [],
|
|
21
|
+
children,
|
|
22
|
+
onClick,
|
|
23
|
+
onMouseOver,
|
|
24
|
+
}) => {
|
|
25
|
+
const handleClick = () => {
|
|
26
|
+
if (onClick && !isDisabled) {
|
|
27
|
+
onClick(day);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const handleMouseOver = () => {
|
|
32
|
+
if (onMouseOver) {
|
|
33
|
+
onMouseOver(day);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const classNames = buildClassName([
|
|
38
|
+
"calendar__day",
|
|
39
|
+
isToday(day) && "calendar__day--today",
|
|
40
|
+
isDisabled && "calendar__day--disabled",
|
|
41
|
+
isOutsideMonth && "calendar__day--outside-month",
|
|
42
|
+
isSelected && "calendar__day--selected",
|
|
43
|
+
...extraClassNames,
|
|
44
|
+
]);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div
|
|
48
|
+
className={classNames}
|
|
49
|
+
onClick={handleClick}
|
|
50
|
+
onMouseOver={handleMouseOver}
|
|
51
|
+
>
|
|
52
|
+
{getDate(day).toString().padStart(2, "0")}
|
|
53
|
+
{children}
|
|
54
|
+
</div>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export default CalendarDay;
|