@voyantjs/bookings-ui 0.16.0 → 0.17.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/README.md +11 -0
- package/dist/components/booking-activity-timeline.d.ts.map +1 -1
- package/dist/components/booking-activity-timeline.js +34 -14
- package/dist/components/booking-cancellation-dialog.d.ts.map +1 -1
- package/dist/components/booking-cancellation-dialog.js +15 -16
- package/dist/components/booking-create-dialog.d.ts.map +1 -1
- package/dist/components/booking-create-dialog.js +77 -13
- package/dist/components/booking-dialog.d.ts.map +1 -1
- package/dist/components/booking-dialog.js +27 -21
- package/dist/components/booking-document-dialog.d.ts.map +1 -1
- package/dist/components/booking-document-dialog.js +27 -13
- package/dist/components/booking-document-list.d.ts.map +1 -1
- package/dist/components/booking-document-list.js +9 -4
- package/dist/components/booking-group-link-dialog.d.ts.map +1 -1
- package/dist/components/booking-group-link-dialog.js +17 -6
- package/dist/components/booking-group-section.d.ts.map +1 -1
- package/dist/components/booking-group-section.js +8 -2
- package/dist/components/booking-guarantee-dialog.d.ts.map +1 -1
- package/dist/components/booking-guarantee-dialog.js +30 -14
- package/dist/components/booking-guarantee-list.d.ts.map +1 -1
- package/dist/components/booking-guarantee-list.js +11 -8
- package/dist/components/booking-item-dialog.d.ts.map +1 -1
- package/dist/components/booking-item-dialog.js +34 -20
- package/dist/components/booking-item-list.d.ts.map +1 -1
- package/dist/components/booking-item-list.js +10 -9
- package/dist/components/booking-item-travelers.d.ts.map +1 -1
- package/dist/components/booking-item-travelers.js +9 -4
- package/dist/components/booking-list.d.ts.map +1 -1
- package/dist/components/booking-list.js +17 -8
- package/dist/components/booking-notes.d.ts.map +1 -1
- package/dist/components/booking-notes.js +5 -2
- package/dist/components/booking-payment-schedule-dialog.d.ts.map +1 -1
- package/dist/components/booking-payment-schedule-dialog.js +31 -12
- package/dist/components/booking-payment-schedule-list.d.ts.map +1 -1
- package/dist/components/booking-payment-schedule-list.js +7 -6
- package/dist/components/booking-payments-summary.d.ts.map +1 -1
- package/dist/components/booking-payments-summary.js +7 -4
- package/dist/components/file-dropzone.d.ts.map +1 -1
- package/dist/components/file-dropzone.js +25 -15
- package/dist/components/passengers-section.d.ts.map +1 -1
- package/dist/components/passengers-section.js +3 -17
- package/dist/components/payment-schedule-section.d.ts.map +1 -1
- package/dist/components/payment-schedule-section.js +3 -14
- package/dist/components/person-picker-section.d.ts.map +1 -1
- package/dist/components/person-picker-section.js +3 -19
- package/dist/components/price-breakdown-section.d.ts.map +1 -1
- package/dist/components/price-breakdown-section.js +15 -18
- package/dist/components/product-picker-section.d.ts.map +1 -1
- package/dist/components/product-picker-section.js +3 -8
- package/dist/components/rooms-stepper-section.d.ts.map +1 -1
- package/dist/components/rooms-stepper-section.js +4 -9
- package/dist/components/shared-room-section.d.ts.map +1 -1
- package/dist/components/shared-room-section.js +3 -9
- package/dist/components/status-change-dialog.d.ts.map +1 -1
- package/dist/components/status-change-dialog.js +6 -1
- package/dist/components/supplier-status-dialog.d.ts.map +1 -1
- package/dist/components/supplier-status-dialog.js +31 -15
- package/dist/components/supplier-status-list.d.ts.map +1 -1
- package/dist/components/supplier-status-list.js +10 -2
- package/dist/components/traveler-dialog.d.ts.map +1 -1
- package/dist/components/traveler-dialog.js +17 -8
- package/dist/components/traveler-list.d.ts.map +1 -1
- package/dist/components/traveler-list.js +5 -3
- package/dist/components/voucher-picker-section.d.ts.map +1 -1
- package/dist/components/voucher-picker-section.js +11 -26
- package/dist/i18n/en.d.ts +797 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +796 -0
- package/dist/i18n/index.d.ts +5 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/messages.d.ts +684 -0
- package/dist/i18n/messages.d.ts.map +1 -0
- package/dist/i18n/messages.js +1 -0
- package/dist/i18n/provider.d.ts +1617 -0
- package/dist/i18n/provider.d.ts.map +1 -0
- package/dist/i18n/provider.js +45 -0
- package/dist/i18n/ro.d.ts +797 -0
- package/dist/i18n/ro.d.ts.map +1 -0
- package/dist/i18n/ro.js +796 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/package.json +32 -17
package/dist/i18n/en.js
ADDED
|
@@ -0,0 +1,796 @@
|
|
|
1
|
+
export const bookingsUiEn = {
|
|
2
|
+
common: {
|
|
3
|
+
cancel: "Cancel",
|
|
4
|
+
saveChanges: "Save changes",
|
|
5
|
+
add: "Add",
|
|
6
|
+
loading: "Loading...",
|
|
7
|
+
bookingStatusLabels: {
|
|
8
|
+
draft: "Draft",
|
|
9
|
+
on_hold: "On hold",
|
|
10
|
+
confirmed: "Confirmed",
|
|
11
|
+
in_progress: "In progress",
|
|
12
|
+
cancelled: "Cancelled",
|
|
13
|
+
completed: "Completed",
|
|
14
|
+
expired: "Expired",
|
|
15
|
+
},
|
|
16
|
+
supplierStatusLabels: {
|
|
17
|
+
pending: "Pending",
|
|
18
|
+
confirmed: "Confirmed",
|
|
19
|
+
rejected: "Rejected",
|
|
20
|
+
cancelled: "Cancelled",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
travelerDialog: {
|
|
24
|
+
titles: {
|
|
25
|
+
create: "Add traveler",
|
|
26
|
+
edit: "Edit traveler",
|
|
27
|
+
},
|
|
28
|
+
fields: {
|
|
29
|
+
firstName: "First name",
|
|
30
|
+
lastName: "Last name",
|
|
31
|
+
email: "Email",
|
|
32
|
+
phone: "Phone",
|
|
33
|
+
specialRequests: "Special requests",
|
|
34
|
+
},
|
|
35
|
+
placeholders: {
|
|
36
|
+
firstName: "John",
|
|
37
|
+
lastName: "Smith",
|
|
38
|
+
email: "john@example.com",
|
|
39
|
+
phone: "+44 7911 123456",
|
|
40
|
+
specialRequests: "Any special requests...",
|
|
41
|
+
},
|
|
42
|
+
validation: {
|
|
43
|
+
firstNameRequired: "First name is required",
|
|
44
|
+
lastNameRequired: "Last name is required",
|
|
45
|
+
},
|
|
46
|
+
actions: {
|
|
47
|
+
addTraveler: "Add traveler",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
travelerList: {
|
|
51
|
+
title: "Travelers",
|
|
52
|
+
addTraveler: "Add traveler",
|
|
53
|
+
empty: "No travelers yet.",
|
|
54
|
+
values: {
|
|
55
|
+
emailUnavailable: "-",
|
|
56
|
+
phoneUnavailable: "-",
|
|
57
|
+
},
|
|
58
|
+
columns: {
|
|
59
|
+
name: "Name",
|
|
60
|
+
email: "Email",
|
|
61
|
+
phone: "Phone",
|
|
62
|
+
},
|
|
63
|
+
actions: {
|
|
64
|
+
deleteConfirm: "Delete this traveler?",
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
bookingItemDialog: {
|
|
68
|
+
titles: {
|
|
69
|
+
create: "Add item",
|
|
70
|
+
edit: "Edit item",
|
|
71
|
+
},
|
|
72
|
+
itemTypeLabels: {
|
|
73
|
+
unit: "Unit",
|
|
74
|
+
extra: "Extra",
|
|
75
|
+
service: "Service",
|
|
76
|
+
fee: "Fee",
|
|
77
|
+
tax: "Tax",
|
|
78
|
+
discount: "Discount",
|
|
79
|
+
adjustment: "Adjustment",
|
|
80
|
+
accommodation: "Accommodation",
|
|
81
|
+
transport: "Transport",
|
|
82
|
+
other: "Other",
|
|
83
|
+
},
|
|
84
|
+
itemStatusLabels: {
|
|
85
|
+
draft: "Draft",
|
|
86
|
+
on_hold: "On hold",
|
|
87
|
+
confirmed: "Confirmed",
|
|
88
|
+
cancelled: "Cancelled",
|
|
89
|
+
expired: "Expired",
|
|
90
|
+
fulfilled: "Fulfilled",
|
|
91
|
+
},
|
|
92
|
+
fields: {
|
|
93
|
+
title: "Title",
|
|
94
|
+
type: "Type",
|
|
95
|
+
status: "Status",
|
|
96
|
+
quantity: "Quantity",
|
|
97
|
+
sellCurrency: "Sell currency",
|
|
98
|
+
unitSellAmountCents: "Unit sell (cents)",
|
|
99
|
+
totalSellAmountCents: "Total sell (cents)",
|
|
100
|
+
costCurrency: "Cost currency",
|
|
101
|
+
unitCostAmountCents: "Unit cost (cents)",
|
|
102
|
+
totalCostAmountCents: "Total cost (cents)",
|
|
103
|
+
serviceDate: "Service date",
|
|
104
|
+
description: "Description",
|
|
105
|
+
notes: "Notes",
|
|
106
|
+
},
|
|
107
|
+
placeholders: {
|
|
108
|
+
title: "Room night, transfer, tour...",
|
|
109
|
+
unitSellAmountCents: "0",
|
|
110
|
+
totalSellAmountCents: "0",
|
|
111
|
+
unitCostAmountCents: "0",
|
|
112
|
+
totalCostAmountCents: "0",
|
|
113
|
+
serviceDate: "Select service date",
|
|
114
|
+
description: "Item description...",
|
|
115
|
+
notes: "Internal notes...",
|
|
116
|
+
},
|
|
117
|
+
validation: {
|
|
118
|
+
titleRequired: "Title is required",
|
|
119
|
+
},
|
|
120
|
+
actions: {
|
|
121
|
+
addItem: "Add item",
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
bookingItemTravelers: {
|
|
125
|
+
title: "Assigned travelers",
|
|
126
|
+
empty: "No travelers assigned to this item.",
|
|
127
|
+
selectTravelerPlaceholder: "Select traveler...",
|
|
128
|
+
primaryBadge: "Primary",
|
|
129
|
+
roleLabels: {
|
|
130
|
+
traveler: "Traveler",
|
|
131
|
+
occupant: "Occupant",
|
|
132
|
+
primary_contact: "Primary contact",
|
|
133
|
+
service_assignee: "Service assignee",
|
|
134
|
+
beneficiary: "Beneficiary",
|
|
135
|
+
other: "Other",
|
|
136
|
+
},
|
|
137
|
+
actions: {
|
|
138
|
+
assign: "Assign",
|
|
139
|
+
removeConfirm: "Remove this traveler from the item?",
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
paymentScheduleDialog: {
|
|
143
|
+
titles: {
|
|
144
|
+
create: "Add payment schedule",
|
|
145
|
+
edit: "Edit payment schedule",
|
|
146
|
+
},
|
|
147
|
+
scheduleTypeLabels: {
|
|
148
|
+
deposit: "Deposit",
|
|
149
|
+
installment: "Installment",
|
|
150
|
+
balance: "Balance",
|
|
151
|
+
hold: "Hold",
|
|
152
|
+
other: "Other",
|
|
153
|
+
},
|
|
154
|
+
scheduleStatusLabels: {
|
|
155
|
+
pending: "Pending",
|
|
156
|
+
due: "Due",
|
|
157
|
+
paid: "Paid",
|
|
158
|
+
waived: "Waived",
|
|
159
|
+
cancelled: "Cancelled",
|
|
160
|
+
expired: "Expired",
|
|
161
|
+
},
|
|
162
|
+
fields: {
|
|
163
|
+
type: "Type",
|
|
164
|
+
status: "Status",
|
|
165
|
+
dueDate: "Due date",
|
|
166
|
+
currency: "Currency",
|
|
167
|
+
amountCents: "Amount (cents)",
|
|
168
|
+
notes: "Notes",
|
|
169
|
+
},
|
|
170
|
+
placeholders: {
|
|
171
|
+
dueDate: "Select due date",
|
|
172
|
+
notes: "Payment notes...",
|
|
173
|
+
},
|
|
174
|
+
validation: {
|
|
175
|
+
dueDateRequired: "Due date is required",
|
|
176
|
+
amountRequired: "Amount is required",
|
|
177
|
+
},
|
|
178
|
+
actions: {
|
|
179
|
+
addSchedule: "Add schedule",
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
fileDropzone: {
|
|
183
|
+
helperText: "Drag and drop a file here, or click to select",
|
|
184
|
+
uploading: "Uploading...",
|
|
185
|
+
acceptedPrefix: "Accepted:",
|
|
186
|
+
removeFileAriaLabel: "Remove file",
|
|
187
|
+
validation: {
|
|
188
|
+
fileTooLarge: "File too large (max {maxSize})",
|
|
189
|
+
uploadFailedWithStatus: "Upload failed ({status})",
|
|
190
|
+
uploadFailed: "Upload failed",
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
voucherPickerSection: {
|
|
194
|
+
labels: {
|
|
195
|
+
heading: "Voucher (optional)",
|
|
196
|
+
codePlaceholder: "Enter voucher code...",
|
|
197
|
+
apply: "Apply",
|
|
198
|
+
clear: "Clear",
|
|
199
|
+
remainingLabel: "Remaining balance:",
|
|
200
|
+
invalidLabel: "This voucher can't be applied:",
|
|
201
|
+
},
|
|
202
|
+
reasonMessages: {
|
|
203
|
+
not_found: "Voucher code not found.",
|
|
204
|
+
inactive: "Voucher is not active.",
|
|
205
|
+
not_started: "Voucher is not yet valid.",
|
|
206
|
+
expired: "Voucher has expired.",
|
|
207
|
+
booking_mismatch: "Voucher is assigned to a different booking.",
|
|
208
|
+
currency_mismatch: "Voucher currency does not match the booking.",
|
|
209
|
+
insufficient_balance: "Voucher balance is too low for the selected amount.",
|
|
210
|
+
},
|
|
211
|
+
validation: {
|
|
212
|
+
invalid: "Voucher is not valid.",
|
|
213
|
+
lookupFailed: "Voucher lookup failed.",
|
|
214
|
+
amountUnavailable: "-",
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
productPickerSection: {
|
|
218
|
+
labels: {
|
|
219
|
+
product: "Product",
|
|
220
|
+
productSearchPlaceholder: "Search products...",
|
|
221
|
+
productSelectPlaceholder: "Select a product...",
|
|
222
|
+
option: "Option",
|
|
223
|
+
optionNone: "No specific option",
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
personPickerSection: {
|
|
227
|
+
labels: {
|
|
228
|
+
person: "Person",
|
|
229
|
+
createNewPerson: "Create new",
|
|
230
|
+
selectExistingPerson: "Select existing",
|
|
231
|
+
personSearchPlaceholder: "Search people by name or email...",
|
|
232
|
+
personSelectPlaceholder: "Select a person...",
|
|
233
|
+
firstName: "First name",
|
|
234
|
+
firstNamePlaceholder: "John",
|
|
235
|
+
lastName: "Last name",
|
|
236
|
+
lastNamePlaceholder: "Smith",
|
|
237
|
+
email: "Email",
|
|
238
|
+
emailPlaceholder: "john@example.com",
|
|
239
|
+
phone: "Phone",
|
|
240
|
+
phonePlaceholder: "+44 7911 123456",
|
|
241
|
+
organization: "Organization (optional)",
|
|
242
|
+
organizationSearchPlaceholder: "Search organizations...",
|
|
243
|
+
organizationNone: "No organization",
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
passengersSection: {
|
|
247
|
+
labels: {
|
|
248
|
+
heading: "Passengers",
|
|
249
|
+
addPassenger: "Add passenger",
|
|
250
|
+
firstName: "First name",
|
|
251
|
+
lastName: "Last name",
|
|
252
|
+
email: "Email",
|
|
253
|
+
role: "Role",
|
|
254
|
+
roleLead: "Lead",
|
|
255
|
+
roleAdult: "Adult",
|
|
256
|
+
roleChild: "Child",
|
|
257
|
+
roleInfant: "Infant",
|
|
258
|
+
room: "Room",
|
|
259
|
+
noRoom: "Unassigned",
|
|
260
|
+
remove: "Remove passenger",
|
|
261
|
+
empty: "No passengers yet. Add at least one.",
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
paymentScheduleSection: {
|
|
265
|
+
labels: {
|
|
266
|
+
heading: "Payment schedule",
|
|
267
|
+
modeUnpaid: "Unpaid",
|
|
268
|
+
modeFull: "Full",
|
|
269
|
+
modeAdvance: "Advance",
|
|
270
|
+
modeSplit: "Split",
|
|
271
|
+
dueDate: "Due date",
|
|
272
|
+
amount: "Amount",
|
|
273
|
+
firstInstallment: "First installment",
|
|
274
|
+
secondInstallment: "Second installment",
|
|
275
|
+
preset5050: "50 / 50",
|
|
276
|
+
unpaidHint: "No payment schedule will be created. Operator will invoice manually.",
|
|
277
|
+
},
|
|
278
|
+
},
|
|
279
|
+
roomsStepperSection: {
|
|
280
|
+
labels: {
|
|
281
|
+
heading: "Rooms",
|
|
282
|
+
noSlot: "Pick a departure first to see available rooms.",
|
|
283
|
+
noUnits: "This departure has no per-unit availability configured.",
|
|
284
|
+
remaining: "left",
|
|
285
|
+
unlimited: "unlimited",
|
|
286
|
+
decreaseUnitPrefix: "Decrease",
|
|
287
|
+
increaseUnitPrefix: "Increase",
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
sharedRoomSection: {
|
|
291
|
+
labels: {
|
|
292
|
+
toggle: "Link to a shared-room group",
|
|
293
|
+
createMode: "Create new group",
|
|
294
|
+
joinMode: "Join existing",
|
|
295
|
+
selectPlaceholder: "Select a group...",
|
|
296
|
+
noGroups: "No existing groups for this product",
|
|
297
|
+
createHint: "A new group will be created with this booking as the primary member.",
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
priceBreakdownSection: {
|
|
301
|
+
labels: {
|
|
302
|
+
heading: "Price breakdown",
|
|
303
|
+
total: "Total",
|
|
304
|
+
onRequest: "On request",
|
|
305
|
+
groupRate: "group rate",
|
|
306
|
+
empty: "Pick units above to see the breakdown.",
|
|
307
|
+
noPricing: "No pricing catalog available for this product.",
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
bookingDocumentDialog: {
|
|
311
|
+
title: "Add document",
|
|
312
|
+
documentTypeLabels: {
|
|
313
|
+
visa: "Visa",
|
|
314
|
+
insurance: "Insurance",
|
|
315
|
+
health: "Health",
|
|
316
|
+
passport_copy: "Passport copy",
|
|
317
|
+
other: "Other",
|
|
318
|
+
},
|
|
319
|
+
fields: {
|
|
320
|
+
type: "Type",
|
|
321
|
+
traveler: "Traveler (optional)",
|
|
322
|
+
file: "File",
|
|
323
|
+
expiresAt: "Expires at (optional)",
|
|
324
|
+
notes: "Notes",
|
|
325
|
+
},
|
|
326
|
+
placeholders: {
|
|
327
|
+
travelerUnassigned: "Booking-wide",
|
|
328
|
+
helperText: "Drop passport, visa, or insurance document (PDF or image)",
|
|
329
|
+
expiresAt: "Select expiry date",
|
|
330
|
+
notes: "Additional notes...",
|
|
331
|
+
},
|
|
332
|
+
validation: {
|
|
333
|
+
fileNameRequired: "File name is required",
|
|
334
|
+
fileUrlInvalid: "Must be a valid URL",
|
|
335
|
+
},
|
|
336
|
+
actions: {
|
|
337
|
+
addDocument: "Add document",
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
bookingDocumentList: {
|
|
341
|
+
title: "Documents",
|
|
342
|
+
addDocument: "Add document",
|
|
343
|
+
empty: "No documents yet.",
|
|
344
|
+
values: {
|
|
345
|
+
travelerUnavailable: "-",
|
|
346
|
+
expiresUnavailable: "-",
|
|
347
|
+
notesUnavailable: "-",
|
|
348
|
+
},
|
|
349
|
+
columns: {
|
|
350
|
+
type: "Type",
|
|
351
|
+
file: "File",
|
|
352
|
+
traveler: "Traveler",
|
|
353
|
+
expires: "Expires",
|
|
354
|
+
notes: "Notes",
|
|
355
|
+
},
|
|
356
|
+
actions: {
|
|
357
|
+
deleteConfirm: "Delete this document?",
|
|
358
|
+
},
|
|
359
|
+
},
|
|
360
|
+
statusChangeDialog: {
|
|
361
|
+
title: "Change booking status",
|
|
362
|
+
fields: {
|
|
363
|
+
status: "New status",
|
|
364
|
+
note: "Note (optional)",
|
|
365
|
+
},
|
|
366
|
+
placeholders: {
|
|
367
|
+
note: "Reason for status change...",
|
|
368
|
+
},
|
|
369
|
+
actions: {
|
|
370
|
+
updateStatus: "Update status",
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
supplierStatusDialog: {
|
|
374
|
+
titles: {
|
|
375
|
+
create: "Add supplier status",
|
|
376
|
+
edit: "Update supplier status",
|
|
377
|
+
},
|
|
378
|
+
fields: {
|
|
379
|
+
serviceName: "Service name",
|
|
380
|
+
status: "Status",
|
|
381
|
+
costCurrency: "Cost currency",
|
|
382
|
+
costAmountCents: "Cost amount (cents)",
|
|
383
|
+
supplierReference: "Supplier reference",
|
|
384
|
+
notes: "Notes",
|
|
385
|
+
},
|
|
386
|
+
placeholders: {
|
|
387
|
+
serviceName: "Hotel Dubrovnik Palace",
|
|
388
|
+
supplierReference: "CONF-12345",
|
|
389
|
+
notes: "Additional notes...",
|
|
390
|
+
},
|
|
391
|
+
validation: {
|
|
392
|
+
serviceNameRequired: "Service name is required",
|
|
393
|
+
costCurrencyInvalid: "Use 3-letter ISO code",
|
|
394
|
+
},
|
|
395
|
+
actions: {
|
|
396
|
+
addSupplierStatus: "Add",
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
bookingItemList: {
|
|
400
|
+
title: "Items",
|
|
401
|
+
addItem: "Add item",
|
|
402
|
+
empty: "No items yet.",
|
|
403
|
+
values: {
|
|
404
|
+
totalUnavailable: "-",
|
|
405
|
+
serviceDateUnavailable: "-",
|
|
406
|
+
},
|
|
407
|
+
columns: {
|
|
408
|
+
title: "Title",
|
|
409
|
+
type: "Type",
|
|
410
|
+
status: "Status",
|
|
411
|
+
quantity: "Qty",
|
|
412
|
+
total: "Total",
|
|
413
|
+
serviceDate: "Service date",
|
|
414
|
+
},
|
|
415
|
+
actions: {
|
|
416
|
+
deleteConfirm: "Delete this item?",
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
bookingPaymentScheduleList: {
|
|
420
|
+
title: "Payment schedule",
|
|
421
|
+
addSchedule: "Add schedule",
|
|
422
|
+
empty: "No payment schedules yet.",
|
|
423
|
+
values: {
|
|
424
|
+
notesUnavailable: "-",
|
|
425
|
+
},
|
|
426
|
+
columns: {
|
|
427
|
+
type: "Type",
|
|
428
|
+
status: "Status",
|
|
429
|
+
dueDate: "Due date",
|
|
430
|
+
amount: "Amount",
|
|
431
|
+
notes: "Notes",
|
|
432
|
+
},
|
|
433
|
+
actions: {
|
|
434
|
+
deleteConfirm: "Delete this payment schedule?",
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
supplierStatusList: {
|
|
438
|
+
title: "Supplier confirmations",
|
|
439
|
+
addSupplier: "Add supplier",
|
|
440
|
+
empty: "No supplier statuses yet.",
|
|
441
|
+
values: {
|
|
442
|
+
costUnavailable: "-",
|
|
443
|
+
referenceUnavailable: "-",
|
|
444
|
+
confirmedUnavailable: "-",
|
|
445
|
+
},
|
|
446
|
+
columns: {
|
|
447
|
+
service: "Service",
|
|
448
|
+
status: "Status",
|
|
449
|
+
cost: "Cost",
|
|
450
|
+
reference: "Reference",
|
|
451
|
+
confirmed: "Confirmed",
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
bookingCancellationDialog: {
|
|
455
|
+
title: "Cancel booking",
|
|
456
|
+
summary: {
|
|
457
|
+
booking: "Booking",
|
|
458
|
+
startDate: "Start date",
|
|
459
|
+
total: "Total",
|
|
460
|
+
daysBeforeDeparture: "Days before departure",
|
|
461
|
+
},
|
|
462
|
+
values: {
|
|
463
|
+
startDateTbd: "TBD",
|
|
464
|
+
amountUnavailable: "-",
|
|
465
|
+
ruleFallback: "-",
|
|
466
|
+
ruleDaysBeforeDeparture: ">= {days} days",
|
|
467
|
+
},
|
|
468
|
+
policy: {
|
|
469
|
+
applicablePolicy: "Applicable policy",
|
|
470
|
+
refund: "Refund",
|
|
471
|
+
penalty: "Penalty",
|
|
472
|
+
rule: "Rule",
|
|
473
|
+
resolving: "Resolving cancellation policy...",
|
|
474
|
+
missing: "No cancellation policy configured for this booking.",
|
|
475
|
+
missingHint: "Proceeding will cancel without a refund preview.",
|
|
476
|
+
calculating: "Calculating refund...",
|
|
477
|
+
noTotalAmount: "Booking has no total amount. Refund cannot be calculated.",
|
|
478
|
+
},
|
|
479
|
+
refundTypeLabels: {
|
|
480
|
+
cash: "Cash refund",
|
|
481
|
+
credit: "Credit",
|
|
482
|
+
cash_or_credit: "Cash or credit",
|
|
483
|
+
none: "No refund",
|
|
484
|
+
},
|
|
485
|
+
fields: {
|
|
486
|
+
reason: "Reason",
|
|
487
|
+
},
|
|
488
|
+
placeholders: {
|
|
489
|
+
reason: "Why is this booking being cancelled?",
|
|
490
|
+
},
|
|
491
|
+
validation: {
|
|
492
|
+
cancellationFailed: "Cancellation failed",
|
|
493
|
+
},
|
|
494
|
+
actions: {
|
|
495
|
+
close: "Close",
|
|
496
|
+
confirm: "Confirm cancellation",
|
|
497
|
+
},
|
|
498
|
+
},
|
|
499
|
+
bookingGuaranteeDialog: {
|
|
500
|
+
titles: {
|
|
501
|
+
create: "Add guarantee",
|
|
502
|
+
edit: "Edit guarantee",
|
|
503
|
+
},
|
|
504
|
+
guaranteeTypeLabels: {
|
|
505
|
+
deposit: "Deposit",
|
|
506
|
+
credit_card: "Credit card",
|
|
507
|
+
preauth: "Preauthorization",
|
|
508
|
+
card_on_file: "Card on file",
|
|
509
|
+
bank_transfer: "Bank transfer",
|
|
510
|
+
voucher: "Voucher",
|
|
511
|
+
agency_letter: "Agency letter",
|
|
512
|
+
other: "Other",
|
|
513
|
+
},
|
|
514
|
+
guaranteeStatusLabels: {
|
|
515
|
+
pending: "Pending",
|
|
516
|
+
active: "Active",
|
|
517
|
+
released: "Released",
|
|
518
|
+
failed: "Failed",
|
|
519
|
+
cancelled: "Cancelled",
|
|
520
|
+
expired: "Expired",
|
|
521
|
+
},
|
|
522
|
+
fields: {
|
|
523
|
+
type: "Type",
|
|
524
|
+
status: "Status",
|
|
525
|
+
currency: "Currency",
|
|
526
|
+
amountCents: "Amount (cents)",
|
|
527
|
+
provider: "Provider",
|
|
528
|
+
referenceNumber: "Reference number",
|
|
529
|
+
expiresAt: "Expires at",
|
|
530
|
+
notes: "Notes",
|
|
531
|
+
},
|
|
532
|
+
placeholders: {
|
|
533
|
+
provider: "Stripe, bank name...",
|
|
534
|
+
referenceNumber: "External reference...",
|
|
535
|
+
expiresAt: "Select expiry date & time",
|
|
536
|
+
notes: "Guarantee notes...",
|
|
537
|
+
},
|
|
538
|
+
actions: {
|
|
539
|
+
addGuarantee: "Add guarantee",
|
|
540
|
+
},
|
|
541
|
+
},
|
|
542
|
+
bookingGuaranteeList: {
|
|
543
|
+
title: "Guarantees",
|
|
544
|
+
addGuarantee: "Add guarantee",
|
|
545
|
+
empty: "No guarantees yet.",
|
|
546
|
+
values: {
|
|
547
|
+
amountUnavailable: "-",
|
|
548
|
+
providerUnavailable: "-",
|
|
549
|
+
referenceUnavailable: "-",
|
|
550
|
+
expiresUnavailable: "-",
|
|
551
|
+
},
|
|
552
|
+
columns: {
|
|
553
|
+
type: "Type",
|
|
554
|
+
status: "Status",
|
|
555
|
+
amount: "Amount",
|
|
556
|
+
provider: "Provider",
|
|
557
|
+
reference: "Reference",
|
|
558
|
+
expires: "Expires",
|
|
559
|
+
},
|
|
560
|
+
actions: {
|
|
561
|
+
deleteConfirm: "Delete this guarantee?",
|
|
562
|
+
},
|
|
563
|
+
},
|
|
564
|
+
bookingGroupLinkDialog: {
|
|
565
|
+
title: "Link booking to shared room",
|
|
566
|
+
modes: {
|
|
567
|
+
join: "Join existing",
|
|
568
|
+
create: "Create new",
|
|
569
|
+
},
|
|
570
|
+
fields: {
|
|
571
|
+
existingGroups: "Existing groups",
|
|
572
|
+
groupLabel: "Group label",
|
|
573
|
+
},
|
|
574
|
+
placeholders: {
|
|
575
|
+
selectGroup: "Select a group...",
|
|
576
|
+
noExistingGroups: "No existing groups",
|
|
577
|
+
groupLabel: "e.g. Smith + Jones, Room 204",
|
|
578
|
+
},
|
|
579
|
+
hints: {
|
|
580
|
+
productFiltered: "Filtered to groups for the booking's product.",
|
|
581
|
+
primaryMember: "This booking will be marked as the primary member.",
|
|
582
|
+
},
|
|
583
|
+
validation: {
|
|
584
|
+
selectGroup: "Select a group to join",
|
|
585
|
+
linkFailed: "Failed to link booking",
|
|
586
|
+
},
|
|
587
|
+
actions: {
|
|
588
|
+
createAndLink: "Create & link",
|
|
589
|
+
linkToGroup: "Link to group",
|
|
590
|
+
},
|
|
591
|
+
labels: {
|
|
592
|
+
generatedLabelPrefix: "Shared room",
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
bookingGroupSection: {
|
|
596
|
+
title: "Shared room",
|
|
597
|
+
empty: "This booking is not linked to a shared-room group.",
|
|
598
|
+
group: "Group",
|
|
599
|
+
siblingBookings: "Sibling bookings ({count})",
|
|
600
|
+
noSiblingBookings: "No other bookings linked yet. Share the group id with another booking to link them.",
|
|
601
|
+
primaryBadge: "Primary",
|
|
602
|
+
sharedRoomKind: "Shared room",
|
|
603
|
+
actions: {
|
|
604
|
+
removeFromGroup: "Remove from group",
|
|
605
|
+
linkToSharedRoom: "Link to shared room",
|
|
606
|
+
removeConfirm: "Remove this booking from the shared-room group?",
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
bookingDialog: {
|
|
610
|
+
editTitle: "Edit booking",
|
|
611
|
+
fields: {
|
|
612
|
+
bookingNumber: "Booking number",
|
|
613
|
+
status: "Status",
|
|
614
|
+
sellCurrency: "Sell currency",
|
|
615
|
+
travelDates: "Travel dates",
|
|
616
|
+
sellAmountCents: "Sell amount (cents)",
|
|
617
|
+
costAmountCents: "Cost amount (cents)",
|
|
618
|
+
pax: "Travelers (pax)",
|
|
619
|
+
internalNotes: "Internal notes",
|
|
620
|
+
},
|
|
621
|
+
placeholders: {
|
|
622
|
+
bookingNumber: "BK-2501-1234",
|
|
623
|
+
travelDates: "Pick travel dates",
|
|
624
|
+
pax: "2",
|
|
625
|
+
internalNotes: "Private operations notes...",
|
|
626
|
+
},
|
|
627
|
+
validation: {
|
|
628
|
+
bookingNumberRequired: "Booking number is required",
|
|
629
|
+
sellCurrencyInvalid: "Use 3-letter ISO code",
|
|
630
|
+
},
|
|
631
|
+
},
|
|
632
|
+
bookingCreateDialog: {
|
|
633
|
+
title: "Quick book",
|
|
634
|
+
fields: {
|
|
635
|
+
departure: "Departure",
|
|
636
|
+
internalNotes: "Internal notes",
|
|
637
|
+
confirmAfterCreate: "Confirm and notify traveler after creating",
|
|
638
|
+
confirmAfterCreateHint: "Transitions to confirmed after create. When auto-dispatch is on, this also sends the document bundle and traveler email.",
|
|
639
|
+
},
|
|
640
|
+
placeholders: {
|
|
641
|
+
departure: "Select a departure...",
|
|
642
|
+
departureNone: "No specific departure",
|
|
643
|
+
departureEmpty: "No open departures for this product",
|
|
644
|
+
internalNotes: "Quick context for this booking...",
|
|
645
|
+
},
|
|
646
|
+
validation: {
|
|
647
|
+
selectProduct: "Select a product",
|
|
648
|
+
selectPerson: "Select a person or switch to create mode",
|
|
649
|
+
firstAndLastNameRequired: "First and last name are required",
|
|
650
|
+
selectSharedRoomGroup: "Select a shared-room group to join",
|
|
651
|
+
confirmFailedPrefix: "Booking created but confirm failed: {message}",
|
|
652
|
+
confirmFailed: "Booking created but confirm failed",
|
|
653
|
+
createFailed: "Failed to create booking",
|
|
654
|
+
},
|
|
655
|
+
actions: {
|
|
656
|
+
createDraftBooking: "Create draft booking",
|
|
657
|
+
},
|
|
658
|
+
labels: {
|
|
659
|
+
currency: "EUR",
|
|
660
|
+
remainingCapacity: "left",
|
|
661
|
+
noSpecificOption: "No specific option",
|
|
662
|
+
createNewPerson: "Create new",
|
|
663
|
+
selectExistingPerson: "Select existing",
|
|
664
|
+
organizationNone: "No organization",
|
|
665
|
+
addPassenger: "Add passenger",
|
|
666
|
+
passengerHeading: "Passengers",
|
|
667
|
+
passengerRole: "Role",
|
|
668
|
+
passengerLead: "Lead",
|
|
669
|
+
passengerAdult: "Adult",
|
|
670
|
+
passengerChild: "Child",
|
|
671
|
+
passengerInfant: "Infant",
|
|
672
|
+
passengerRoom: "Room",
|
|
673
|
+
passengerNoRoom: "Unassigned",
|
|
674
|
+
passengerRemove: "Remove passenger",
|
|
675
|
+
passengerEmpty: "No passengers yet. Add at least one.",
|
|
676
|
+
roomsHeading: "Rooms",
|
|
677
|
+
roomsNoSlot: "Pick a departure first to see available rooms.",
|
|
678
|
+
roomsNoUnits: "This departure has no per-unit availability configured.",
|
|
679
|
+
roomsRemaining: "left",
|
|
680
|
+
roomsUnlimited: "unlimited",
|
|
681
|
+
sharedRoomToggle: "Link to a shared-room group",
|
|
682
|
+
sharedRoomCreateMode: "Create new group",
|
|
683
|
+
sharedRoomJoinMode: "Join existing",
|
|
684
|
+
sharedRoomSelectPlaceholder: "Select a group...",
|
|
685
|
+
sharedRoomNoGroups: "No existing groups for this product",
|
|
686
|
+
sharedRoomCreateHint: "A new group will be created with this booking as the primary member.",
|
|
687
|
+
sharedRoomGeneratedLabelPrefix: "Shared room",
|
|
688
|
+
voucherHeading: "Voucher (optional)",
|
|
689
|
+
voucherCodePlaceholder: "Enter voucher code...",
|
|
690
|
+
voucherApply: "Apply",
|
|
691
|
+
voucherClear: "Clear",
|
|
692
|
+
voucherRemainingLabel: "Remaining balance:",
|
|
693
|
+
voucherInvalidLabel: "This voucher can't be applied:",
|
|
694
|
+
paymentHeading: "Payment schedule",
|
|
695
|
+
paymentModeUnpaid: "Unpaid",
|
|
696
|
+
paymentModeFull: "Full",
|
|
697
|
+
paymentModeAdvance: "Advance",
|
|
698
|
+
paymentModeSplit: "Split",
|
|
699
|
+
paymentDueDate: "Due date",
|
|
700
|
+
paymentAmount: "Amount",
|
|
701
|
+
paymentFirstInstallment: "First installment",
|
|
702
|
+
paymentSecondInstallment: "Second installment",
|
|
703
|
+
paymentPreset5050: "50 / 50",
|
|
704
|
+
paymentUnpaidHint: "No payment schedule will be created. Operator will invoice manually.",
|
|
705
|
+
breakdownHeading: "Price breakdown",
|
|
706
|
+
breakdownTotal: "Total",
|
|
707
|
+
breakdownOnRequest: "On request",
|
|
708
|
+
breakdownGroupRate: "group rate",
|
|
709
|
+
breakdownEmpty: "Pick units above to see the breakdown.",
|
|
710
|
+
breakdownNoPricing: "No pricing catalog available for this product.",
|
|
711
|
+
},
|
|
712
|
+
},
|
|
713
|
+
bookingList: {
|
|
714
|
+
searchPlaceholder: "Search bookings...",
|
|
715
|
+
newBooking: "New booking",
|
|
716
|
+
columns: {
|
|
717
|
+
bookingNumber: "Booking #",
|
|
718
|
+
status: "Status",
|
|
719
|
+
sellAmount: "Sell amount",
|
|
720
|
+
pax: "Pax",
|
|
721
|
+
startDate: "Start date",
|
|
722
|
+
},
|
|
723
|
+
loadingError: "Failed to load bookings.",
|
|
724
|
+
empty: "No bookings found.",
|
|
725
|
+
showingSummary: "Showing {count} of {total}",
|
|
726
|
+
pageSummary: "Page {page} / {pageCount}",
|
|
727
|
+
},
|
|
728
|
+
bookingPaymentsSummary: {
|
|
729
|
+
title: "Payments",
|
|
730
|
+
empty: "No payments recorded.",
|
|
731
|
+
columns: {
|
|
732
|
+
invoice: "Invoice",
|
|
733
|
+
method: "Method",
|
|
734
|
+
status: "Status",
|
|
735
|
+
amount: "Amount",
|
|
736
|
+
date: "Date",
|
|
737
|
+
reference: "Reference",
|
|
738
|
+
},
|
|
739
|
+
paymentMethodLabels: {
|
|
740
|
+
card: "Card",
|
|
741
|
+
bank_transfer: "Bank transfer",
|
|
742
|
+
cash: "Cash",
|
|
743
|
+
voucher: "Voucher",
|
|
744
|
+
other: "Other",
|
|
745
|
+
},
|
|
746
|
+
paymentStatusLabels: {
|
|
747
|
+
pending: "Pending",
|
|
748
|
+
completed: "Completed",
|
|
749
|
+
failed: "Failed",
|
|
750
|
+
refunded: "Refunded",
|
|
751
|
+
},
|
|
752
|
+
},
|
|
753
|
+
bookingNotes: {
|
|
754
|
+
title: "Notes",
|
|
755
|
+
placeholder: "Add a note...",
|
|
756
|
+
add: "Add",
|
|
757
|
+
empty: "No notes yet.",
|
|
758
|
+
},
|
|
759
|
+
bookingActivityTimeline: {
|
|
760
|
+
title: "Activity timeline",
|
|
761
|
+
filters: {
|
|
762
|
+
all: "All",
|
|
763
|
+
activity: "Activity",
|
|
764
|
+
document: "Document",
|
|
765
|
+
payment: "Payment",
|
|
766
|
+
},
|
|
767
|
+
sourceLabels: {
|
|
768
|
+
activity: "Activity",
|
|
769
|
+
document: "Document",
|
|
770
|
+
payment: "Payment",
|
|
771
|
+
},
|
|
772
|
+
empty: "No events yet.",
|
|
773
|
+
activityTitles: {
|
|
774
|
+
booking_created: "Booking created",
|
|
775
|
+
booking_reserved: "Booking reserved",
|
|
776
|
+
booking_converted: "Booking converted",
|
|
777
|
+
booking_confirmed: "Booking confirmed",
|
|
778
|
+
hold_extended: "Hold extended",
|
|
779
|
+
hold_expired: "Hold expired",
|
|
780
|
+
status_change: "Status changed",
|
|
781
|
+
item_update: "Item updated",
|
|
782
|
+
allocation_released: "Allocation released",
|
|
783
|
+
fulfillment_issued: "Fulfillment issued",
|
|
784
|
+
fulfillment_updated: "Fulfillment updated",
|
|
785
|
+
redemption_recorded: "Voucher redeemed",
|
|
786
|
+
supplier_update: "Supplier updated",
|
|
787
|
+
passenger_update: "Passenger updated",
|
|
788
|
+
note_added: "Note added",
|
|
789
|
+
},
|
|
790
|
+
documentUploadedSuffix: "uploaded",
|
|
791
|
+
viewFile: "View file",
|
|
792
|
+
byActor: "By {actor} - {timestamp}",
|
|
793
|
+
paymentTitle: "Payment {status} - {amount}",
|
|
794
|
+
paymentDescription: "Invoice {invoice} - {method}",
|
|
795
|
+
},
|
|
796
|
+
};
|