@voyantjs/distribution-ui 0.30.6 → 0.31.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.
Files changed (53) hide show
  1. package/README.md +9 -1
  2. package/dist/components/booking-link-detail-page.d.ts +10 -0
  3. package/dist/components/booking-link-detail-page.d.ts.map +1 -0
  4. package/dist/components/booking-link-detail-page.js +51 -0
  5. package/dist/components/channel-detail-page.d.ts +12 -0
  6. package/dist/components/channel-detail-page.d.ts.map +1 -0
  7. package/dist/components/channel-detail-page.js +41 -0
  8. package/dist/components/channel-sync-page.d.ts +8 -0
  9. package/dist/components/channel-sync-page.d.ts.map +1 -0
  10. package/dist/components/channel-sync-page.js +242 -0
  11. package/dist/components/channels-page.d.ts +6 -0
  12. package/dist/components/channels-page.d.ts.map +1 -0
  13. package/dist/components/channels-page.js +132 -0
  14. package/dist/components/commission-rule-detail-page.d.ts +10 -0
  15. package/dist/components/commission-rule-detail-page.d.ts.map +1 -0
  16. package/dist/components/commission-rule-detail-page.js +57 -0
  17. package/dist/components/contract-detail-page.d.ts +10 -0
  18. package/dist/components/contract-detail-page.d.ts.map +1 -0
  19. package/dist/components/contract-detail-page.js +64 -0
  20. package/dist/components/distribution-page.d.ts +26 -0
  21. package/dist/components/distribution-page.d.ts.map +1 -0
  22. package/dist/components/distribution-page.js +190 -0
  23. package/dist/components/distribution-tabs-primary.d.ts +57 -0
  24. package/dist/components/distribution-tabs-primary.d.ts.map +1 -0
  25. package/dist/components/distribution-tabs-primary.js +89 -0
  26. package/dist/components/distribution-tabs-secondary.d.ts +58 -0
  27. package/dist/components/distribution-tabs-secondary.d.ts.map +1 -0
  28. package/dist/components/distribution-tabs-secondary.js +89 -0
  29. package/dist/components/mapping-detail-page.d.ts +10 -0
  30. package/dist/components/mapping-detail-page.d.ts.map +1 -0
  31. package/dist/components/mapping-detail-page.js +51 -0
  32. package/dist/components/webhook-event-detail-page.d.ts +9 -0
  33. package/dist/components/webhook-event-detail-page.d.ts.map +1 -0
  34. package/dist/components/webhook-event-detail-page.js +46 -0
  35. package/dist/i18n/en.d.ts +381 -0
  36. package/dist/i18n/en.d.ts.map +1 -1
  37. package/dist/i18n/en.js +363 -0
  38. package/dist/i18n/index.d.ts +1 -1
  39. package/dist/i18n/index.d.ts.map +1 -1
  40. package/dist/i18n/messages.d.ts +244 -0
  41. package/dist/i18n/messages.d.ts.map +1 -1
  42. package/dist/i18n/provider.d.ts +762 -0
  43. package/dist/i18n/provider.d.ts.map +1 -1
  44. package/dist/i18n/ro.d.ts +381 -0
  45. package/dist/i18n/ro.d.ts.map +1 -1
  46. package/dist/i18n/ro.js +363 -0
  47. package/dist/i18n/utils.d.ts +4 -0
  48. package/dist/i18n/utils.d.ts.map +1 -0
  49. package/dist/i18n/utils.js +8 -0
  50. package/dist/index.d.ts +12 -1
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +11 -0
  53. package/package.json +7 -7
