@qite/tide-booking-component 0.0.2-preview.9 → 1.0.0-preview

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +1 -0
  2. package/build/build-cjs/booking-wizard/components/message.d.ts +1 -0
  3. package/build/build-cjs/booking-wizard/components/product-card.d.ts +1 -2
  4. package/build/build-cjs/booking-wizard/features/booking/api.d.ts +21 -0
  5. package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +95 -19
  6. package/build/build-cjs/booking-wizard/features/booking/booking.d.ts +1 -2
  7. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +208 -0
  8. package/build/build-cjs/booking-wizard/features/price-details/price-details-api.d.ts +8 -6
  9. package/build/build-cjs/booking-wizard/features/price-details/price-details-slice.d.ts +98 -30
  10. package/build/build-cjs/booking-wizard/features/price-details/util.d.ts +5 -0
  11. package/build/build-cjs/booking-wizard/features/product-options/no-options.d.ts +2 -0
  12. package/build/build-cjs/booking-wizard/features/product-options/none-option.d.ts +17 -0
  13. package/build/build-cjs/booking-wizard/features/product-options/option-booking-group.d.ts +18 -0
  14. package/build/build-cjs/booking-wizard/features/product-options/option-item.d.ts +11 -0
  15. package/build/build-cjs/booking-wizard/features/product-options/option-pax-card.d.ts +9 -0
  16. package/build/build-cjs/booking-wizard/features/product-options/option-pax-group.d.ts +20 -0
  17. package/build/build-cjs/booking-wizard/features/product-options/option-room.d.ts +16 -0
  18. package/build/build-cjs/booking-wizard/features/product-options/option-unit-group.d.ts +20 -0
  19. package/build/build-cjs/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
  20. package/build/build-cjs/booking-wizard/features/sidebar/index.d.ts +5 -1
  21. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -0
  22. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-util.d.ts +22 -5
  23. package/build/build-cjs/booking-wizard/features/sidebar/sidebar.d.ts +16 -8
  24. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
  25. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
  26. package/build/build-cjs/booking-wizard/features/summary/summary-flight.d.ts +8 -0
  27. package/build/build-cjs/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +10 -0
  28. package/build/build-cjs/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +10 -0
  29. package/build/build-cjs/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +10 -0
  30. package/build/build-cjs/booking-wizard/features/summary/summary-slice.d.ts +0 -28
  31. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +82 -88
  32. package/build/build-cjs/booking-wizard/features/travelers-form/type-ahead-input.d.ts +1 -0
  33. package/build/build-cjs/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  34. package/build/build-cjs/booking-wizard/index.d.ts +3 -2
  35. package/build/build-cjs/booking-wizard/store.d.ts +23 -45
  36. package/build/build-cjs/booking-wizard/types.d.ts +63 -11
  37. package/build/build-cjs/booking-wizard/utils/query-string-util.d.ts +13 -0
  38. package/build/build-cjs/index.js +12065 -2381
  39. package/build/build-esm/booking-wizard/components/message.d.ts +1 -0
  40. package/build/build-esm/booking-wizard/components/product-card.d.ts +1 -2
  41. package/build/build-esm/booking-wizard/features/booking/api.d.ts +21 -0
  42. package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +95 -19
  43. package/build/build-esm/booking-wizard/features/booking/booking.d.ts +1 -2
  44. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +208 -0
  45. package/build/build-esm/booking-wizard/features/price-details/price-details-api.d.ts +8 -6
  46. package/build/build-esm/booking-wizard/features/price-details/price-details-slice.d.ts +98 -30
  47. package/build/build-esm/booking-wizard/features/price-details/util.d.ts +5 -0
  48. package/build/build-esm/booking-wizard/features/product-options/no-options.d.ts +2 -0
  49. package/build/build-esm/booking-wizard/features/product-options/none-option.d.ts +17 -0
  50. package/build/build-esm/booking-wizard/features/product-options/option-booking-group.d.ts +18 -0
  51. package/build/build-esm/booking-wizard/features/product-options/option-item.d.ts +11 -0
  52. package/build/build-esm/booking-wizard/features/product-options/option-pax-card.d.ts +9 -0
  53. package/build/build-esm/booking-wizard/features/product-options/option-pax-group.d.ts +20 -0
  54. package/build/build-esm/booking-wizard/features/product-options/option-room.d.ts +16 -0
  55. package/build/build-esm/booking-wizard/features/product-options/option-unit-group.d.ts +20 -0
  56. package/build/build-esm/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
  57. package/build/build-esm/booking-wizard/features/sidebar/index.d.ts +5 -1
  58. package/build/build-esm/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -0
  59. package/build/build-esm/booking-wizard/features/sidebar/sidebar-util.d.ts +22 -5
  60. package/build/build-esm/booking-wizard/features/sidebar/sidebar.d.ts +16 -8
  61. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
  62. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
  63. package/build/build-esm/booking-wizard/features/summary/summary-flight.d.ts +8 -0
  64. package/build/build-esm/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +10 -0
  65. package/build/build-esm/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +10 -0
  66. package/build/build-esm/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +10 -0
  67. package/build/build-esm/booking-wizard/features/summary/summary-slice.d.ts +0 -28
  68. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +82 -88
  69. package/build/build-esm/booking-wizard/features/travelers-form/type-ahead-input.d.ts +1 -0
  70. package/build/build-esm/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  71. package/build/build-esm/booking-wizard/index.d.ts +3 -2
  72. package/build/build-esm/booking-wizard/store.d.ts +23 -45
  73. package/build/build-esm/booking-wizard/types.d.ts +63 -11
  74. package/build/build-esm/booking-wizard/utils/query-string-util.d.ts +13 -0
  75. package/build/build-esm/index.js +11888 -2330
  76. package/package.json +8 -4
  77. package/rollup.config.js +1 -6
  78. package/src/booking-wizard/components/message.tsx +14 -8
  79. package/src/booking-wizard/components/product-card.tsx +10 -39
  80. package/src/booking-wizard/components/step-indicator.tsx +1 -1
  81. package/src/booking-wizard/components/step-route.tsx +1 -1
  82. package/src/booking-wizard/features/booking/api.ts +44 -0
  83. package/src/booking-wizard/features/booking/booking-slice.ts +274 -40
  84. package/src/booking-wizard/features/booking/booking.tsx +193 -57
  85. package/src/booking-wizard/features/booking/selectors.ts +328 -0
  86. package/src/booking-wizard/features/confirmation/confirmation.tsx +22 -11
  87. package/src/booking-wizard/features/error/error.tsx +15 -2
  88. package/src/booking-wizard/features/price-details/price-details-api.ts +12 -6
  89. package/src/booking-wizard/features/price-details/price-details-slice.ts +80 -50
  90. package/src/booking-wizard/features/price-details/util.ts +135 -0
  91. package/src/booking-wizard/features/product-options/no-options.tsx +18 -0
  92. package/src/booking-wizard/features/product-options/none-option.tsx +118 -0
  93. package/src/booking-wizard/features/product-options/option-booking-group.tsx +210 -0
  94. package/src/booking-wizard/features/product-options/option-item.tsx +321 -0
  95. package/src/booking-wizard/features/product-options/option-pax-card.tsx +102 -0
  96. package/src/booking-wizard/features/product-options/option-pax-group.tsx +169 -0
  97. package/src/booking-wizard/features/product-options/option-room.tsx +300 -0
  98. package/src/booking-wizard/features/product-options/option-unit-group.tsx +192 -0
  99. package/src/booking-wizard/features/product-options/option-units-card.tsx +100 -0
  100. package/src/booking-wizard/features/product-options/options-form.tsx +226 -48
  101. package/src/booking-wizard/features/sidebar/index.tsx +43 -20
  102. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +66 -0
  103. package/src/booking-wizard/features/sidebar/sidebar-util.ts +81 -39
  104. package/src/booking-wizard/features/sidebar/sidebar.tsx +150 -100
  105. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -0
  106. package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -0
  107. package/src/booking-wizard/features/summary/summary-flight.tsx +35 -0
  108. package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +57 -0
  109. package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +51 -0
  110. package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +54 -0
  111. package/src/booking-wizard/features/summary/summary-slice.ts +1 -134
  112. package/src/booking-wizard/features/summary/summary.tsx +521 -134
  113. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +54 -55
  114. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +202 -94
  115. package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +23 -3
  116. package/src/booking-wizard/features/travelers-form/validate-form.ts +40 -3
  117. package/src/booking-wizard/index.tsx +5 -6
  118. package/src/booking-wizard/settings-context.ts +33 -5
  119. package/src/booking-wizard/store.ts +5 -4
  120. package/src/booking-wizard/translations/translations.json +95 -61
  121. package/src/booking-wizard/types.ts +67 -10
  122. package/src/booking-wizard/utils/query-string-util.ts +42 -0
  123. package/build/build-cjs/booking-wizard/features/product-options/checkbox.d.ts +0 -11
  124. package/build/build-cjs/booking-wizard/features/product-options/option-details.d.ts +0 -11
  125. package/build/build-cjs/booking-wizard/features/product-options/product-options-api.d.ts +0 -29
  126. package/build/build-cjs/booking-wizard/features/product-options/product-options-slice.d.ts +0 -75
  127. package/build/build-cjs/booking-wizard/features/product-options/radio-button.d.ts +0 -10
  128. package/build/build-cjs/booking-wizard/features/product-options/rooms-slice.d.ts +0 -23
  129. package/build/build-cjs/booking-wizard/features/product-options/tree-level.d.ts +0 -7
  130. package/build/build-esm/booking-wizard/features/product-options/checkbox.d.ts +0 -11
  131. package/build/build-esm/booking-wizard/features/product-options/option-details.d.ts +0 -11
  132. package/build/build-esm/booking-wizard/features/product-options/product-options-api.d.ts +0 -29
  133. package/build/build-esm/booking-wizard/features/product-options/product-options-slice.d.ts +0 -75
  134. package/build/build-esm/booking-wizard/features/product-options/radio-button.d.ts +0 -10
  135. package/build/build-esm/booking-wizard/features/product-options/rooms-slice.d.ts +0 -23
  136. package/build/build-esm/booking-wizard/features/product-options/tree-level.d.ts +0 -7
  137. package/src/booking-wizard/features/product-options/checkbox.tsx +0 -38
  138. package/src/booking-wizard/features/product-options/option-details.tsx +0 -65
  139. package/src/booking-wizard/features/product-options/product-options-api.ts +0 -148
  140. package/src/booking-wizard/features/product-options/product-options-slice.ts +0 -149
  141. package/src/booking-wizard/features/product-options/radio-button.tsx +0 -35
  142. package/src/booking-wizard/features/product-options/rooms-slice.ts +0 -28
  143. package/src/booking-wizard/features/product-options/tree-level.tsx +0 -118
