@qite/tide-booking-component 1.2.5 → 1.3.0
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/components/print-offer-button.d.ts +17 -0
- package/build/build-cjs/booking-wizard/types.d.ts +7 -0
- package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-cjs/index.js +223 -72
- package/build/build-cjs/shared/utils/localization-util.d.ts +5 -0
- package/build/build-cjs/shared/utils/tide-api-utils.d.ts +1 -0
- package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -0
- package/build/build-esm/booking-wizard/types.d.ts +7 -0
- package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -0
- package/build/build-esm/index.js +224 -73
- package/build/build-esm/shared/utils/localization-util.d.ts +5 -0
- package/build/build-esm/shared/utils/tide-api-utils.d.ts +1 -0
- package/package.json +75 -75
- 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/product.tsx +314 -314
- package/src/booking-product/components/rating.tsx +21 -21
- package/src/booking-product/components/rooms.tsx +195 -195
- 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 +29 -29
- 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/print-offer-button.tsx +66 -0
- 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-self-contained.tsx +384 -384
- package/src/booking-wizard/features/booking/booking-slice.ts +662 -662
- package/src/booking-wizard/features/booking/booking.tsx +356 -356
- package/src/booking-wizard/features/booking/constants.ts +16 -16
- package/src/booking-wizard/features/booking/selectors.ts +441 -441
- package/src/booking-wizard/features/confirmation/confirmation.tsx +97 -97
- 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 +81 -81
- package/src/booking-wizard/features/flight-options/flight-utils.ts +516 -516
- 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 +120 -120
- 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 +317 -317
- 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-room.tsx +321 -321
- 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/product-options/options-form.tsx +563 -459
- package/src/booking-wizard/features/room-options/index.tsx +187 -187
- package/src/booking-wizard/features/room-options/room-utils.ts +190 -190
- package/src/booking-wizard/features/room-options/room.tsx +160 -160
- package/src/booking-wizard/features/room-options/traveler-rooms.tsx +75 -75
- package/src/booking-wizard/features/sidebar/index.tsx +76 -76
- package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +68 -68
- package/src/booking-wizard/features/sidebar/sidebar-util.ts +177 -177
- package/src/booking-wizard/features/sidebar/sidebar.tsx +364 -364
- package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -25
- package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -25
- package/src/booking-wizard/features/summary/summary-flight.tsx +39 -39
- 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/summary/summary.tsx +674 -674
- package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +164 -164
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +754 -754
- package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +101 -101
- package/src/booking-wizard/features/travelers-form/validate-form.ts +245 -245
- package/src/booking-wizard/index.tsx +36 -36
- package/src/booking-wizard/settings-context.ts +67 -60
- package/src/booking-wizard/store.ts +31 -31
- package/src/booking-wizard/types.ts +283 -276
- package/src/booking-wizard/use-offer-printer.ts +136 -0
- package/src/index.ts +4 -4
- package/src/shared/components/loader.tsx +16 -16
- package/src/shared/translations/en-GB.json +237 -232
- package/src/shared/translations/fr-BE.json +238 -233
- package/src/shared/translations/nl-BE.json +237 -232
- 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/src/shared/utils/tide-api-utils.ts +36 -36
- package/styles/booking-product-variables.scss +394 -394
- package/styles/booking-product.scss +446 -446
- package/styles/booking-wizard-variables.scss +873 -871
- package/styles/booking-wizard.scss +59 -59
- package/styles/components/_animations.scss +39 -39
- package/styles/components/_base.scss +107 -107
- package/styles/components/_booking.scss +879 -879
- 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/_dropdown.scss +72 -72
- package/styles/components/_flight-option.scss +1429 -1429
- package/styles/components/_form.scss +1583 -1583
- 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/_step-indicators.scss +168 -168
- 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`
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { BookingPackage, Pax } from "@qite/tide-client/build/types";
|
|
3
|
+
interface PrintOfferButtonProps {
|
|
4
|
+
bookingPackage?: BookingPackage;
|
|
5
|
+
getPax: () => Pax[] | undefined;
|
|
6
|
+
tagIds?: number[];
|
|
7
|
+
printActionId?: number | null;
|
|
8
|
+
onPrinted?: (pdfUrl: string) => void;
|
|
9
|
+
labelIdle?: string;
|
|
10
|
+
labelCreating?: string;
|
|
11
|
+
labelPrinting?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
loader?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare const PrintOfferButton: React.FC<PrintOfferButtonProps>;
|
|
17
|
+
export default PrintOfferButton;
|
|
@@ -2,29 +2,36 @@
|
|
|
2
2
|
import { BookingPackageFlight } from "@qite/tide-client/build/types";
|
|
3
3
|
export interface Settings {
|
|
4
4
|
officeId: number;
|
|
5
|
+
token?: string;
|
|
5
6
|
bookingOptions: BookingOptions;
|
|
6
7
|
productPath: string;
|
|
7
8
|
basePath: string;
|
|
8
9
|
roomOptions: {
|
|
9
10
|
isHidden?: boolean | null;
|
|
10
11
|
pathSuffix?: string | null;
|
|
12
|
+
reportPrintActionId?: number | null;
|
|
11
13
|
};
|
|
12
14
|
flightOptions: {
|
|
13
15
|
isHidden?: boolean | null;
|
|
14
16
|
pathSuffix?: string | null;
|
|
17
|
+
reportPrintActionId?: number | null;
|
|
15
18
|
};
|
|
16
19
|
options: {
|
|
17
20
|
pathSuffix: string;
|
|
21
|
+
reportPrintActionId?: number | null;
|
|
18
22
|
};
|
|
19
23
|
travellers: {
|
|
20
24
|
pathSuffix: string;
|
|
25
|
+
reportPrintActionId?: number | null;
|
|
21
26
|
};
|
|
22
27
|
summary: {
|
|
23
28
|
pathSuffix: string;
|
|
24
29
|
checkboxes?: SummaryCheckbox[] | null;
|
|
30
|
+
reportPrintActionId?: number | null;
|
|
25
31
|
};
|
|
26
32
|
confirmation: {
|
|
27
33
|
pathSuffix: string;
|
|
34
|
+
reportPrintActionId?: number | null;
|
|
28
35
|
};
|
|
29
36
|
error: {
|
|
30
37
|
pathSuffix: string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BookingPackage, Pax } from "@qite/tide-client/build/types";
|
|
2
|
+
export interface UseOfferPrinterArgs {
|
|
3
|
+
bookingPackage?: BookingPackage;
|
|
4
|
+
getPax: () => Pax[] | undefined;
|
|
5
|
+
tagIds?: number[];
|
|
6
|
+
printActionId?: number | null;
|
|
7
|
+
onPrinted?: (pdfUrl: string) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useOfferPrinter({ bookingPackage, getPax, tagIds, printActionId, onPrinted, }: UseOfferPrinterArgs): {
|
|
10
|
+
handlePrint: () => Promise<void>;
|
|
11
|
+
loading: boolean;
|
|
12
|
+
stage: "idle" | "creating" | "printing";
|
|
13
|
+
};
|
package/build/build-cjs/index.js
CHANGED
|
@@ -332,6 +332,11 @@ var ERROR$2 = {
|
|
|
332
332
|
ERROR_TEXT3: ".",
|
|
333
333
|
ERROR_ALT: "Contactez-nous"
|
|
334
334
|
};
|
|
335
|
+
var PRINT_OFFER_BUTTON$2 = {
|
|
336
|
+
LABEL_IDLE: "Imprimer le devis",
|
|
337
|
+
LABEL_CREATING: "Génération du devis…",
|
|
338
|
+
LABEL_PRINTING: "Génération du PDF…"
|
|
339
|
+
};
|
|
335
340
|
var frJson = {
|
|
336
341
|
STEPS: STEPS$2,
|
|
337
342
|
INPUT: INPUT$2,
|
|
@@ -345,7 +350,8 @@ var frJson = {
|
|
|
345
350
|
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$2,
|
|
346
351
|
SUMMARY: SUMMARY$2,
|
|
347
352
|
CONFIRMATION: CONFIRMATION$2,
|
|
348
|
-
ERROR: ERROR$2
|
|
353
|
+
ERROR: ERROR$2,
|
|
354
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$2
|
|
349
355
|
};
|
|
350
356
|
|
|
351
357
|
var STEPS$1 = {
|
|
@@ -578,6 +584,11 @@ var ERROR$1 = {
|
|
|
578
584
|
ERROR_TEXT3: ".",
|
|
579
585
|
ERROR_ALT: "Contacteer ons"
|
|
580
586
|
};
|
|
587
|
+
var PRINT_OFFER_BUTTON$1 = {
|
|
588
|
+
LABEL_IDLE: "Print offerte",
|
|
589
|
+
LABEL_CREATING: "Offerte genereren...",
|
|
590
|
+
LABEL_PRINTING: "PDF genereren..."
|
|
591
|
+
};
|
|
581
592
|
var nlJson = {
|
|
582
593
|
STEPS: STEPS$1,
|
|
583
594
|
INPUT: INPUT$1,
|
|
@@ -591,7 +602,8 @@ var nlJson = {
|
|
|
591
602
|
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM$1,
|
|
592
603
|
SUMMARY: SUMMARY$1,
|
|
593
604
|
CONFIRMATION: CONFIRMATION$1,
|
|
594
|
-
ERROR: ERROR$1
|
|
605
|
+
ERROR: ERROR$1,
|
|
606
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON$1
|
|
595
607
|
};
|
|
596
608
|
|
|
597
609
|
var STEPS = {
|
|
@@ -824,6 +836,11 @@ var ERROR = {
|
|
|
824
836
|
ERROR_TEXT3: ".",
|
|
825
837
|
ERROR_ALT: "Contact us"
|
|
826
838
|
};
|
|
839
|
+
var PRINT_OFFER_BUTTON = {
|
|
840
|
+
LABEL_IDLE: "Print offer",
|
|
841
|
+
LABEL_CREATING: "Generating offer…",
|
|
842
|
+
LABEL_PRINTING: "Generating PDF…"
|
|
843
|
+
};
|
|
827
844
|
var enJson = {
|
|
828
845
|
STEPS: STEPS,
|
|
829
846
|
INPUT: INPUT,
|
|
@@ -837,7 +854,8 @@ var enJson = {
|
|
|
837
854
|
ROOM_OPTIONS_FORM: ROOM_OPTIONS_FORM,
|
|
838
855
|
SUMMARY: SUMMARY,
|
|
839
856
|
CONFIRMATION: CONFIRMATION,
|
|
840
|
-
ERROR: ERROR
|
|
857
|
+
ERROR: ERROR,
|
|
858
|
+
PRINT_OFFER_BUTTON: PRINT_OFFER_BUTTON
|
|
841
859
|
};
|
|
842
860
|
|
|
843
861
|
var formatPrice = function (price, locale) {
|
|
@@ -7047,9 +7065,6 @@ var post = function (
|
|
|
7047
7065
|
return [4 /*yield*/, response.text()];
|
|
7048
7066
|
case 2:
|
|
7049
7067
|
responseBody = _a.sent();
|
|
7050
|
-
if (!responseBody) {
|
|
7051
|
-
return [2 /*return*/, null];
|
|
7052
|
-
}
|
|
7053
7068
|
result = skipReviver
|
|
7054
7069
|
? JSON.parse(responseBody)
|
|
7055
7070
|
: JSON.parse(responseBody, reviver);
|
|
@@ -7081,9 +7096,6 @@ var patch = function (
|
|
|
7081
7096
|
return [4 /*yield*/, response.text()];
|
|
7082
7097
|
case 2:
|
|
7083
7098
|
responseBody = _a.sent();
|
|
7084
|
-
if (!responseBody) {
|
|
7085
|
-
return [2 /*return*/, {}];
|
|
7086
|
-
}
|
|
7087
7099
|
result = skipReviver
|
|
7088
7100
|
? JSON.parse(responseBody)
|
|
7089
7101
|
: JSON.parse(responseBody, reviver);
|
|
@@ -7341,7 +7353,6 @@ var getMolliePayment = function (config, request, signal) {
|
|
|
7341
7353
|
|
|
7342
7354
|
var ENDPOINT$4 = "/api/web/search";
|
|
7343
7355
|
var ENDPOINT_COUNTRIES = ENDPOINT$4 + "/countries";
|
|
7344
|
-
var ENDPOINT_AIRPORTS = ENDPOINT$4 + "/airports";
|
|
7345
7356
|
/**
|
|
7346
7357
|
* api/search/countries
|
|
7347
7358
|
* Gets all Countries
|
|
@@ -7354,11 +7365,6 @@ var getCountries = function (config, signal) {
|
|
|
7354
7365
|
var apiKey = config.apiKey;
|
|
7355
7366
|
return get(url, apiKey, config.token, signal, true);
|
|
7356
7367
|
};
|
|
7357
|
-
var getAirports = function (config, signal) {
|
|
7358
|
-
var url = "" + config.host + ENDPOINT_AIRPORTS;
|
|
7359
|
-
var apiKey = config.apiKey;
|
|
7360
|
-
return get(url, apiKey, config.token, signal, true);
|
|
7361
|
-
};
|
|
7362
7368
|
|
|
7363
7369
|
var createParams = function (filter, all, gridColumns, mode, forceToLower) {
|
|
7364
7370
|
var params = {};
|
|
@@ -7602,7 +7608,6 @@ var changeEntryAgentSurcharge = function (config, request, signal) {
|
|
|
7602
7608
|
|
|
7603
7609
|
var ENDPOINT$2 = "/api/web";
|
|
7604
7610
|
var ENDPOINT_CREATE_CRM_CONTACT = ENDPOINT$2 + "/crmcontact";
|
|
7605
|
-
var ENDPOINT_CONTACT_FORM$1 = ENDPOINT$2 + "/contactform";
|
|
7606
7611
|
var ENDPOINT_CREATE_AFFILIATES = ENDPOINT$2 + "/affiliates";
|
|
7607
7612
|
var ENDPOINT_TRANSLATION_DICTIONARY = ENDPOINT$2 + "/translation-dictionary";
|
|
7608
7613
|
var ENDPOINT_BOOKING_ACCOMMODATION = ENDPOINT$2 + "/booking-accommodation";
|
|
@@ -7620,20 +7625,6 @@ var createCrmContact = function (config, request, signal) {
|
|
|
7620
7625
|
var body = JSON.stringify(request);
|
|
7621
7626
|
return post(url, apiKey, body, config.token, signal);
|
|
7622
7627
|
};
|
|
7623
|
-
/**
|
|
7624
|
-
* api/web/contactform
|
|
7625
|
-
* Sends a contact request mail
|
|
7626
|
-
* @param config
|
|
7627
|
-
* @param request
|
|
7628
|
-
* @param signal
|
|
7629
|
-
* @returns OK if succeeded.
|
|
7630
|
-
*/
|
|
7631
|
-
var ContactForm = function (config, request, signal) {
|
|
7632
|
-
var url = "" + config.host + ENDPOINT_CONTACT_FORM$1;
|
|
7633
|
-
var apiKey = config.apiKey;
|
|
7634
|
-
var body = JSON.stringify(request);
|
|
7635
|
-
return post(url, apiKey, body, config.token, signal, true);
|
|
7636
|
-
};
|
|
7637
7628
|
/**
|
|
7638
7629
|
* api/web/affiliates
|
|
7639
7630
|
* Gets all Affiliates
|
|
@@ -7715,7 +7706,6 @@ var feedXmlFolder = function (config, slug, folder, signal) {
|
|
|
7715
7706
|
|
|
7716
7707
|
build.AllotmentType = AllotmentType;
|
|
7717
7708
|
build.AvailabilitySearchType = AvailabilitySearchType;
|
|
7718
|
-
build.ContactForm = ContactForm;
|
|
7719
7709
|
var Gender_1 = build.Gender = Gender;
|
|
7720
7710
|
build.MetaDataType = MetaDataType;
|
|
7721
7711
|
build.RequirementType = RequirementType;
|
|
@@ -7739,7 +7729,6 @@ build.feedXmlFolder = feedXmlFolder;
|
|
|
7739
7729
|
build.forgotPassword = forgotPassword;
|
|
7740
7730
|
var generateBookingAccommodations_1 = build.generateBookingAccommodations = generateBookingAccommodations;
|
|
7741
7731
|
build.getAffiliates = getAffiliates;
|
|
7742
|
-
build.getAirports = getAirports;
|
|
7743
7732
|
build.getAllotmentAvailability = getAllotmentAvailability;
|
|
7744
7733
|
build.getCountries = getCountries;
|
|
7745
7734
|
build.getCustomEntryStatus = getCustomEntryStatus;
|
|
@@ -7754,7 +7743,7 @@ build.login = login;
|
|
|
7754
7743
|
build.logout = logout;
|
|
7755
7744
|
var priceDetails_1 = build.priceDetails = priceDetails;
|
|
7756
7745
|
build.prices = prices;
|
|
7757
|
-
build.print = print;
|
|
7746
|
+
var print_1 = build.print = print;
|
|
7758
7747
|
build.resetPassword = resetPassword;
|
|
7759
7748
|
build.search = search;
|
|
7760
7749
|
build.searchFlightPool = searchFlightPool;
|
|
@@ -10803,6 +10792,7 @@ var bookingReducer = bookingSlice.reducer;
|
|
|
10803
10792
|
|
|
10804
10793
|
var SettingsContext = React__default["default"].createContext({
|
|
10805
10794
|
language: "nl-BE",
|
|
10795
|
+
token: "",
|
|
10806
10796
|
generatePaymentUrl: false,
|
|
10807
10797
|
currency: "EUR",
|
|
10808
10798
|
officeId: 1,
|
|
@@ -10814,22 +10804,28 @@ var SettingsContext = React__default["default"].createContext({
|
|
|
10814
10804
|
basePath: "/boeken",
|
|
10815
10805
|
roomOptions: {
|
|
10816
10806
|
pathSuffix: "/",
|
|
10807
|
+
reportPrintActionId: null,
|
|
10817
10808
|
},
|
|
10818
10809
|
flightOptions: {
|
|
10819
10810
|
pathSuffix: "/vluchten",
|
|
10811
|
+
reportPrintActionId: null,
|
|
10820
10812
|
},
|
|
10821
10813
|
options: {
|
|
10822
10814
|
pathSuffix: "/opties",
|
|
10815
|
+
reportPrintActionId: null,
|
|
10823
10816
|
},
|
|
10824
10817
|
travellers: {
|
|
10825
10818
|
pathSuffix: "/reizigers",
|
|
10819
|
+
reportPrintActionId: null,
|
|
10826
10820
|
},
|
|
10827
10821
|
summary: {
|
|
10828
10822
|
pathSuffix: "/samenvatting",
|
|
10829
10823
|
checkboxes: null,
|
|
10824
|
+
reportPrintActionId: null,
|
|
10830
10825
|
},
|
|
10831
10826
|
confirmation: {
|
|
10832
10827
|
pathSuffix: "/bevestiging",
|
|
10828
|
+
reportPrintActionId: null,
|
|
10833
10829
|
},
|
|
10834
10830
|
error: {
|
|
10835
10831
|
pathSuffix: "/mislukt",
|
|
@@ -13152,9 +13148,135 @@ var OptionRoom = function (_a) {
|
|
|
13152
13148
|
]) }))))))))))));
|
|
13153
13149
|
};
|
|
13154
13150
|
|
|
13151
|
+
function useOfferPrinter(_a) {
|
|
13152
|
+
var _this = this;
|
|
13153
|
+
var bookingPackage = _a.bookingPackage, getPax = _a.getPax, _b = _a.tagIds, tagIds = _b === void 0 ? [] : _b, _c = _a.printActionId, printActionId = _c === void 0 ? null : _c, onPrinted = _a.onPrinted;
|
|
13154
|
+
var settings = React.useContext(SettingsContext);
|
|
13155
|
+
if (!settings)
|
|
13156
|
+
throw new Error("useOfferPrinter must be used inside <BookingWizard>");
|
|
13157
|
+
var language = settings.language, officeId = settings.officeId;
|
|
13158
|
+
var agentId = settings.agentAdressId;
|
|
13159
|
+
if (typeof agentId !== "number" || agentId <= 0) {
|
|
13160
|
+
throw new Error("Missing agentAdressId in wizard settings");
|
|
13161
|
+
}
|
|
13162
|
+
var _d = React.useState("idle"), stage = _d[0], setStage = _d[1];
|
|
13163
|
+
var loading = stage !== "idle";
|
|
13164
|
+
var createOffer = React.useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13165
|
+
var paxRaw, pax, request, cfg;
|
|
13166
|
+
return __generator$1(this, function (_a) {
|
|
13167
|
+
paxRaw = getPax();
|
|
13168
|
+
if (!bookingPackage || !(paxRaw === null || paxRaw === void 0 ? void 0 : paxRaw.length)) {
|
|
13169
|
+
throw new Error("Missing booking package or pax");
|
|
13170
|
+
}
|
|
13171
|
+
pax = paxRaw;
|
|
13172
|
+
request = {
|
|
13173
|
+
officeId: officeId,
|
|
13174
|
+
agentId: agentId,
|
|
13175
|
+
payload: {
|
|
13176
|
+
package: bookingPackage,
|
|
13177
|
+
status: 0,
|
|
13178
|
+
pax: pax,
|
|
13179
|
+
nonTravelPax: [],
|
|
13180
|
+
notifications: [],
|
|
13181
|
+
tagIds: tagIds,
|
|
13182
|
+
customerRequests: [],
|
|
13183
|
+
},
|
|
13184
|
+
};
|
|
13185
|
+
cfg = buildTideClientConfig();
|
|
13186
|
+
return [2 /*return*/, book_1(cfg, request, undefined, language)];
|
|
13187
|
+
});
|
|
13188
|
+
}); }, [
|
|
13189
|
+
agentId,
|
|
13190
|
+
bookingPackage,
|
|
13191
|
+
getPax,
|
|
13192
|
+
language,
|
|
13193
|
+
officeId,
|
|
13194
|
+
tagIds,
|
|
13195
|
+
]);
|
|
13196
|
+
var languageData = [
|
|
13197
|
+
{ code: "nl-BE", tideId: 1 },
|
|
13198
|
+
{ code: "fr-BE", tideId: 2 },
|
|
13199
|
+
{ code: "en-GB", tideId: 3 },
|
|
13200
|
+
];
|
|
13201
|
+
function getTideLanguageId(code) {
|
|
13202
|
+
var _a;
|
|
13203
|
+
return (((_a = languageData.find(function (l) { return l.code === code; })) === null || _a === void 0 ? void 0 : _a.tideId) || 1);
|
|
13204
|
+
}
|
|
13205
|
+
var printOffer = React.useCallback(function (offer) { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13206
|
+
var cfg, req, res, buf, url;
|
|
13207
|
+
var _a;
|
|
13208
|
+
return __generator$1(this, function (_b) {
|
|
13209
|
+
switch (_b.label) {
|
|
13210
|
+
case 0:
|
|
13211
|
+
cfg = buildTideClientConfig();
|
|
13212
|
+
req = {
|
|
13213
|
+
id: printActionId !== null && printActionId !== void 0 ? printActionId : 0,
|
|
13214
|
+
dossierNumber: (_a = offer.dossierNumber) !== null && _a !== void 0 ? _a : offer.number,
|
|
13215
|
+
languageId: getTideLanguageId(language),
|
|
13216
|
+
};
|
|
13217
|
+
return [4 /*yield*/, print_1(cfg, req)];
|
|
13218
|
+
case 1:
|
|
13219
|
+
res = _b.sent();
|
|
13220
|
+
return [4 /*yield*/, res.arrayBuffer()];
|
|
13221
|
+
case 2:
|
|
13222
|
+
buf = _b.sent();
|
|
13223
|
+
url = URL.createObjectURL(new Blob([buf], { type: "application/pdf" }));
|
|
13224
|
+
onPrinted === null || onPrinted === void 0 ? void 0 : onPrinted(url);
|
|
13225
|
+
window.open(url);
|
|
13226
|
+
return [2 /*return*/];
|
|
13227
|
+
}
|
|
13228
|
+
});
|
|
13229
|
+
}); }, [language, onPrinted]);
|
|
13230
|
+
var handlePrint = React.useCallback(function () { return __awaiter$1(_this, void 0, void 0, function () {
|
|
13231
|
+
var offer, err_1;
|
|
13232
|
+
return __generator$1(this, function (_a) {
|
|
13233
|
+
switch (_a.label) {
|
|
13234
|
+
case 0:
|
|
13235
|
+
_a.trys.push([0, 3, 4, 5]);
|
|
13236
|
+
setStage("creating");
|
|
13237
|
+
return [4 /*yield*/, createOffer()];
|
|
13238
|
+
case 1:
|
|
13239
|
+
offer = _a.sent();
|
|
13240
|
+
setStage("printing");
|
|
13241
|
+
return [4 /*yield*/, printOffer(offer)];
|
|
13242
|
+
case 2:
|
|
13243
|
+
_a.sent();
|
|
13244
|
+
return [3 /*break*/, 5];
|
|
13245
|
+
case 3:
|
|
13246
|
+
err_1 = _a.sent();
|
|
13247
|
+
console.error("Offer print failed:", err_1);
|
|
13248
|
+
throw err_1;
|
|
13249
|
+
case 4:
|
|
13250
|
+
setStage("idle");
|
|
13251
|
+
return [7 /*endfinally*/];
|
|
13252
|
+
case 5: return [2 /*return*/];
|
|
13253
|
+
}
|
|
13254
|
+
});
|
|
13255
|
+
}); }, [createOffer, printOffer]);
|
|
13256
|
+
return { handlePrint: handlePrint, loading: loading, stage: stage };
|
|
13257
|
+
}
|
|
13258
|
+
|
|
13259
|
+
var PrintOfferButton = function (_a) {
|
|
13260
|
+
var bookingPackage = _a.bookingPackage, getPax = _a.getPax, tagIds = _a.tagIds, _b = _a.printActionId, printActionId = _b === void 0 ? null : _b, onPrinted = _a.onPrinted, _c = _a.labelIdle, labelIdle = _c === void 0 ? "Print offer" : _c, _d = _a.labelCreating, labelCreating = _d === void 0 ? "Generating offer…" : _d, _e = _a.labelPrinting, labelPrinting = _e === void 0 ? "Generating PDF…" : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, className = _a.className;
|
|
13261
|
+
var _g = useOfferPrinter({
|
|
13262
|
+
bookingPackage: bookingPackage,
|
|
13263
|
+
getPax: getPax,
|
|
13264
|
+
tagIds: tagIds,
|
|
13265
|
+
onPrinted: onPrinted,
|
|
13266
|
+
printActionId: printActionId,
|
|
13267
|
+
}), handlePrint = _g.handlePrint, stage = _g.stage, loading = _g.loading;
|
|
13268
|
+
var label = stage === "creating"
|
|
13269
|
+
? labelCreating
|
|
13270
|
+
: stage === "printing"
|
|
13271
|
+
? labelPrinting
|
|
13272
|
+
: labelIdle;
|
|
13273
|
+
return (React__default["default"].createElement("button", { type: 'button', onClick: handlePrint, disabled: disabled || loading, className: className }, label));
|
|
13274
|
+
};
|
|
13275
|
+
|
|
13155
13276
|
var OptionsForm = function () {
|
|
13156
13277
|
var _a;
|
|
13157
13278
|
var settings = React.useContext(SettingsContext);
|
|
13279
|
+
var token = settings.token;
|
|
13158
13280
|
var translations = reactRedux.useSelector(selectTranslations);
|
|
13159
13281
|
var dispatch = useAppDispatch();
|
|
13160
13282
|
var packageDetails = reactRedux.useSelector(selectPackageDetails);
|
|
@@ -13178,7 +13300,9 @@ var OptionsForm = function () {
|
|
|
13178
13300
|
var bookingPackagePax = pax.filter(function (x) {
|
|
13179
13301
|
return room === null || room === void 0 ? void 0 : room.pax.some(function (y) { return y.id == x.id; });
|
|
13180
13302
|
});
|
|
13181
|
-
return bookingPackagePax.length > 0
|
|
13303
|
+
return bookingPackagePax.length > 0
|
|
13304
|
+
? bookingPackagePax
|
|
13305
|
+
: (_a = room === null || room === void 0 ? void 0 : room.pax) !== null && _a !== void 0 ? _a : [];
|
|
13182
13306
|
};
|
|
13183
13307
|
var handleOnRoomChange = function (index, accommodationCode, regimeCode) {
|
|
13184
13308
|
if (!packageRooms)
|
|
@@ -13187,8 +13311,17 @@ var OptionsForm = function () {
|
|
|
13187
13311
|
dispatch(setPackageRooms(updatedPackageRooms));
|
|
13188
13312
|
dispatch(fetchPriceDetails());
|
|
13189
13313
|
};
|
|
13314
|
+
var getPax = function () {
|
|
13315
|
+
var _a;
|
|
13316
|
+
if (!packageDetails)
|
|
13317
|
+
return undefined;
|
|
13318
|
+
var selectedOption = (_a = packageDetails.options.find(function (o) { return o.isSelected; })) !== null && _a !== void 0 ? _a : packageDetails.options[0];
|
|
13319
|
+
return selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.requestRooms.flatMap(function (r) { return r.pax; });
|
|
13320
|
+
};
|
|
13190
13321
|
// TAGS
|
|
13191
|
-
var packageTags = settings.hideTags
|
|
13322
|
+
var packageTags = settings.hideTags
|
|
13323
|
+
? []
|
|
13324
|
+
: reactRedux.useSelector(selectPackageTags);
|
|
13192
13325
|
var tagIds = (_a = reactRedux.useSelector(selectTagIds)) !== null && _a !== void 0 ? _a : [];
|
|
13193
13326
|
var handleSubmit = function (e) {
|
|
13194
13327
|
if (settings.skipRouter) {
|
|
@@ -13260,11 +13393,13 @@ var OptionsForm = function () {
|
|
|
13260
13393
|
var desiredReturnFlight_1 = packageDetails.returnFlights.find(function (x) { return x.entryLineGuid == returnFlight_1; });
|
|
13261
13394
|
if (desiredOutwardFlight_1 && desiredReturnFlight_1) {
|
|
13262
13395
|
dispatch(setPackage(__assign(__assign({}, packageDetails), { outwardFlights: packageDetails.outwardFlights.map(function (flight) {
|
|
13263
|
-
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13396
|
+
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13397
|
+
desiredOutwardFlight_1.entryLineGuid
|
|
13264
13398
|
? true
|
|
13265
13399
|
: false });
|
|
13266
13400
|
}), returnFlights: packageDetails.returnFlights.map(function (flight) {
|
|
13267
|
-
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13401
|
+
return __assign(__assign({}, flight), { isSelected: flight.entryLineGuid ==
|
|
13402
|
+
desiredReturnFlight_1.entryLineGuid
|
|
13268
13403
|
? true
|
|
13269
13404
|
: false });
|
|
13270
13405
|
}) })));
|
|
@@ -13284,57 +13419,73 @@ var OptionsForm = function () {
|
|
|
13284
13419
|
var previousUrl = settings.roomOptions.isHidden
|
|
13285
13420
|
? "".concat(settings.basePath).concat(settings.flightOptions.pathSuffix, "?").concat(bookingQueryString)
|
|
13286
13421
|
: "".concat(settings.basePath).concat(settings.roomOptions.pathSuffix, "?").concat(bookingQueryString);
|
|
13287
|
-
var hasPrevious = !settings.roomOptions.isHidden ||
|
|
13288
|
-
|
|
13422
|
+
var hasPrevious = !settings.roomOptions.isHidden ||
|
|
13423
|
+
!settings.flightOptions.isHidden;
|
|
13424
|
+
var showPackageTagsOrRoomoptions = showRoomOptions ||
|
|
13425
|
+
(packageTags && !lodash.isEmpty(packageTags));
|
|
13289
13426
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
13290
|
-
React__default["default"].createElement("form", { className:
|
|
13427
|
+
React__default["default"].createElement("form", { className: 'form', name: 'booking--options', id: 'booking--options', noValidate: true, onSubmit: handleSubmit },
|
|
13291
13428
|
isLoading && settings.loaderComponent,
|
|
13292
|
-
!isLoading && (React__default["default"].createElement("div", { className:
|
|
13293
|
-
showPackageTagsOrRoomoptions && (React__default["default"].createElement("div", { className:
|
|
13294
|
-
React__default["default"].createElement("div", { className:
|
|
13295
|
-
React__default["default"].createElement("div", { className:
|
|
13429
|
+
!isLoading && (React__default["default"].createElement("div", { className: 'form__region' },
|
|
13430
|
+
showPackageTagsOrRoomoptions && (React__default["default"].createElement("div", { className: 'form__group' },
|
|
13431
|
+
React__default["default"].createElement("div", { className: 'booking-card' },
|
|
13432
|
+
React__default["default"].createElement("div", { className: 'booking-card__body' },
|
|
13296
13433
|
React__default["default"].createElement("div", { className: buildClassName([
|
|
13297
13434
|
"booking-card__group",
|
|
13298
13435
|
"booking-card__group--package",
|
|
13299
13436
|
]) },
|
|
13300
|
-
showRoomOptions && (React__default["default"].createElement("span", { className:
|
|
13301
|
-
|
|
13302
|
-
|
|
13437
|
+
showRoomOptions && (React__default["default"].createElement("span", { className: 'booking-card__tag' }, translations.OPTIONS_FORM
|
|
13438
|
+
.PACKAGE)),
|
|
13439
|
+
React__default["default"].createElement("div", { className: 'booking-card__group-body' },
|
|
13440
|
+
showRoomOptions && (React__default["default"].createElement("table", { className: 'table table--striped' },
|
|
13303
13441
|
React__default["default"].createElement("tbody", null, packageRooms &&
|
|
13304
13442
|
packageRooms.map(function (room) { return (React__default["default"].createElement(OptionRoom, { key: room.index, packageRoom: room, pax: getRoomPax(room.index), optionPax: optionPax, onRoomChange: handleOnRoomChange })); })))),
|
|
13305
|
-
packageTags &&
|
|
13306
|
-
React__default["default"].createElement("div", { className: "tag-translation-
|
|
13307
|
-
|
|
13443
|
+
packageTags &&
|
|
13444
|
+
!lodash.isEmpty(packageTags) && (React__default["default"].createElement("div", { className: 'booking-card__tag-translations' }, packageTags.map(function (tag, index) { return (React__default["default"].createElement("label", { key: index, htmlFor: "tag-translation-".concat(index, "-").concat(tag.title), className: 'checkbox__label tag-translation' },
|
|
13445
|
+
React__default["default"].createElement("div", { className: 'tag-translation-input__container' },
|
|
13446
|
+
React__default["default"].createElement("input", { type: 'checkbox', id: "tag-translation-".concat(index, "-").concat(tag.title), name: "tag-translation-".concat(index, "-").concat(tag.title), className: 'checkbox__input', checked: tagIds === null || tagIds === void 0 ? void 0 : tagIds.includes(tag.id), onChange: function (e) {
|
|
13308
13447
|
return handleOnTagChange(tag.id, e.target.checked);
|
|
13309
13448
|
} })),
|
|
13310
|
-
React__default["default"].createElement("span", { className:
|
|
13449
|
+
React__default["default"].createElement("span", { className: 'tag-translation__title' }, tag.title),
|
|
13311
13450
|
"\u00A0",
|
|
13312
|
-
React__default["default"].createElement("span", { className:
|
|
13313
|
-
optionUnits && !lodash.isEmpty(optionUnits) && (React__default["default"].createElement("div", { className:
|
|
13314
|
-
React__default["default"].createElement("div", { className:
|
|
13315
|
-
React__default["default"].createElement("div", { className:
|
|
13316
|
-
React__default["default"].createElement("h2", { className:
|
|
13317
|
-
|
|
13451
|
+
React__default["default"].createElement("span", { className: 'tag-translation__description' }, tag.description))); }))))))))),
|
|
13452
|
+
optionUnits && !lodash.isEmpty(optionUnits) && (React__default["default"].createElement("div", { className: 'form__group' },
|
|
13453
|
+
React__default["default"].createElement("div", { className: 'booking-card' },
|
|
13454
|
+
React__default["default"].createElement("div", { className: 'booking-card__header' },
|
|
13455
|
+
React__default["default"].createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13456
|
+
.PER_UNIT_TITLE)),
|
|
13457
|
+
React__default["default"].createElement("div", { className: 'booking-card__body' },
|
|
13318
13458
|
React__default["default"].createElement(OptionUnitsCard, { units: optionUnits, onUnitsChange: handleOnUnitsChange }))))),
|
|
13319
|
-
optionPax && !lodash.isEmpty(optionPax) && (React__default["default"].createElement("div", { className:
|
|
13320
|
-
React__default["default"].createElement("div", { className:
|
|
13321
|
-
React__default["default"].createElement("div", { className:
|
|
13322
|
-
React__default["default"].createElement("h2", { className:
|
|
13323
|
-
|
|
13459
|
+
optionPax && !lodash.isEmpty(optionPax) && (React__default["default"].createElement("div", { className: 'form__group' },
|
|
13460
|
+
React__default["default"].createElement("div", { className: 'booking-card' },
|
|
13461
|
+
React__default["default"].createElement("div", { className: 'booking-card__header' },
|
|
13462
|
+
React__default["default"].createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13463
|
+
.PER_PAX_TITLE)),
|
|
13464
|
+
React__default["default"].createElement("div", { className: 'booking-card__body' },
|
|
13324
13465
|
React__default["default"].createElement(OptionPaxCard, { pax: optionPax, onPaxChange: handleOnPaxChange, requestRoomsPax: requestRoomsPax }))))),
|
|
13325
|
-
groups && !lodash.isEmpty(groups) && (React__default["default"].createElement("div", { className:
|
|
13326
|
-
React__default["default"].createElement("div", { className:
|
|
13327
|
-
React__default["default"].createElement("div", { className:
|
|
13328
|
-
React__default["default"].createElement("h2", { className:
|
|
13329
|
-
|
|
13330
|
-
|
|
13466
|
+
groups && !lodash.isEmpty(groups) && (React__default["default"].createElement("div", { className: 'form__group' },
|
|
13467
|
+
React__default["default"].createElement("div", { className: 'booking-card' },
|
|
13468
|
+
React__default["default"].createElement("div", { className: 'booking-card__header' },
|
|
13469
|
+
React__default["default"].createElement("h2", { className: 'booking-card__header-heading' }, translations.OPTIONS_FORM
|
|
13470
|
+
.PER_BOOKING_TITLE)),
|
|
13471
|
+
React__default["default"].createElement("div", { className: 'booking-card__body' },
|
|
13472
|
+
React__default["default"].createElement("div", { className: 'booking-card__group booking-card__group--active' },
|
|
13331
13473
|
groups.map(function (group, i) { return (React__default["default"].createElement(OptionBookingGroup, { key: "".concat(group.name, "_").concat(i), group: group, firstClassName: "booking-card__group-body", secondClassName: "booking-card__group-heading", parentId: "booking_".concat(group.name), onGroupChange: handleOnGroupChange })); }), airlineGroups === null || airlineGroups === void 0 ? void 0 :
|
|
13332
13474
|
airlineGroups.map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: handleOnAirlineGroupChange })); }), airportGroups === null || airportGroups === void 0 ? void 0 :
|
|
13333
13475
|
airportGroups.map(function (group, i) { return (React__default["default"].createElement(OptionBookingAirlineGroup, { key: "".concat(group.label, "_").concat(i), airGroup: group, onGroupChange: handleOnAirportGroupChange })); })))))),
|
|
13334
|
-
lodash.isEmpty(groups) &&
|
|
13335
|
-
|
|
13336
|
-
|
|
13337
|
-
|
|
13476
|
+
lodash.isEmpty(groups) &&
|
|
13477
|
+
lodash.isEmpty(optionUnits) &&
|
|
13478
|
+
lodash.isEmpty(optionPax) && React__default["default"].createElement(NoOptions, null))),
|
|
13479
|
+
React__default["default"].createElement("div", { className: 'booking__navigator' },
|
|
13480
|
+
hasPrevious && (React__default["default"].createElement(React__default["default"].Fragment, null, settings.skipRouter ? (React__default["default"].createElement("button", { type: 'button', title: translations.STEPS.PREVIOUS, onClick: function () { return goPrevious(); }, className: 'cta cta--secondary' }, translations.STEPS.PREVIOUS)) : (React__default["default"].createElement(router.Link, { to: previousUrl, title: translations.STEPS.PREVIOUS, className: 'cta cta--secondary' }, translations.STEPS.PREVIOUS)))),
|
|
13481
|
+
token &&
|
|
13482
|
+
settings.options.reportPrintActionId && (React__default["default"].createElement(PrintOfferButton, { bookingPackage: packageDetails, getPax: getPax, tagIds: tagIds, printActionId: settings.options.reportPrintActionId, labelIdle: translations.PRINT_OFFER_BUTTON.LABEL_IDLE, labelCreating: translations.PRINT_OFFER_BUTTON
|
|
13483
|
+
.LABEL_CREATING, labelPrinting: translations.PRINT_OFFER_BUTTON
|
|
13484
|
+
.LABEL_PRINTING, className: 'cta spinner-button' })),
|
|
13485
|
+
React__default["default"].createElement("button", { type: 'submit', title: translations.STEPS.NEXT, disabled: isLoading, className: buildClassName([
|
|
13486
|
+
"cta",
|
|
13487
|
+
isLoading && "cta--disabled",
|
|
13488
|
+
]) }, translations.STEPS.NEXT)))));
|
|
13338
13489
|
};
|
|
13339
13490
|
|
|
13340
13491
|
var RoomOption = function (_a) {
|
|
@@ -232,6 +232,11 @@ export declare const getTranslations: (language: string) => {
|
|
|
232
232
|
ERROR_TEXT3: string;
|
|
233
233
|
ERROR_ALT: string;
|
|
234
234
|
};
|
|
235
|
+
PRINT_OFFER_BUTTON: {
|
|
236
|
+
LABEL_IDLE: string;
|
|
237
|
+
LABEL_CREATING: string;
|
|
238
|
+
LABEL_PRINTING: string;
|
|
239
|
+
};
|
|
235
240
|
};
|
|
236
241
|
export declare const locales: {
|
|
237
242
|
"nl-BE": Locale;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { BookingPackage, Pax } from "@qite/tide-client/build/types";
|
|
3
|
+
interface PrintOfferButtonProps {
|
|
4
|
+
bookingPackage?: BookingPackage;
|
|
5
|
+
getPax: () => Pax[] | undefined;
|
|
6
|
+
tagIds?: number[];
|
|
7
|
+
printActionId?: number | null;
|
|
8
|
+
onPrinted?: (pdfUrl: string) => void;
|
|
9
|
+
labelIdle?: string;
|
|
10
|
+
labelCreating?: string;
|
|
11
|
+
labelPrinting?: string;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
loader?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
declare const PrintOfferButton: React.FC<PrintOfferButtonProps>;
|
|
17
|
+
export default PrintOfferButton;
|