package/dist/i18n/en.js CHANGED
@@ -2,15 +2,50 @@ export const distributionUiEn = {
2
2
  common: {
3
3
  open: "Open",
4
4
  view: "View",
5
+ cancel: "Cancel",
6
+ create: "Create",
7
+ save: "Save",
8
+ delete: "Delete",
5
9
  clearFilters: "Clear Filters",
10
+ clearSelection: "Clear selection",
11
+ backToDistribution: "Back to Distribution",
12
+ loading: "Loading...",
13
+ none: "-",
14
+ openEnded: "Open-ended",
15
+ noReference: "No reference",
16
+ unmappedStatus: "Unmapped status",
17
+ yes: "Yes",
6
18
  searchPlaceholder: "Search distribution...",
7
19
  allChannels: "All channels",
8
20
  received: "Received",
9
21
  supplier: "Supplier",
22
+ channelLabel: "Channel",
23
+ contractLabel: "Contract",
24
+ productLabel: "Product",
25
+ bookingLabel: "Booking",
26
+ supplierLabel: "Supplier",
27
+ createdLabel: "Created",
28
+ updatedLabel: "Updated",
10
29
  emptyValue: "-",
11
30
  dateTimeFallback: "Not available",
12
31
  active: "Active",
13
32
  inactive: "Inactive",
33
+ selectionSummary: "{count} selected",
34
+ resultSummary: "{verb} {countLabel}.",
35
+ deleteSummary: "Deleted {countLabel}.",
36
+ entities: {
37
+ channel: { one: "channel", other: "channels" },
38
+ contract: { one: "contract", other: "contracts" },
39
+ commissionRule: { one: "commission rule", other: "commission rules" },
40
+ mapping: { one: "mapping", other: "mappings" },
41
+ bookingLink: { one: "booking link", other: "booking links" },
42
+ webhookEvent: { one: "webhook event", other: "webhook events" },
43
+ },
44
+ cancellationOwnerLabels: {
45
+ operator: "Operator",
46
+ channel: "Channel",
47
+ mixed: "Mixed",
48
+ },
14
49
  channelKindLabels: {
15
50
  direct: "Direct",
16
51
  affiliate: "Affiliate",
@@ -54,6 +89,27 @@ export const distributionUiEn = {
54
89
  ignored: "Ignored",
55
90
  },
56
91
  },
92
+ page: {
93
+ title: "Distribution",
94
+ description: "Manage sales channels, commercial contracts, external mappings, and sync events.",
95
+ tabs: {
96
+ channels: "Channels",
97
+ contracts: "Contracts",
98
+ commissions: "Commission Rules",
99
+ mappings: "Product Mappings",
100
+ bookingLinks: "Booking Links",
101
+ webhooks: "Webhook Events",
102
+ },
103
+ bulkVerbs: {
104
+ activated: "Activated",
105
+ archived: "Archived",
106
+ deleted: "Deleted",
107
+ expired: "Expired",
108
+ deactivated: "Deactivated",
109
+ processed: "Processed",
110
+ ignored: "Ignored",
111
+ },
112
+ },
57
113
  overview: {
58
114
  metrics: {
59
115
  activeChannels: {
@@ -127,4 +183,311 @@ export const distributionUiEn = {
127
183
  processed: "Processed",
128
184
  },
129
185
  },
186
+ tabs: {
187
+ channels: {
188
+ title: "Channels",
189
+ description: "Sales partners, affiliates, OTAs, marketplaces, and direct channels.",
190
+ actionLabel: "New Channel",
191
+ empty: "No channels match the current filters.",
192
+ actions: {
193
+ activate: {
194
+ button: "Activate",
195
+ confirm: "Activate Channels",
196
+ title: "Activate {countLabel}?",
197
+ description: "This enables the selected channels for live distribution again.",
198
+ },
199
+ archive: {
200
+ button: "Archive",
201
+ confirm: "Archive Channels",
202
+ title: "Archive {countLabel}?",
203
+ description: "This keeps the selected channels for history but removes them from active commercial use.",
204
+ },
205
+ delete: {
206
+ button: "Delete Selected",
207
+ confirm: "Delete Channels",
208
+ title: "Delete {countLabel}?",
209
+ description: "This permanently removes the selected channels. Use Archive if you only need to retire them from active use.",
210
+ },
211
+ },
212
+ },
213
+ contracts: {
214
+ title: "Contracts",
215
+ description: "Commercial terms per channel and supplier relationship.",
216
+ actionLabel: "New Contract",
217
+ empty: "No contracts match the current filters.",
218
+ actions: {
219
+ activate: {
220
+ button: "Activate",
221
+ confirm: "Activate Contracts",
222
+ title: "Activate {countLabel}?",
223
+ description: "This marks the selected contracts as commercially active.",
224
+ },
225
+ expire: {
226
+ button: "Expire",
227
+ confirm: "Expire Contracts",
228
+ title: "Expire {countLabel}?",
229
+ description: "This preserves the selected contracts but marks them as no longer in force.",
230
+ },
231
+ delete: {
232
+ button: "Delete Selected",
233
+ confirm: "Delete Contracts",
234
+ title: "Delete {countLabel}?",
235
+ description: "This permanently removes the selected contracts and their commercial setup.",
236
+ },
237
+ },
238
+ },
239
+ commissions: {
240
+ title: "Commission Rules",
241
+ description: "Define booking, product, rate, and category-based commission logic.",
242
+ actionLabel: "New Commission Rule",
243
+ empty: "No commission rules match the current filters.",
244
+ actions: {
245
+ delete: {
246
+ button: "Delete Selected",
247
+ confirm: "Delete Commission Rules",
248
+ title: "Delete {countLabel}?",
249
+ description: "This permanently removes the selected commission rules from channel pricing.",
250
+ },
251
+ },
252
+ },
253
+ mappings: {
254
+ title: "Product Mappings",
255
+ description: "Map Voyant products to external channel catalog identifiers.",
256
+ actionLabel: "New Mapping",
257
+ empty: "No product mappings match the current filters.",
258
+ actions: {
259
+ activate: {
260
+ button: "Activate",
261
+ confirm: "Activate Mappings",
262
+ title: "Activate {countLabel}?",
263
+ description: "This re-enables the selected external product mappings for live channel use.",
264
+ },
265
+ deactivate: {
266
+ button: "Deactivate",
267
+ confirm: "Deactivate Mappings",
268
+ title: "Deactivate {countLabel}?",
269
+ description: "This keeps the selected mappings for reference but removes them from active sync/distribution.",
270
+ },
271
+ delete: {
272
+ button: "Delete Selected",
273
+ confirm: "Delete Mappings",
274
+ title: "Delete {countLabel}?",
275
+ description: "This permanently removes the selected external product mappings.",
276
+ },
277
+ },
278
+ },
279
+ bookingLinks: {
280
+ title: "Booking Links",
281
+ description: "Track external booking IDs and sync state for channel-originated bookings.",
282
+ actionLabel: "New Booking Link",
283
+ empty: "No booking links match the current filters.",
284
+ actions: {
285
+ delete: {
286
+ button: "Delete Selected",
287
+ confirm: "Delete Booking Links",
288
+ title: "Delete {countLabel}?",
289
+ description: "This permanently removes the selected external booking references and sync links.",
290
+ },
291
+ },
292
+ },
293
+ webhooks: {
294
+ title: "Webhook Events",
295
+ description: "Inspect ingested partner events and replay/problem cases.",
296
+ actionLabel: "New Webhook Event",
297
+ empty: "No webhook events match the current filters.",
298
+ actions: {
299
+ markProcessed: {
300
+ button: "Mark Processed",
301
+ confirm: "Mark Processed",
302
+ title: "Mark {countLabel} as processed?",
303
+ description: "This marks the selected events as processed and removes them from the active sync queue.",
304
+ },
305
+ ignore: {
306
+ button: "Ignore",
307
+ confirm: "Ignore Events",
308
+ title: "Ignore {countLabel}?",
309
+ description: "This keeps the selected events in history but marks them as intentionally ignored.",
310
+ },
311
+ delete: {
312
+ button: "Delete Selected",
313
+ confirm: "Delete Events",
314
+ title: "Delete {countLabel}?",
315
+ description: "This permanently removes the selected webhook events from the event log.",
316
+ },
317
+ },
318
+ },
319
+ },
320
+ settings: {
321
+ channelsPage: {
322
+ title: "Channels",
323
+ description: "Define where your products are sold: direct, OTA, reseller, and marketplace channels.",
324
+ addChannel: "Add Channel",
325
+ empty: "No channels yet. Create channels like Website, Mobile App, or Viator to control where products are sold.",
326
+ edit: "Edit",
327
+ delete: "Delete",
328
+ deleteConfirm: "Delete this channel?",
329
+ deleteDescription: "Products assigned to this channel will be unlinked.",
330
+ editSheetTitle: "Edit Channel",
331
+ newSheetTitle: "New Channel",
332
+ nameLabel: "Name",
333
+ namePlaceholder: "Website",
334
+ kindLabel: "Kind",
335
+ statusLabel: "Status",
336
+ websiteLabel: "Website",
337
+ websitePlaceholder: "https://partner.example.com",
338
+ primaryContactLabel: "Primary Contact",
339
+ primaryContactPlaceholder: "Jane Doe",
340
+ contactEmailLabel: "Contact Email",
341
+ contactEmailPlaceholder: "partner@example.com",
342
+ saveChanges: "Save Changes",
343
+ createChannel: "Create Channel",
344
+ validationNameRequired: "Name is required",
345
+ validationInvalidUrl: "Must be a valid URL",
346
+ validationInvalidEmail: "Must be a valid email",
347
+ paginationShowing: "Showing {count} of {total}",
348
+ paginationPage: "Page {page} / {pageCount}",
349
+ paginationPrevious: "Previous",
350
+ paginationNext: "Next",
351
+ },
352
+ },
353
+ details: {
354
+ channel: {
355
+ notFound: "Channel not found",
356
+ title: "Channel Details",
357
+ deleteConfirm: "Delete this channel?",
358
+ deleteDescription: "This permanently removes the channel and its distribution configuration.",
359
+ deleteButton: "Delete",
360
+ sections: {
361
+ details: "Channel Details",
362
+ metadata: "Metadata",
363
+ contracts: "Contracts",
364
+ mappings: "Product Mappings",
365
+ bookingLinks: "Booking Links",
366
+ webhooks: "Webhook Events",
367
+ },
368
+ labels: {
369
+ website: "Website",
370
+ contactName: "Contact Name",
371
+ contactEmail: "Contact Email",
372
+ supplier: "Supplier",
373
+ payment: "Payment",
374
+ cancellation: "Cancellation",
375
+ externalProduct: "External Product",
376
+ externalBooking: "External Booking",
377
+ reference: "Reference",
378
+ lastSynced: "Last Synced",
379
+ rate: "Rate",
380
+ category: "Category",
381
+ booking: "Booking",
382
+ },
383
+ empty: {
384
+ metadata: "No metadata set.",
385
+ contracts: "No contracts for this channel.",
386
+ mappings: "No product mappings for this channel.",
387
+ bookingLinks: "No booking links for this channel.",
388
+ webhooks: "No webhook events for this channel.",
389
+ },
390
+ },
391
+ contract: {
392
+ notFound: "Contract not found",
393
+ title: "Channel Contract",
394
+ deleteConfirm: "Delete this contract?",
395
+ deleteDescription: "This permanently removes the contract and its commercial distribution setup.",
396
+ deleteButton: "Delete",
397
+ openChannel: "Open Channel",
398
+ sections: {
399
+ details: "Contract Details",
400
+ notes: "Commercial Notes",
401
+ commissionRules: "Commission Rules",
402
+ },
403
+ labels: {
404
+ supplier: "Supplier",
405
+ endsAt: "Ends At",
406
+ paymentOwner: "Payment Owner",
407
+ cancellationOwner: "Cancellation Owner",
408
+ settlementTerms: "Settlement Terms",
409
+ notes: "Notes",
410
+ amount: "Amount",
411
+ basisPoints: "Basis Points",
412
+ rate: "Rate",
413
+ category: "Category",
414
+ valid: "Valid",
415
+ },
416
+ empty: {
417
+ commissionRules: "No commission rules on this contract.",
418
+ },
419
+ },
420
+ commissionRule: {
421
+ notFound: "Commission rule not found",
422
+ title: "Commission Rule",
423
+ deleteConfirm: "Delete this commission rule?",
424
+ deleteDescription: "This permanently removes the commission rule from channel pricing.",
425
+ deleteButton: "Delete",
426
+ openContract: "Open Contract",
427
+ openProduct: "Open Product",
428
+ sections: {
429
+ details: "Rule Details",
430
+ },
431
+ labels: {
432
+ amount: "Amount",
433
+ basisPoints: "Basis Points",
434
+ externalRate: "External Rate",
435
+ externalCategory: "External Category",
436
+ valid: "Valid",
437
+ },
438
+ },
439
+ bookingLink: {
440
+ notFound: "Booking link not found",
441
+ title: "Booking Link",
442
+ deleteConfirm: "Delete this booking link?",
443
+ deleteDescription: "This permanently removes the external booking reference and sync link.",
444
+ deleteButton: "Delete",
445
+ openChannel: "Open Channel",
446
+ openBooking: "Open Booking",
447
+ sections: {
448
+ details: "Booking Link Details",
449
+ },
450
+ labels: {
451
+ externalBooking: "External Booking",
452
+ reference: "Reference",
453
+ bookedAtExternal: "Booked Externally",
454
+ lastSynced: "Last Synced",
455
+ },
456
+ },
457
+ webhookEvent: {
458
+ notFound: "Webhook event not found",
459
+ title: "Webhook Event",
460
+ deleteConfirm: "Delete this webhook event?",
461
+ deleteDescription: "This permanently removes the webhook event from the event log.",
462
+ deleteButton: "Delete",
463
+ openChannel: "Open Channel",
464
+ sections: {
465
+ details: "Event Details",
466
+ payload: "Payload",
467
+ },
468
+ labels: {
469
+ externalEvent: "External Event",
470
+ received: "Received",
471
+ processed: "Processed",
472
+ error: "Error",
473
+ },
474
+ },
475
+ mapping: {
476
+ notFound: "Product mapping not found",
477
+ title: "Product Mapping",
478
+ deleteConfirm: "Delete this product mapping?",
479
+ deleteDescription: "This permanently removes the external product mapping from channel distribution.",
480
+ deleteButton: "Delete",
481
+ openChannel: "Open Channel",
482
+ openProduct: "Open Product",
483
+ sections: {
484
+ details: "Mapping Details",
485
+ },
486
+ labels: {
487
+ externalProduct: "External Product",
488
+ externalRate: "External Rate",
489
+ externalCategory: "External Category",
490
+ },
491
+ },
492
+ },
130
493
  };
@@ -1,5 +1,5 @@
1
1
  export { distributionUiEn } from "./en.js";
2
- export type { ChannelKind, ChannelStatus, CommissionScope, CommissionType, ContractStatus, DistributionUiMessages, PaymentOwner, WebhookStatus, } from "./messages.js";
2
+ export type { CancellationOwner, ChannelKind, ChannelStatus, CommissionScope, CommissionType, ContractStatus, DistributionEntity, DistributionUiMessages, PaymentOwner, WebhookStatus, } from "./messages.js";
3
3
  export { type DistributionUiI18n, type DistributionUiMessageOverrides, DistributionUiMessagesProvider, distributionUiMessageDefinitions, getDistributionUiI18n, resolveDistributionUiMessages, useDistributionUiI18n, useDistributionUiI18nOrDefault, useDistributionUiMessages, useDistributionUiMessagesOrDefault, } from "./provider.js";
4
4
  export { distributionUiRo } from "./ro.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,YAAY,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,8BAA8B,EAC9B,gCAAgC,EAChC,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,8BAA8B,EAC9B,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACnC,8BAA8B,EAC9B,gCAAgC,EAChC,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,8BAA8B,EAC9B,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA"}
@@ -3,22 +3,51 @@ export type ChannelKind = ChannelRow["kind"];
3
3
  export type ChannelStatus = ChannelRow["status"];
4
4
  export type ContractStatus = ChannelContractRow["status"];
5
5
  export type PaymentOwner = ChannelContractRow["paymentOwner"];
6
+ export type CancellationOwner = ChannelContractRow["cancellationOwner"];
6
7
  export type CommissionScope = ChannelCommissionRuleRow["scope"];
7
8
  export type CommissionType = ChannelCommissionRuleRow["commissionType"];
8
9
  export type WebhookStatus = ChannelWebhookEventRow["status"];
10
+ export type DistributionEntity = "channel" | "contract" | "commissionRule" | "mapping" | "bookingLink" | "webhookEvent";
9
11
  export type DistributionUiMessages = {
10
12
  common: {
11
13
  open: string;
12
14
  view: string;
15
+ cancel: string;
16
+ create: string;
17
+ save: string;
18
+ delete: string;
13
19
  clearFilters: string;
20
+ clearSelection: string;
21
+ backToDistribution: string;
22
+ loading: string;
23
+ none: string;
24
+ openEnded: string;
25
+ noReference: string;
26
+ unmappedStatus: string;
27
+ yes: string;
14
28
  searchPlaceholder: string;
15
29
  allChannels: string;
16
30
  received: string;
17
31
  supplier: string;
32
+ channelLabel: string;
33
+ contractLabel: string;
34
+ productLabel: string;
35
+ bookingLabel: string;
36
+ supplierLabel: string;
37
+ createdLabel: string;
38
+ updatedLabel: string;
18
39
  emptyValue: string;
19
40
  dateTimeFallback: string;
20
41
  active: string;
21
42
  inactive: string;
43
+ selectionSummary: string;
44
+ resultSummary: string;
45
+ deleteSummary: string;
46
+ entities: Record<DistributionEntity, {
47
+ one: string;
48
+ other: string;
49
+ }>;
50
+ cancellationOwnerLabels: Record<CancellationOwner, string>;
22
51
  channelKindLabels: Record<ChannelKind, string>;
23
52
  channelStatusLabels: Record<ChannelStatus, string>;
24
53
  contractStatusLabels: Record<ContractStatus, string>;
@@ -27,6 +56,27 @@ export type DistributionUiMessages = {
27
56
  commissionTypeLabels: Record<CommissionType, string>;
28
57
  webhookStatusLabels: Record<WebhookStatus, string>;
29
58
  };
59
+ page: {
60
+ title: string;
61
+ description: string;
62
+ tabs: {
63
+ channels: string;
64
+ contracts: string;
65
+ commissions: string;
66
+ mappings: string;
67
+ bookingLinks: string;
68
+ webhooks: string;
69
+ };
70
+ bulkVerbs: {
71
+ activated: string;
72
+ archived: string;
73
+ deleted: string;
74
+ expired: string;
75
+ deactivated: string;
76
+ processed: string;
77
+ ignored: string;
78
+ };
79
+ };
30
80
  overview: {
31
81
  metrics: {
32
82
  activeChannels: {
@@ -100,5 +150,199 @@ export type DistributionUiMessages = {
100
150
  processed: string;
101
151
  };
102
152
  };
153
+ tabs: {
154
+ channels: DistributionBulkTabMessages<"activate" | "archive" | "delete">;
155
+ contracts: DistributionBulkTabMessages<"activate" | "expire" | "delete">;
156
+ commissions: DistributionBulkTabMessages<"delete">;
157
+ mappings: DistributionBulkTabMessages<"activate" | "deactivate" | "delete">;
158
+ bookingLinks: DistributionBulkTabMessages<"delete">;
159
+ webhooks: DistributionBulkTabMessages<"markProcessed" | "ignore" | "delete">;
160
+ };
161
+ settings: {
162
+ channelsPage: {
163
+ title: string;
164
+ description: string;
165
+ addChannel: string;
166
+ empty: string;
167
+ edit: string;
168
+ delete: string;
169
+ deleteConfirm: string;
170
+ deleteDescription: string;
171
+ editSheetTitle: string;
172
+ newSheetTitle: string;
173
+ nameLabel: string;
174
+ namePlaceholder: string;
175
+ kindLabel: string;
176
+ statusLabel: string;
177
+ websiteLabel: string;
178
+ websitePlaceholder: string;
179
+ primaryContactLabel: string;
180
+ primaryContactPlaceholder: string;
181
+ contactEmailLabel: string;
182
+ contactEmailPlaceholder: string;
183
+ saveChanges: string;
184
+ createChannel: string;
185
+ validationNameRequired: string;
186
+ validationInvalidUrl: string;
187
+ validationInvalidEmail: string;
188
+ paginationShowing: string;
189
+ paginationPage: string;
190
+ paginationPrevious: string;
191
+ paginationNext: string;
192
+ };
193
+ };
194
+ details: {
195
+ channel: {
196
+ notFound: string;
197
+ title: string;
198
+ deleteConfirm: string;
199
+ deleteDescription: string;
200
+ deleteButton: string;
201
+ sections: {
202
+ details: string;
203
+ metadata: string;
204
+ contracts: string;
205
+ mappings: string;
206
+ bookingLinks: string;
207
+ webhooks: string;
208
+ };
209
+ labels: {
210
+ website: string;
211
+ contactName: string;
212
+ contactEmail: string;
213
+ supplier: string;
214
+ payment: string;
215
+ cancellation: string;
216
+ externalProduct: string;
217
+ externalBooking: string;
218
+ reference: string;
219
+ lastSynced: string;
220
+ rate: string;
221
+ category: string;
222
+ booking: string;
223
+ };
224
+ empty: {
225
+ metadata: string;
226
+ contracts: string;
227
+ mappings: string;
228
+ bookingLinks: string;
229
+ webhooks: string;
230
+ };
231
+ };
232
+ contract: {
233
+ notFound: string;
234
+ title: string;
235
+ deleteConfirm: string;
236
+ deleteDescription: string;
237
+ deleteButton: string;
238
+ openChannel: string;
239
+ sections: {
240
+ details: string;
241
+ notes: string;
242
+ commissionRules: string;
243
+ };
244
+ labels: {
245
+ supplier: string;
246
+ endsAt: string;
247
+ paymentOwner: string;
248
+ cancellationOwner: string;
249
+ settlementTerms: string;
250
+ notes: string;
251
+ amount: string;
252
+ basisPoints: string;
253
+ rate: string;
254
+ category: string;
255
+ valid: string;
256
+ };
257
+ empty: {
258
+ commissionRules: string;
259
+ };
260
+ };
261
+ commissionRule: {
262
+ notFound: string;
263
+ title: string;
264
+ deleteConfirm: string;
265
+ deleteDescription: string;
266
+ deleteButton: string;
267
+ openContract: string;
268
+ openProduct: string;
269
+ sections: {
270
+ details: string;
271
+ };
272
+ labels: {
273
+ amount: string;
274
+ basisPoints: string;
275
+ externalRate: string;
276
+ externalCategory: string;
277
+ valid: string;
278
+ };
279
+ };
280
+ bookingLink: {
281
+ notFound: string;
282
+ title: string;
283
+ deleteConfirm: string;
284
+ deleteDescription: string;
285
+ deleteButton: string;
286
+ openChannel: string;
287
+ openBooking: string;
288
+ sections: {
289
+ details: string;
290
+ };
291
+ labels: {
292
+ externalBooking: string;
293
+ reference: string;
294
+ bookedAtExternal: string;
295
+ lastSynced: string;
296
+ };
297
+ };
298
+ webhookEvent: {
299
+ notFound: string;
300
+ title: string;
301
+ deleteConfirm: string;
302
+ deleteDescription: string;
303
+ deleteButton: string;
304
+ openChannel: string;
305
+ sections: {
306
+ details: string;
307
+ payload: string;
308
+ };
309
+ labels: {
310
+ externalEvent: string;
311
+ received: string;
312
+ processed: string;
313
+ error: string;
314
+ };
315
+ };
316
+ mapping: {
317
+ notFound: string;
318
+ title: string;
319
+ deleteConfirm: string;
320
+ deleteDescription: string;
321
+ deleteButton: string;
322
+ openChannel: string;
323
+ openProduct: string;
324
+ sections: {
325
+ details: string;
326
+ };
327
+ labels: {
328
+ externalProduct: string;
329
+ externalRate: string;
330
+ externalCategory: string;
331
+ };
332
+ };
333
+ };
334
+ };
335
+ type DistributionBulkTabMessages<TAction extends string> = {
336
+ title: string;
337
+ description: string;
338
+ actionLabel: string;
339
+ empty: string;
340
+ actions: Record<TAction, {
341
+ button: string;
342
+ confirm: string;
343
+ title: string;
344
+ description: string;
345
+ }>;
103
346
  };
347
+ export {};
104
348
  //# sourceMappingURL=messages.d.ts.map