@@ -1,75 +0,0 @@
1
- import { ProductOption } from "./product-options-api";
2
- export declare const fetchProductOptions: import("@reduxjs/toolkit").AsyncThunk<
3
- import("./product-options-api").ProductOptionsResult | undefined,
4
- void,
5
- {}
6
- >;
7
- export declare const selectOptions: (state: {
8
- booking: import("../booking/booking-slice").BookingState;
9
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
10
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
11
- priceDetails: import("@reduxjs/toolkit").EntityState<
12
- import("@qite/tide-client").PriceDetail
13
- >;
14
- rooms: import("@reduxjs/toolkit").EntityState<
15
- import("@qite/tide-client").PackageRoom
16
- >;
17
- summary: import("../summary/summary-slice").SummaryState;
18
- }) => ProductOption[];
19
- export declare const selectSelectedOptions: import("reselect").OutputSelector<
20
- {
21
- booking: import("../booking/booking-slice").BookingState;
22
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
23
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
24
- priceDetails: import("@reduxjs/toolkit").EntityState<
25
- import("@qite/tide-client").PriceDetail
26
- >;
27
- rooms: import("@reduxjs/toolkit").EntityState<
28
- import("@qite/tide-client").PackageRoom
29
- >;
30
- summary: import("../summary/summary-slice").SummaryState;
31
- },
32
- ProductOption[],
33
- (res: ProductOption[]) => ProductOption[]
34
- >;
35
- export declare const selectDepartureFlight: import("reselect").OutputSelector<
36
- {
37
- booking: import("../booking/booking-slice").BookingState;
38
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
39
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
40
- priceDetails: import("@reduxjs/toolkit").EntityState<
41
- import("@qite/tide-client").PriceDetail
42
- >;
43
- rooms: import("@reduxjs/toolkit").EntityState<
44
- import("@qite/tide-client").PackageRoom
45
- >;
46
- summary: import("../summary/summary-slice").SummaryState;
47
- },
48
- ProductOption | undefined,
49
- (res: ProductOption[]) => ProductOption | undefined
50
- >;
51
- export declare const selectReturnFlight: import("reselect").OutputSelector<
52
- {
53
- booking: import("../booking/booking-slice").BookingState;
54
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
55
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
56
- priceDetails: import("@reduxjs/toolkit").EntityState<
57
- import("@qite/tide-client").PriceDetail
58
- >;
59
- rooms: import("@reduxjs/toolkit").EntityState<
60
- import("@qite/tide-client").PackageRoom
61
- >;
62
- summary: import("../summary/summary-slice").SummaryState;
63
- },
64
- ProductOption | undefined,
65
- (res: ProductOption[]) => ProductOption | undefined
66
- >;
67
- export declare const updateOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<
68
- ProductOption,
69
- string
70
- >;
71
- declare const _default: import("redux").Reducer<
72
- import("@reduxjs/toolkit").EntityState<ProductOption>,
73
- import("redux").AnyAction
74
- >;
75
- export default _default;
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- interface RadioButtonProps {
3
- text: string;
4
- name: string;
5
- value: string;
6
- defaultChecked?: boolean;
7
- onChange?: React.ChangeEventHandler<HTMLInputElement>;
8
- }
9
- declare const RadioButton: React.FC<RadioButtonProps>;
10
- export default RadioButton;
@@ -1,23 +0,0 @@
1
- import { PackageRoom } from "@qite/tide-client";
2
- export declare const selectRooms: (state: {
3
- booking: import("../booking/booking-slice").BookingState;
4
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
5
- productOptions: import("@reduxjs/toolkit").EntityState<
6
- import("./product-options-api").ProductOption
7
- >;
8
- priceDetails: import("@reduxjs/toolkit").EntityState<
9
- import("@qite/tide-client").PriceDetail
10
- >;
11
- rooms: import("@reduxjs/toolkit").EntityState<PackageRoom>;
12
- summary: import("../summary/summary-slice").SummaryState;
13
- }) => PackageRoom[];
14
- export declare const setRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<
15
- | readonly PackageRoom[]
16
- | Record<import("@reduxjs/toolkit").EntityId, PackageRoom>,
17
- string
18
- >;
19
- declare const _default: import("redux").Reducer<
20
- import("@reduxjs/toolkit").EntityState<PackageRoom>,
21
- import("redux").AnyAction
22
- >;
23
- export default _default;
@@ -1,7 +0,0 @@
1
- import { ProductOption } from "./product-options-api";
2
- import React from "react";
3
- interface TreeLevelProps {
4
- productOption: ProductOption;
5
- }
6
- declare const TreeLevel: React.FC<TreeLevelProps>;
7
- export default TreeLevel;
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- interface CheckboxProps {
3
- text: string;
4
- value: string;
5
- name: string;
6
- required: boolean;
7
- defaultChecked: boolean;
8
- onChange?: React.ChangeEventHandler<HTMLInputElement>;
9
- }
10
- declare const Checkbox: React.FC<CheckboxProps>;
11
- export default Checkbox;
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- interface OptionDetailsProps {
3
- startDate?: Date;
4
- endDate?: Date;
5
- price?: number;
6
- isCollapsible?: boolean;
7
- collapsed?: boolean;
8
- onToggleCollapse?: (collapsed: boolean) => void;
9
- }
10
- declare const OptionDetails: React.FC<OptionDetailsProps>;
11
- export default OptionDetails;
@@ -1,29 +0,0 @@
1
- import { PackageOption, PackageRoom } from "@qite/tide-client";
2
- export interface ProductOptionsRequest {
3
- officeId: number;
4
- catalogId: number;
5
- productId: number;
6
- accommodationCode?: string;
7
- regimeCode?: string;
8
- startDate: Date;
9
- endDate: Date;
10
- adultCount: number;
11
- childCount: number;
12
- }
13
- export interface ProductOptionsResult {
14
- productOptions?: ProductOption[];
15
- rooms?: PackageRoom[];
16
- cacheKey?: string;
17
- }
18
- export interface ProductOption
19
- extends Omit<PackageOption, "options" | "fromDate" | "toDate"> {
20
- parentCode: string;
21
- fromDate: string;
22
- toDate: string;
23
- }
24
- declare const productOptionsApi: {
25
- fetchProductOptions: (
26
- request: ProductOptionsRequest
27
- ) => Promise<ProductOptionsResult | undefined>;
28
- };
29
- export default productOptionsApi;
@@ -1,75 +0,0 @@
1
- import { ProductOption } from "./product-options-api";
2
- export declare const fetchProductOptions: import("@reduxjs/toolkit").AsyncThunk<
3
- import("./product-options-api").ProductOptionsResult | undefined,
4
- void,
5
- {}
6
- >;
7
- export declare const selectOptions: (state: {
8
- booking: import("../booking/booking-slice").BookingState;
9
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
10
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
11
- priceDetails: import("@reduxjs/toolkit").EntityState<
12
- import("@qite/tide-client").PriceDetail
13
- >;
14
- rooms: import("@reduxjs/toolkit").EntityState<
15
- import("@qite/tide-client").PackageRoom
16
- >;
17
- summary: import("../summary/summary-slice").SummaryState;
18
- }) => ProductOption[];
19
- export declare const selectSelectedOptions: import("reselect").OutputSelector<
20
- {
21
- booking: import("../booking/booking-slice").BookingState;
22
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
23
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
24
- priceDetails: import("@reduxjs/toolkit").EntityState<
25
- import("@qite/tide-client").PriceDetail
26
- >;
27
- rooms: import("@reduxjs/toolkit").EntityState<
28
- import("@qite/tide-client").PackageRoom
29
- >;
30
- summary: import("../summary/summary-slice").SummaryState;
31
- },
32
- ProductOption[],
33
- (res: ProductOption[]) => ProductOption[]
34
- >;
35
- export declare const selectDepartureFlight: import("reselect").OutputSelector<
36
- {
37
- booking: import("../booking/booking-slice").BookingState;
38
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
39
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
40
- priceDetails: import("@reduxjs/toolkit").EntityState<
41
- import("@qite/tide-client").PriceDetail
42
- >;
43
- rooms: import("@reduxjs/toolkit").EntityState<
44
- import("@qite/tide-client").PackageRoom
45
- >;
46
- summary: import("../summary/summary-slice").SummaryState;
47
- },
48
- ProductOption | undefined,
49
- (res: ProductOption[]) => ProductOption | undefined
50
- >;
51
- export declare const selectReturnFlight: import("reselect").OutputSelector<
52
- {
53
- booking: import("../booking/booking-slice").BookingState;
54
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
55
- productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
56
- priceDetails: import("@reduxjs/toolkit").EntityState<
57
- import("@qite/tide-client").PriceDetail
58
- >;
59
- rooms: import("@reduxjs/toolkit").EntityState<
60
- import("@qite/tide-client").PackageRoom
61
- >;
62
- summary: import("../summary/summary-slice").SummaryState;
63
- },
64
- ProductOption | undefined,
65
- (res: ProductOption[]) => ProductOption | undefined
66
- >;
67
- export declare const updateOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<
68
- ProductOption,
69
- string
70
- >;
71
- declare const _default: import("redux").Reducer<
72
- import("@reduxjs/toolkit").EntityState<ProductOption>,
73
- import("redux").AnyAction
74
- >;
75
- export default _default;
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- interface RadioButtonProps {
3
- text: string;
4
- name: string;
5
- value: string;
6
- defaultChecked?: boolean;
7
- onChange?: React.ChangeEventHandler<HTMLInputElement>;
8
- }
9
- declare const RadioButton: React.FC<RadioButtonProps>;
10
- export default RadioButton;
@@ -1,23 +0,0 @@
1
- import { PackageRoom } from "@qite/tide-client";
2
- export declare const selectRooms: (state: {
3
- booking: import("../booking/booking-slice").BookingState;
4
- travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
5
- productOptions: import("@reduxjs/toolkit").EntityState<
6
- import("./product-options-api").ProductOption
7
- >;
8
- priceDetails: import("@reduxjs/toolkit").EntityState<
9
- import("@qite/tide-client").PriceDetail
10
- >;
11
- rooms: import("@reduxjs/toolkit").EntityState<PackageRoom>;
12
- summary: import("../summary/summary-slice").SummaryState;
13
- }) => PackageRoom[];
14
- export declare const setRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<
15
- | readonly PackageRoom[]
16
- | Record<import("@reduxjs/toolkit").EntityId, PackageRoom>,
17
- string
18
- >;
19
- declare const _default: import("redux").Reducer<
20
- import("@reduxjs/toolkit").EntityState<PackageRoom>,
21
- import("redux").AnyAction
22
- >;
23
- export default _default;
@@ -1,7 +0,0 @@
1
- import { ProductOption } from "./product-options-api";
2
- import React from "react";
3
- interface TreeLevelProps {
4
- productOption: ProductOption;
5
- }
6
- declare const TreeLevel: React.FC<TreeLevelProps>;
7
- export default TreeLevel;
@@ -1,38 +0,0 @@
1
- import React from "react";
2
-
3
- interface CheckboxProps {
4
- text: string;
5
- value: string;
6
- name: string;
7
- required: boolean;
8
- defaultChecked: boolean;
9
- onChange?: React.ChangeEventHandler<HTMLInputElement>;
10
- }
11
-
12
- const Checkbox: React.FC<CheckboxProps> = ({
13
- text,
14
- required,
15
- defaultChecked,
16
- onChange,
17
- children,
18
- }) => (
19
- <div className="checkbox">
20
- <label className="checkbox__label">
21
- {!required && (
22
- <input
23
- type="checkbox"
24
- value="optionA"
25
- name="excursion"
26
- className="checkbox__input"
27
- disabled={required}
28
- defaultChecked={defaultChecked}
29
- onChange={onChange}
30
- />
31
- )}
32
- <span className="checkbox__label-text">{text}</span>
33
- {children}
34
- </label>
35
- </div>
36
- );
37
-
38
- export default Checkbox;
@@ -1,65 +0,0 @@
1
- import React from "react";
2
- import { format } from "date-fns";
3
- import { formatPrice } from "../../utils/localization-util";
4
-
5
- interface OptionDetailsProps {
6
- startDate?: Date;
7
- endDate?: Date;
8
- price?: number;
9
- isCollapsible?: boolean;
10
- collapsed?: boolean;
11
- onToggleCollapse?: (collapsed: boolean) => void;
12
- }
13
-
14
- const OptionDetails: React.FC<OptionDetailsProps> = ({
15
- startDate,
16
- endDate,
17
- price,
18
- isCollapsible,
19
- collapsed,
20
- onToggleCollapse,
21
- }) => {
22
- const handleToggleCollapse: React.ChangeEventHandler<HTMLInputElement> = (
23
- e
24
- ) => {
25
- if (onToggleCollapse) {
26
- onToggleCollapse(e.target.checked);
27
- }
28
- };
29
-
30
- return (
31
- <div className="tree__columns-actions">
32
- <div className="tree__columns">
33
- <div className="tree__column">
34
- <div className="date-list">
35
- {startDate && (
36
- <span className="date-list__item">
37
- {format(startDate, "dd/MM/yyyy")}
38
- </span>
39
- )}
40
- {endDate && (
41
- <span className="date-list__item">
42
- {format(endDate, "dd/MM/yyyy")}
43
- </span>
44
- )}
45
- </div>
46
- </div>
47
- <div className="tree__column tree__column--price">
48
- {price !== undefined ? formatPrice(price) : ""}
49
- </div>
50
- </div>
51
- {isCollapsible && (
52
- <div className="tree__actions">
53
- <input
54
- type="checkbox"
55
- className="tree__collapse"
56
- defaultChecked={collapsed}
57
- onChange={handleToggleCollapse}
58
- />
59
- </div>
60
- )}
61
- </div>
62
- );
63
- };
64
-
65
- export default OptionDetails;
@@ -1,148 +0,0 @@
1
- import {
2
- CachedPackageSearchResult,
3
- PackageOption,
4
- PackageRoom,
5
- PackageSearchRequest,
6
- PackageSearchRequestDate,
7
- PackageSearchRequestRoom,
8
- searchPackages,
9
- ServiceType,
10
- } from "@qite/tide-client";
11
- import { formatISO } from "date-fns";
12
- import { compact, concat, omit } from "lodash";
13
- import { buildTideClientConfig } from "../../utils/tide-api-utils";
14
-
15
- export interface ProductOptionsRequest {
16
- officeId: number;
17
- catalogId: number;
18
- productId: number;
19
- accommodationCode?: string;
20
- regimeCode?: string;
21
- startDate: Date;
22
- endDate: Date;
23
- adultCount: number;
24
- childCount: number;
25
- }
26
-
27
- export interface ProductOptionsResult {
28
- productOptions?: ProductOption[];
29
- rooms?: PackageRoom[];
30
- cacheKey?: string;
31
- }
32
-
33
- export interface ProductOption
34
- extends Omit<PackageOption, "options" | "fromDate" | "toDate"> {
35
- parentCode: string;
36
- fromDate: string;
37
- toDate: string;
38
- }
39
-
40
- const fetchProductOptions = async (
41
- request: ProductOptionsRequest
42
- ): Promise<ProductOptionsResult | undefined> => {
43
- // Fetch Tide productOptions
44
- const packageSearchResults = await fetchTidePackageOptions(request);
45
-
46
- // Select product
47
- if (!packageSearchResults?.length) {
48
- return undefined;
49
- }
50
-
51
- const cachedPackageSearchResult = packageSearchResults[0];
52
-
53
- const cacheKey = cachedPackageSearchResult.cacheKey;
54
-
55
- // Process product and productOptions
56
- const productOptions = processPackageOptions(cachedPackageSearchResult);
57
-
58
- return <ProductOptionsResult>{
59
- cacheKey,
60
- productOptions,
61
- rooms: cachedPackageSearchResult.packageSearchResult.rooms,
62
- };
63
- };
64
-
65
- const fetchTidePackageOptions = async (
66
- productOptionsRequest: ProductOptionsRequest
67
- ) => {
68
- const tideClientConfig = buildTideClientConfig();
69
-
70
- const packageSearchRequest: PackageSearchRequest = {
71
- productIds: [productOptionsRequest.productId],
72
- accommodationCodes: compact([productOptionsRequest.accommodationCode]),
73
- regimeCodes: compact([productOptionsRequest.regimeCode]),
74
- officeId: 1,
75
- catalogId: 1,
76
- productType: ServiceType.package,
77
- onlyPreferredHotels: false,
78
- includeLuggage: true,
79
- rooms: [
80
- <PackageSearchRequestRoom>{
81
- adultCount: productOptionsRequest.adultCount,
82
- childCount: productOptionsRequest.childCount,
83
- },
84
- ],
85
- departure: <PackageSearchRequestDate>{
86
- date: productOptionsRequest.startDate,
87
- timeRange: [0, 24],
88
- },
89
- arrival: <PackageSearchRequestDate>{
90
- date: productOptionsRequest.endDate,
91
- timeRange: [0, 24],
92
- },
93
- };
94
-
95
- return await searchPackages(tideClientConfig, packageSearchRequest);
96
- };
97
-
98
- const processPackageOptions = (
99
- cachedPackageSearchResult: CachedPackageSearchResult
100
- ): ProductOption[] | undefined => {
101
- if (!cachedPackageSearchResult?.packageSearchResult?.options?.length) {
102
- // No options found
103
- return undefined;
104
- }
105
-
106
- const processedProductOptions =
107
- cachedPackageSearchResult.packageSearchResult.options.flatMap(
108
- (packageOption) => processPackageOption(packageOption)
109
- );
110
-
111
- return processedProductOptions;
112
- };
113
-
114
- const processPackageOption = (
115
- packageOption: PackageOption,
116
- parentCode?: string
117
- ): ProductOption[] => {
118
- // Process main option
119
- const fromDate = formatISO(packageOption.fromDate);
120
- const toDate = formatISO(packageOption.toDate);
121
-
122
- let processedProductOptions: ProductOption[] = [
123
- <ProductOption>{
124
- ...omit(packageOption, "options", "fromDate", "toDate"),
125
- fromDate,
126
- toDate,
127
- parentCode,
128
- },
129
- ];
130
-
131
- // Process sub options
132
- if (packageOption.options?.length) {
133
- packageOption.options.forEach((subProductOption) => {
134
- processedProductOptions = concat(
135
- processedProductOptions,
136
- processPackageOption(subProductOption, packageOption.code)
137
- );
138
- });
139
- }
140
-
141
- return processedProductOptions;
142
- };
143
-
144
- const productOptionsApi = {
145
- fetchProductOptions,
146
- };
147
-
148
- export default productOptionsApi;