@mrfylke/contact-form 0.1.32 → 0.1.34

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 (124) hide show
  1. package/README.md +0 -22
  2. package/lib/commoneEvents.d.ts +1 -1
  3. package/lib/commoneEvents.d.ts.map +1 -1
  4. package/lib/components/form/date-selector.d.ts +4 -1
  5. package/lib/components/form/date-selector.d.ts.map +1 -1
  6. package/lib/components/form/date-selector.js +2 -2
  7. package/lib/components/form/file-input.js +1 -1
  8. package/lib/components/form/form.module.css +0 -74
  9. package/lib/components/form/input.d.ts +2 -6
  10. package/lib/components/form/input.d.ts.map +1 -1
  11. package/lib/components/form/input.js +7 -22
  12. package/lib/components/form/textarea.d.ts +3 -2
  13. package/lib/components/form/textarea.d.ts.map +1 -1
  14. package/lib/components/form/textarea.js +6 -4
  15. package/lib/components/form/time-selector.d.ts.map +1 -1
  16. package/lib/components/form/time-selector.js +1 -1
  17. package/lib/index.d.ts +1 -1
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/journey-info/journeyInfoStateMachine.d.ts +2 -2
  20. package/lib/layouts/contact-pages.d.ts.map +1 -1
  21. package/lib/layouts/contact-pages.js +7 -2
  22. package/lib/lines/use-lines.d.ts +1 -0
  23. package/lib/lines/use-lines.d.ts.map +1 -1
  24. package/lib/lines/use-lines.js +1 -0
  25. package/lib/lost-property/LostPropertyForm.d.ts +6 -0
  26. package/lib/lost-property/LostPropertyForm.d.ts.map +1 -1
  27. package/lib/lost-property/LostPropertyForm.js +54 -12
  28. package/lib/lost-property/LostPropertyMachine.d.ts +5 -4
  29. package/lib/lost-property/LostPropertyMachine.d.ts.map +1 -1
  30. package/lib/lost-property/LostPropertyMachine.js +5 -1
  31. package/lib/lost-property/index.d.ts.map +1 -1
  32. package/lib/lost-property/index.js +40 -3
  33. package/lib/means-of-transport/forms/injuryForm.d.ts.map +1 -1
  34. package/lib/means-of-transport/forms/injuryForm.js +1 -1
  35. package/lib/means-of-transport/means-of-transport-form-machine.d.ts +2 -2
  36. package/lib/modules/api-browser/index.d.ts +1 -1
  37. package/lib/modules/api-browser/index.d.ts.map +1 -1
  38. package/lib/modules/api-browser/index.js +5 -1
  39. package/lib/modules/config/context.d.ts.map +1 -1
  40. package/lib/modules/config/context.js +1 -4
  41. package/lib/modules/config/theme-adapter.d.ts.map +1 -1
  42. package/lib/modules/config/theme-adapter.js +2 -0
  43. package/lib/modules/config/types.d.ts +53 -8
  44. package/lib/modules/config/types.d.ts.map +1 -1
  45. package/lib/modules/transport-mode/utils.d.ts +2 -2
  46. package/lib/modules/transport-mode/utils.d.ts.map +1 -1
  47. package/lib/refund/events.d.ts +3 -3
  48. package/lib/refund/events.d.ts.map +1 -1
  49. package/lib/refund/forms/refund-and-travel-guarantee/index.d.ts.map +1 -1
  50. package/lib/refund/forms/refund-and-travel-guarantee/index.js +10 -3
  51. package/lib/refund/forms/refund-and-travel-guarantee/pre-purchased-ticket-refund-form/index.d.ts +11 -0
  52. package/lib/refund/forms/refund-and-travel-guarantee/pre-purchased-ticket-refund-form/index.d.ts.map +1 -0
  53. package/lib/refund/forms/refund-and-travel-guarantee/pre-purchased-ticket-refund-form/index.js +159 -0
  54. package/lib/refund/forms/refund-and-travel-guarantee/pre-purchased-ticket-refund-form/pre-purchased-ticket-refund-form.module.css +73 -0
  55. package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.d.ts.map +1 -1
  56. package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.js +2 -2
  57. package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.d.ts.map +1 -1
  58. package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.js +2 -2
  59. package/lib/refund/forms/refund-ticket/appTicketRefund.d.ts.map +1 -1
  60. package/lib/refund/forms/refund-ticket/appTicketRefund.js +13 -15
  61. package/lib/refund/forms/refund-ticket/otherTicketRefund.d.ts.map +1 -1
  62. package/lib/refund/forms/refund-ticket/otherTicketRefund.js +16 -13
  63. package/lib/refund/index.d.ts.map +1 -1
  64. package/lib/refund/index.js +6 -4
  65. package/lib/refund/refundFormMachine.d.ts +49 -13
  66. package/lib/refund/refundFormMachine.d.ts.map +1 -1
  67. package/lib/refund/refundFormMachine.js +75 -9
  68. package/lib/server/journey-planner/entur-client.d.ts +2 -1
  69. package/lib/server/journey-planner/entur-client.d.ts.map +1 -1
  70. package/lib/ticket-control/forms/feeComplaintForm.js +4 -10
  71. package/lib/ticket-control/forms/postponePayment.d.ts.map +1 -1
  72. package/lib/ticket-control/forms/postponePayment.js +2 -6
  73. package/lib/ticket-control/ticket-control-form-machine.d.ts +2 -2
  74. package/lib/ticketing/forms/app/appAccountForm.d.ts.map +1 -1
  75. package/lib/ticketing/forms/app/appAccountForm.js +1 -3
  76. package/lib/ticketing/forms/app/appTicketingForm.d.ts.map +1 -1
  77. package/lib/ticketing/forms/app/appTicketingForm.js +2 -8
  78. package/lib/ticketing/forms/app/appTravelSuggestionForm.d.ts.map +1 -1
  79. package/lib/ticketing/forms/app/appTravelSuggestionForm.js +5 -1
  80. package/lib/ticketing/forms/priceAndTicketTypesForm.d.ts.map +1 -1
  81. package/lib/ticketing/forms/priceAndTicketTypesForm.js +5 -1
  82. package/lib/ticketing/forms/travel-card/travelCardQuestionForm.d.ts.map +1 -1
  83. package/lib/ticketing/forms/travel-card/travelCardQuestionForm.js +5 -8
  84. package/lib/ticketing/forms/webshop/webshopAccountForm.d.ts.map +1 -1
  85. package/lib/ticketing/forms/webshop/webshopAccountForm.js +1 -3
  86. package/lib/ticketing/forms/webshop/webshopTicketingForm.d.ts.map +1 -1
  87. package/lib/ticketing/forms/webshop/webshopTicketingForm.js +2 -7
  88. package/lib/ticketing/index.d.ts.map +1 -1
  89. package/lib/ticketing/index.js +8 -2
  90. package/lib/ticketing/ticketingStateMachine.d.ts +4 -2
  91. package/lib/ticketing/ticketingStateMachine.d.ts.map +1 -1
  92. package/lib/ticketing/ticketingStateMachine.js +4 -1
  93. package/lib/translations/commons.d.ts +1 -1
  94. package/lib/translations/commons.d.ts.map +1 -1
  95. package/lib/translations/commons.js +3 -1
  96. package/lib/translations/language-context.d.ts +2 -2
  97. package/lib/translations/language-context.d.ts.map +1 -1
  98. package/lib/translations/language-context.js +1 -1
  99. package/lib/translations/pages/contact.d.ts +46 -18
  100. package/lib/translations/pages/contact.d.ts.map +1 -1
  101. package/lib/translations/pages/contact.js +53 -26
  102. package/lib/translations/translations-context.d.ts +11 -4
  103. package/lib/translations/translations-context.d.ts.map +1 -1
  104. package/lib/translations/translations-context.js +18 -11
  105. package/lib/translations/types.d.ts +10 -5
  106. package/lib/translations/types.d.ts.map +1 -1
  107. package/lib/types/submit-payloads.d.ts +12 -0
  108. package/lib/types/submit-payloads.d.ts.map +1 -1
  109. package/lib/types.d.ts +1 -1
  110. package/lib/types.d.ts.map +1 -1
  111. package/lib/utils/rich-text.d.ts +2 -2
  112. package/lib/utils/rich-text.js +8 -3
  113. package/lib/utils.d.ts +56 -3
  114. package/lib/utils.d.ts.map +1 -1
  115. package/lib/validation/commonInputValidator.d.ts +1 -1
  116. package/lib/validation/commonInputValidator.d.ts.map +1 -1
  117. package/lib/validation/commonInputValidator.js +3 -3
  118. package/lib/validation/validationRules.d.ts +2 -0
  119. package/lib/validation/validationRules.d.ts.map +1 -1
  120. package/lib/validation/validationRules.js +28 -2
  121. package/package.json +12 -6
  122. package/lib/components/form/description-modal.d.ts +0 -13
  123. package/lib/components/form/description-modal.d.ts.map +0 -1
  124. package/lib/components/form/description-modal.js +0 -44
@@ -70,6 +70,9 @@ exports.Contact = {
70
70
  refundCar: {
71
71
  label: (0, commons_1.translation)('Jeg ønsker refusjon for bil', 'I would like refund for car', 'Eg ønsker refusjon for bil'),
72
72
  },
73
+ prePurchasedTicketRefund: {
74
+ label: (0, commons_1.translation)('Jeg ønsker refusjon av forhåndskjøpt hurtigbåtbillett', 'I would like a refund of a prepaid express boat ticket', 'Eg ønsker refusjon av forhåndskjøpt hurtigbåtbillett'),
75
+ },
73
76
  feedbackAttachmentLabel: (0, commons_1.translation)('Last opp vedlegg', 'Upload attachments', 'Last opp vedlegg'),
74
77
  },
75
78
  ticketBoughtOnBus: {
@@ -100,15 +103,15 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
100
103
  label: (0, commons_1.translation)('I hvilke tilfeller gjelder ikke reisegarantien?', 'In which cases does the travel guarentee not apply?', 'I kva tilfelle gjeld ikkje reisegarantien?'),
101
104
  exceptions: [
102
105
  {
103
- text: (0, commons_1.translation)('Reisegarantien gjelder ikke for fergene. Reisegarantien gjelder heller ikke for flybussen i Ålesund eller andre kommersielle busslinjer.', 'The travel guarantee does not apply to the ferries. The travel guarantee also does not apply to the airport bus in Ålesund or other commercial bus lines.', 'Reisegarantien gjeld ikkje for ferjene. Reisegarantien gjeld heller ikkje for flybussen i Ålesund eller andre kommersielle busslinjer.'),
106
+ text: (0, commons_1.richTranslation)('Reisegarantien gjelder ikke for fergene. Reisegarantien gjelder heller ikke for flybussen i Ålesund eller andre kommersielle busslinjer.', 'The travel guarantee does not apply to the ferries. The travel guarantee also does not apply to the airport bus in Ålesund or other commercial bus lines.', 'Reisegarantien gjeld ikkje for ferjene. Reisegarantien gjeld heller ikkje for flybussen i Ålesund eller andre kommersielle busslinjer.'),
104
107
  examples: [],
105
108
  },
106
109
  {
107
- text: (0, commons_1.translation)('Reisegarantien gjelder ikke dersom det er 20 minutter eller mindre til neste avgang i henhold til rutetabellen.', 'The travel guarantee does not apply if there are 20 minutes or less until the next departure according to the timetable.', 'Reisegarantien gjeld ikkje dersom det er 20 minutt eller mindre til neste avgang i følgje rutetabellen.'),
110
+ text: (0, commons_1.richTranslation)('Reisegarantien gjelder ikke dersom det er 20 minutter eller mindre til neste avgang i henhold til rutetabellen.', 'The travel guarantee does not apply if there are 20 minutes or less until the next departure according to the timetable.', 'Reisegarantien gjeld ikkje dersom det er 20 minutt eller mindre til neste avgang i følgje rutetabellen.'),
108
111
  examples: [],
109
112
  },
110
113
  {
111
- text: (0, commons_1.translation)('Reisegarantien gjelder heller ikke hvis forsinkelsen eller innstillingen skyldes forhold utenfor kontrollen til operatøren. Dette inkluderer situasjoner som (for eksempel):', 'The travel guarantee also does not apply if the delay or cancellation is due to circumstances beyond the control of the operator. These are cases such as (for example):', 'Reisegarantien gjeld heller ikkje dersom forseinkinga eller innstillinga skjer på grunn av forhold utanfor kontrollen til operatøren. Dette er tilfelle som (for eksempel):'),
114
+ text: (0, commons_1.richTranslation)('Reisegarantien gjelder heller ikke hvis forsinkelsen eller innstillingen skyldes forhold utenfor kontrollen til operatøren. Dette inkluderer situasjoner som (for eksempel):', 'The travel guarantee also does not apply if the delay or cancellation is due to circumstances beyond the control of the operator. These are cases such as (for example):', 'Reisegarantien gjeld heller ikkje dersom forseinkinga eller innstillinga skjer på grunn av forhold utanfor kontrollen til operatøren. Dette er tilfelle som (for eksempel):'),
112
115
  examples: [
113
116
  (0, commons_1.translation)('offentlige påbud og forbud', 'public orders and prohibitions', 'offentlege påbod og forbod'),
114
117
  (0, commons_1.translation)('streik og lignende', 'strikes and similar situations', 'streik og liknande'),
@@ -129,7 +132,6 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
129
132
  },
130
133
  },
131
134
  refundTaxi: {
132
- description: (0, commons_1.translation)('Jeg ønsker refusjon for drosje', 'I would like refund for taxi', 'Eg ønsker refusjon for drosje'),
133
135
  taxiReceipt: {
134
136
  title: (0, commons_1.translation)('Informasjon fra drosjekvitteringen', 'Information from the taxi receipt', 'Informasjon frå drosjekvitteringa'),
135
137
  info: (0, commons_1.translation)('Last opp en kopi eller et bilde av kvitteringen fra drosjeturen. Kvitteringen må inneholde informasjon om hvor du reiste fra og til.', 'Upload a copy or a photo of the receipt from the taxi ride. The receipt must contain information about where you traveled from and to.', 'Last opp ein kopi eller eit bilde av kvitteringa frå drosjeturen. Kvitteringa må innehalde informasjon om kor du reiste frå og til.'),
@@ -139,6 +141,11 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
139
141
  title: (0, commons_1.translation)('Om den planlagte reisen din', 'About your planned trip', 'Om den planlagde reisa di'),
140
142
  },
141
143
  },
144
+ otherTicketRefund: {
145
+ receipt: {
146
+ info: (0, commons_1.translation)('Last opp en kopi eller et bilde av kvitteringen fra billettkjøpet. Kvittering/billett må inneholde produkt kjøpt, dato og salgsreferanse.', 'Upload a copy or a photo of the receipt from the ticket purchase. The receipt/ticket must include the product purchased, the date and the sales reference.', 'Last opp ein kopi eller eit bilete av kvitteringa frå billettkjøpet. Kvittering/billett må innehalde produkt kjøpt, dato og salsreferanse.'),
147
+ },
148
+ },
142
149
  refundCar: {
143
150
  description: (0, commons_1.translation)('Jeg ønsker refusjon for bruk av bil', 'I would like refund for the use of a car', 'Eg ønsker refusjon for bruk av en bil'),
144
151
  info: (0, commons_1.translation)('Hvis du ikke kommer frem med et annet rutetilbud, refunderer vi dokumenterte utgifter for bruk av bil. Vi betaler kilometergodtgjørelse etter statens satser. Refusjonen dekker ikke bompenger, parkering eller andre utgifter knyttet til leiebil/delebil.', 'If you are unable to reach your destination by an alternative service, we will refund documented expenses for the use of a car. We pay compensation per kilometer according to government rates. The refund does not cover tolls, parking, or other expenses related to rental cars/sharing cars', 'Viss du ikkje kjem fram med eit anna rutetilbod, refunderer vi dokumenterte utlegg for bruk av bil. Vi betalar kilometergodtgjersle etter statens satsar. Refusjonen dekker ikkje bompengar, parkering eller andre utgifter knytt til leigebil/delebil.'),
@@ -149,6 +156,30 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
149
156
  title: (0, commons_1.translation)('Om den planlagte reisen din', 'About your planned trip', 'Om den planagde reisa di'),
150
157
  },
151
158
  },
159
+ prePurchasedTicketRefund: {
160
+ info: (0, commons_1.translation)('Gjelder kun hurtigbåt. Har du periodebillett og har kommet forsinket frem fire eller flere ganger i løpet av én måned, kan du søke om delvis refusjon av billetten. Kun kompensasjon over 50 kroner blir utbetalt.', 'Applies to express boat only. If you have a period ticket and have arrived late four or more times within one month, you can apply for a partial refund of the ticket. Only compensation above NOK 50 is paid out.', 'Gjeld berre hurtigbåt. Har du periodebillett og har kome forseinka fram fire eller fleire gonger i løpet av éin månad, kan du søkje om delvis refusjon av billetten. Berre kompensasjon over 50 kroner blir utbetalt.'),
161
+ aboutYourTicket: {
162
+ title: (0, commons_1.translation)('Om billetten', 'About the ticket', 'Om billetten'),
163
+ },
164
+ delayedDepartures: {
165
+ title: (0, commons_1.translation)('Forsinkede avganger', 'Delayed departures', 'Forseinka avgangar'),
166
+ info: (0, commons_1.translation)('Legg til minst fire avganger der du kom forsinket frem. Alle avgangene må være innenfor én måned.', 'Add at least four departures where you arrived late. All departures must be within one month.', 'Legg til minst fire avgangar der du kom forseinka fram. Alle avgangane må vere innanfor éin månad.'),
167
+ add: (0, commons_1.translation)('Legg til avgang', 'Add departure', 'Legg til avgang'),
168
+ remove: (0, commons_1.translation)('Fjern avgang', 'Remove departure', 'Fjern avgang'),
169
+ removeLabel: (0, commons_1.translation)('Fjern', 'Remove', 'Fjern'),
170
+ columns: {
171
+ line: (0, commons_1.translation)('Linje', 'Line', 'Linje'),
172
+ date: (0, commons_1.translation)('Dato', 'Date', 'Dato'),
173
+ time: (0, commons_1.translation)('Avgang', 'Departure', 'Avgang'),
174
+ fromStop: (0, commons_1.translation)('Fra', 'From', 'Frå'),
175
+ toStop: (0, commons_1.translation)('Til', 'To', 'Til'),
176
+ },
177
+ errorMessages: {
178
+ tooFew: (0, commons_1.translation)('Du må legge til minst fire forsinkede avganger', 'You must add at least four delayed departures', 'Du må leggje til minst fire forseinka avgangar'),
179
+ notWithinOneMonth: (0, commons_1.translation)('Alle avgangene må være innenfor én måned', 'All departures must be within one month', 'Alle avgangane må vere innanfor éin månad'),
180
+ },
181
+ },
182
+ },
152
183
  refundOtherPublicTransport: {
153
184
  description: (0, commons_1.translation)('Jeg ønsker refusjon for annen kollektivtransport', 'I would like a refund for other public transport', 'Eg ønsker refusjon for annan kollektivtransport'),
154
185
  },
@@ -198,6 +229,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
198
229
  injury: {
199
230
  description: (0, commons_1.translation)('Melde fra om personskade eller ulykke', 'Report of personal injury or accident', 'Melde frå om personskade eller ulykke'),
200
231
  info: (0, commons_1.translation)('Skadet du deg selv eller noe du eier om bord eller på stoppestedet/kai? Gi tilbakemelding her, så hjelper vi deg.', 'Did you injure yourself or something you own on board or at the stop/dock? Give feedback here, and we will help you.', 'Skada du deg sjølv eller noko du eig om bord eller på haldeplass/kai? Gje tilbakemelding her, så hjelper vi deg.'),
232
+ feedbackDescription: (0, commons_1.translation)('Unngå å oppgi personlig informasjon som bankkortnummer eller helseopplysninger. Vi vil spørre deg senere om det er nødvendig.', 'Avoid providing personal information such as bank card numbers or health information. We will ask you later if it is necessary.', 'Unngå å oppgi personopplysningar som bankkortnummer eller helseopplysningar. Vi spør deg seinare viss det er nødvendig.'),
201
233
  about: {
202
234
  title: (0, commons_1.translation)('Om reisen', 'About the trip', 'Om reisa'),
203
235
  description: (0, commons_1.translation)('Vi trenger å vite litt om reisen din. Da er det lettere for oss å følge opp saken.', 'We need to know a bit about your trip. Then it is easier for us to follow up on the case.', 'Vi treng å vite litt om reisa di. Då er det enklare for oss å følgje opp saka.'),
@@ -251,9 +283,9 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
251
283
  orderTravelCard: {
252
284
  label: (0, commons_1.translation)(`Bestill ${terms_1.T.travelCard.base}`, `Order ${terms_1.T.travelCard.base}`, `Bestill ${terms_1.T.travelCard.base}`),
253
285
  detailsList: [
254
- (0, commons_1.translation)(`${terms_1.T.travelCard.Indefinite} er et fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebilletter.`, `${terms_1.T.travelCard.Indefinite} is a physical plastic card. You can add period tickets to ${terms_1.T.travelCard.definite}`, `${terms_1.T.travelCard.Indefinite} er eit fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebillettar.`),
255
- (0, commons_1.translation)(`${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`, `${terms_1.T.travelCard.Base} is available from the bus driver, or the sailor on board the express boat.`, `${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`),
256
- (0, commons_1.translation)('Du trenger ikke kjøpe produktet hos sjåfør. Du kan ta med deg et kort og fylle på det produktet du vil i nettbutikken', 'You don’t need to purchase the product from the driver. You can take a card with you and top up the desired product later in the webshop', 'Du treng ikkje kjøpe produktet hos sjåfør. Du kan ta med deg eit kort og fylle på det produktet du vil i nettbutikken'),
286
+ (0, commons_1.richTranslation)(`${terms_1.T.travelCard.Indefinite} er et fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebilletter.`, `${terms_1.T.travelCard.Indefinite} is a physical plastic card. You can add period tickets to ${terms_1.T.travelCard.definite}`, `${terms_1.T.travelCard.Indefinite} er eit fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebillettar.`),
287
+ (0, commons_1.richTranslation)(`${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`, `${terms_1.T.travelCard.Base} is available from the bus driver, or the sailor on board the express boat.`, `${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`),
288
+ (0, commons_1.richTranslation)('Du trenger ikke kjøpe produktet hos sjåfør. Du kan ta med deg et kort og fylle på det produktet du vil i nettbutikken', 'You don’t need to purchase the product from the driver. You can take a card with you and top up the desired product later in the webshop', 'Du treng ikkje kjøpe produktet hos sjåfør. Du kan ta med deg eit kort og fylle på det produktet du vil i nettbutikken'),
257
289
  ],
258
290
  },
259
291
  travelCardQuestion: {
@@ -325,12 +357,13 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
325
357
  },
326
358
  lostAndFound: {
327
359
  title: (0, commons_1.translation)('Hittegods', 'Lost and found', 'Hittegods'),
328
- info: (0, commons_1.translation)('Vi har ikke et eget hittegods, men vi formidler gjerne din henvendelse videre til reisepersonalet og selskapet som var ansvarlig for reisen din. Fyll ut skjemaet, så tar de kontakt med deg direkte.', 'We do not have our own lost and found service, but we are happy to pass your enquiry on to the travel staff and company responsible for your journey. Fill in the form and they will contact you directly.', 'Vi har ikkje eit eige hittegods, men vi formidlar gjerne førespurnaden din vidare til reisepersonalet og selskapet som var ansvarleg for reisa di. Fyll ut skjemaet, så tek dei kontakt med deg direkte.'),
360
+ info: (0, commons_1.richTranslation)('Vi har ikke et eget hittegods, men vi formidler gjerne din henvendelse videre til reisepersonalet og selskapet som var ansvarlig for reisen din. Fyll ut skjemaet, så tar de kontakt med deg direkte.', 'We do not have our own lost and found service, but we are happy to pass your enquiry on to the travel staff and company responsible for your journey. Fill in the form and they will contact you directly.', 'Vi har ikkje eit eige hittegods, men vi formidlar gjerne førespurnaden din vidare til reisepersonalet og selskapet som var ansvarleg for reisa di. Fyll ut skjemaet, så tek dei kontakt med deg direkte.'),
329
361
  about: {
330
362
  title: (0, commons_1.translation)('Om reisen', 'About the journey', 'Om reisa'),
331
363
  },
332
364
  itemDescription: {
333
365
  title: (0, commons_1.translation)('Beskriv gjenstanden(e) du har mistet', 'Describe the item(s) you have lost', 'Beskriv gjenstanden(e) du har mist'),
366
+ description: (0, commons_1.translation)('Legg gjerne ved bilde, det gjør det lettere å finne og identifisere det du har mistet.', 'Feel free to attach a photo, it makes it easier to find and identify what you have lost.', 'Legg gjerne ved bilete, det gjer det lettare å finne og identifisere det du har mista.'),
334
367
  },
335
368
  contactInfo: {
336
369
  title: (0, commons_1.translation)('Kontaktinformasjon', 'Contact information', 'Kontaktinformasjon'),
@@ -406,12 +439,14 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
406
439
  },
407
440
  IBAN: {
408
441
  label: (0, commons_1.translation)('IBAN', 'IBAN', 'IBAN'),
442
+ description: (0, commons_1.translation)('Står i nettbanken og på kontoutskriften, eller spør banken din.', 'Shown in your online bank and on your bank statement, or ask your bank.', 'Står i nettbanken og på kontoutskrifta, eller spør banken din.'),
409
443
  errorMessages: {
410
444
  empty: (0, commons_1.translation)('Vennligst fyll ut ditt IBAN-nummer', 'Please provide your bank IBAN number', 'Vennligst fyll ut ditt IBAN-nummer'),
411
445
  },
412
446
  },
413
447
  SWIFT: {
414
448
  label: (0, commons_1.translation)('SWIFT ', 'SWIFT ', 'SWIFT '),
449
+ description: (0, commons_1.translation)('Bankens internasjonale kode (BIC), som står i nettbanken eller på bankens nettsider.', "Your bank's international code (BIC), shown in your online bank or on your bank's website.", 'Den internasjonale koden til banken (BIC), som står i nettbanken eller på nettsidene til banken.'),
415
450
  errorMessages: {
416
451
  empty: (0, commons_1.translation)('Vennligst fyll ut ditt SWIFT-nummer', 'Please provide your SWIFT number', 'Vennligst fyll ut ditt SWIFT-nummer'),
417
452
  },
@@ -441,6 +476,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
441
476
  framApp: (0, commons_1.translation)(terms_1.T.orgApp.Base, terms_1.T.orgApp.Base, terms_1.T.orgApp.Base),
442
477
  enturWeb: (0, commons_1.translation)('Entur nettbutikk', 'Entur webshop', 'Entur nettbutikk'),
443
478
  framWeb: (0, commons_1.translation)('Nettbutikk', 'Webshop', 'Nettbutikk'),
479
+ sms: (0, commons_1.translation)('SMS', 'SMS', 'SMS'),
444
480
  },
445
481
  errorMessages: {
446
482
  empty: (0, commons_1.translation)('Velg app eller nettbutikk', 'Select app or webshop', 'Vel app eller nettbutikk'),
@@ -549,8 +585,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
549
585
  },
550
586
  feeNumber: {
551
587
  label: (0, commons_1.translation)('Gebyrnummer', 'Fee number', 'Gebyrnummer'),
552
- description: (0, commons_1.translation)('Gebyrnummeret har 4 siffer. Du finner det øverst i høyre hjørne på gebyret', 'The fee number has 4 digits. You can find it in the top right corner of the fee', 'Gebyrnummert har 4 siffer. Du finn det øvst i høgre hjørne på gebyret'),
553
- instruction: (0, commons_1.translation)('Fyll ut gebyrnummeret ditt', 'Enter your fee number', 'Fyll ut gebyrnummeret ditt'),
588
+ description: (0, commons_1.translation)('Består av 4 siffer og står øverst i høyre hjørne på gebyret.', 'Consists of 4 digits and is in the top right corner of the fee.', 'Består av 4 siffer og står øvst i høgre hjørne på gebyret.'),
554
589
  errorMessages: {
555
590
  empty: (0, commons_1.translation)('Fyll ut gebyrnummeret ditt', 'Enter your fee number', 'Fyll ut gebyrnummeret ditt'),
556
591
  invalidFormat: (0, commons_1.translation)('Ugyldig gebyrnummer. Gebyrnummeret består av 4 siffer', 'Invalid fee number. The fee number consists of 4 digits', 'Ugyldig gebyrnummer. Gebyrnummeret består av 4 siffer'),
@@ -558,8 +593,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
558
593
  },
559
594
  invoiceNumber: {
560
595
  label: (0, commons_1.translation)('Fakturanummer', 'Invoice number', 'Fakturanummer'),
561
- description: (0, commons_1.translation)('Fakturanummeret finner du øverst i høyre hjørne på fakturaen.', 'The invoice number is found in the top right corner of the invoice.', 'Fakturanummeret finn du øvst i høgre hjørne på fakturaen.'),
562
- instruction: (0, commons_1.translation)('Fyll ut fakturanummeret ditt', 'Enter your invoice number', 'Fyll ut fakturanummeret ditt'),
596
+ description: (0, commons_1.translation)('Står øverst i høyre hjørne på fakturaen.', 'Shown in the top right corner of the invoice.', 'Står øvst i høgre hjørne på fakturaen.'),
563
597
  errorMessages: {
564
598
  empty: (0, commons_1.translation)('Fyll ut fakturanummeret ditt', 'Enter your invoice number', 'Fyll ut fakturanummeret ditt'),
565
599
  },
@@ -585,7 +619,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
585
619
  customerNumber: {
586
620
  label: (0, commons_1.translation)('Kundenummer', 'Customer number', 'Kundenummer'),
587
621
  labelOptional: (0, commons_1.translation)('Kundenummer - (valgfritt)', 'Customer number - (optional)', 'Kundenummer - (valfritt)'),
588
- description: (0, commons_1.translation)(`Kundenummeret består av 7 siffer og du finner det under Min bruker i ${terms_1.T.orgApp.definite}, eller i nettbutikken.`, `The customer number consists of 7 digits and can be found under My user in ${terms_1.T.orgApp.definite}, or in the webshop`, `Kundenummeret består av 7 siffer og du finn det under Min bruker i ${terms_1.T.orgApp.definite}, eller i nettbutikken.`),
622
+ description: (0, commons_1.translation)(`Består av 7 siffer og står under Min bruker i ${terms_1.T.orgApp.definite} eller i nettbutikken.`, `Consists of 7 digits and is shown under My user in ${terms_1.T.orgApp.definite} or in the webshop.`, `Består av 7 siffer og står under Min bruker i ${terms_1.T.orgApp.definite} eller i nettbutikken.`),
589
623
  errorMessages: {
590
624
  empty: (0, commons_1.translation)('Fyll inn kundenummer', 'Enter customer number', 'Fyll inn kundenummer'),
591
625
  invalidFormat: (0, commons_1.translation)('Ugyldig kundenummer. Skriv inn et gyldig kundenummer med 7 eller 8 siffer.', 'Invalid customer number. Please enter a valid 7 or 8-digit number.', 'Ugyldig kundenummer. Skriv inn eit gyldig kundenummer med 7 eller 8 siffer.'),
@@ -594,7 +628,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
594
628
  travelCardNumber: {
595
629
  labelRadioButton: (0, commons_1.translation)(terms_1.T.travelCard.Base, terms_1.T.travelCard.Base, terms_1.T.travelCard.Base),
596
630
  label: (0, commons_1.translation)(terms_1.T.travelCardNumber.Base, terms_1.T.travelCardNumber.Base, terms_1.T.travelCardNumber.Base),
597
- info: (0, commons_1.translation)(`Legg inn ${terms_1.T.travelCardNumber.definite} her hvis du allerede har ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} består av 9 siffer og du finner det på baksiden av ${terms_1.T.travelCard.definite} ditt`, `Enter ${terms_1.T.travelCardNumber.definite} here if you already have ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} consists of 9 digits and can be found on the back of your ${terms_1.T.travelCard.base}`, `Legg inn ${terms_1.T.travelCardNumber.definite} her viss du allereie har ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} består av 9 siffer, og du finn det bak på ${terms_1.T.travelCard.definite} ditt.`),
631
+ info: (0, commons_1.translation)(`Består av 9 siffer og står på baksiden av ${terms_1.T.travelCard.definite} ditt.`, `Consists of 9 digits and is on the back of your ${terms_1.T.travelCard.base}.`, `Består av 9 siffer og står bak på ${terms_1.T.travelCard.definite} ditt.`),
598
632
  errorMessages: {
599
633
  empty: (0, commons_1.translation)(`Legg til ${terms_1.T.travelCardNumber.base}`, `Enter ${terms_1.T.travelCardNumber.base}`, `Legg til ${terms_1.T.travelCardNumber.base}`),
600
634
  invalidFormat: (0, commons_1.translation)(`Ugyldig ${terms_1.T.travelCardNumber.base}. Skriv inn et gyldig ${terms_1.T.travelCardNumber.base} med 9 siffer.`, `Invalid ${terms_1.T.travelCardNumber.base}. Please enter a valid 9-digit number.`, `Ugyldig ${terms_1.T.travelCardNumber.base}. Skriv inn eit gyldig ${terms_1.T.travelCardNumber.base} med 9 siffer.`),
@@ -622,13 +656,7 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
622
656
  label: (expectsSingleOrderId) => expectsSingleOrderId
623
657
  ? (0, commons_1.translation)('Ordre-id', 'Order ID', 'Ordre-id')
624
658
  : (0, commons_1.translation)('Ordre-id(er)', 'Order ID(s)', 'Ordre-id(er)'),
625
- description: (0, commons_1.translation)('Hvis du vil ha hjelp med en billett du allerede har kjøpt, trenger vi å vite ordre-id. Ordre-id finner du følgende steder:', 'If you want help with a ticket you have already bought, we need to know the order ID. You can find the order ID in the following places:', 'Viss du vil ha hjelp med ein billett du allereie har kjøpt, treng vi å vite ordre-id. Ordre-id finn du følgende stadar:'),
626
- descriptionBulletPoints: [
627
- (0, commons_1.translation)(`På billetten i ${terms_1.T.orgApp.definite}.`, `On the ticket in ${terms_1.T.orgApp.definite}.`, `På billetten i ${terms_1.T.orgApp.definite}.`),
628
- (0, commons_1.translation)('På kvitteringen din.', 'On your receipt.', 'På kvitteringa di.'),
629
- (0, commons_1.translation)('Du finner også ordre-id på utgåtte billetter.', 'You can also find the order ID on expired tickets.', 'Du finn også ordre-id på utgåtte billettar.'),
630
- ],
631
- instruction: (0, commons_1.translation)(`Gjelder forespørselen flere billetter, send ordre-id for alle billettene, separert med komma (' , ').`, `If the request applies to several tickets, send the order ID for all the tickets, separated by commas (' , ').`, `Gjeld førespurnaden flere billettar, send ordre-id for alle billettane, separert med komma (' , ').`),
659
+ description: (0, commons_1.translation)(`Står på billetten i ${terms_1.T.orgApp.definite} og på kvitteringen, også for utgåtte billetter. Gjelder det flere billetter, skriv alle separert med komma.`, `Shown on the ticket in ${terms_1.T.orgApp.definite} and on your receipt, also for expired tickets. For several tickets, enter all of them separated by commas.`, `Står på billetten i ${terms_1.T.orgApp.definite} og på kvitteringa, også for utgåtte billettar. Gjeld det fleire billettar, skriv alle separert med komma.`),
632
660
  errorMessages: {
633
661
  empty: (0, commons_1.translation)('Ordre-id mangler', 'Order-id is missing', 'Ordre-id manglar'),
634
662
  invalidFormat: {
@@ -637,9 +665,12 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
637
665
  },
638
666
  },
639
667
  },
668
+ identificationAttachments: {
669
+ label: (0, commons_1.translation)('Gyldig legitimasjon (førerkort, pass, ID-kort etc)', "Valid identification (driver's licence, passport, ID card etc)", 'Gyldig legitimasjon (førarkort, pass, ID-kort etc)'),
670
+ },
640
671
  refundReason: {
641
- label: (0, commons_1.translation)('Refusjonen gjelder', 'The refund applies', 'Refusjonen gjeld'),
642
672
  question: (0, commons_1.translation)('Hva er grunnen til at du ønsker refusjon?', 'What is the reason you want a refund?', 'Kva er grunnen til at du ønsker refusjon?'),
673
+ description: (0, commons_1.translation)('', '', ''),
643
674
  errorMessages: {
644
675
  empty: (0, commons_1.translation)('Grunn for refusjon mangler', 'Reason for refund is missing', 'Grunn for refusjon manglar'),
645
676
  },
@@ -701,9 +732,5 @@ Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har
701
732
  tooLarge: (fileName) => (0, commons_1.translation)(`Filen "${fileName}" er for stor. Maks 5 MB`, `The file "${fileName}" is too large. Max 5 MB`, `Fila "${fileName}" er for stor. Maks 5 MB`),
702
733
  },
703
734
  },
704
- modal: {
705
- moreInformation: (inputName) => (0, commons_1.translation)(`Mer informasjon om ${inputName}`, `More information about ${inputName}`, `Meir informasjon om ${inputName}`),
706
- close: () => (0, commons_1.translation)(`Klikk for å lukke informasjonsboksen`, `Click to close the information box`, `Klikk for å lukke informasjonsboksen`),
707
- },
708
735
  },
709
736
  };
@@ -1,6 +1,8 @@
1
1
  import type { ContactFormTranslationsOverride } from './types';
2
2
  import { mergeTranslationOverrides } from './merge-overrides';
3
3
  import * as PageText from './pages';
4
+ import { type TranslatedString } from './commons';
5
+ import { type Terms } from './terms';
4
6
  type MergedTranslations = ReturnType<typeof mergeTranslationOverrides>;
5
7
  export declare function TranslationsProvider({ overrides, children, }: {
6
8
  overrides: ContactFormTranslationsOverride;
@@ -9,10 +11,15 @@ export declare function TranslationsProvider({ overrides, children, }: {
9
11
  export declare function useMergedTranslations(): MergedTranslations;
10
12
  export declare function usePageText(): typeof PageText;
11
13
  /**
12
- * Returns a function that fills `{group.form}` term placeholders in translated
13
- * text. A capitalized form (`Definite`) uses the org's `capitalized` value, or
14
- * else upper-cases the first letter. Unknown placeholders are kept.
14
+ * Fills `{group.form}` term placeholders in every language of `text`. A
15
+ * capitalized form (`Definite`) uses the org's `capitalized` value, or else
16
+ * upper-cases the first letter. Unknown placeholders are kept.
15
17
  */
16
- export declare function useFillTerms(): (text: string) => string;
18
+ export declare function fillTerms(text: TranslatedString, terms: Terms): TranslatedString;
19
+ /**
20
+ * `fillTerms` bound to the org's terms, or the defaults outside a
21
+ * `TranslationsProvider`.
22
+ */
23
+ export declare function useFillTerms(): (text: TranslatedString) => TranslatedString;
17
24
  export {};
18
25
  //# sourceMappingURL=translations-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"translations-context.d.ts","sourceRoot":"","sources":["../../src/translations/translations-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AAUpC,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAIvE,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,+BAA+B,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,+BAWA;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAS1D;AAED,wBAAgB,WAAW,IAAI,OAAO,QAAQ,CAG7C;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAgBvD"}
1
+ {"version":3,"file":"translations-context.d.ts","sourceRoot":"","sources":["../../src/translations/translations-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AACpC,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAIL,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAEjB,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAIvE,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,+BAA+B,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,+BAWA;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAS1D;AAED,wBAAgB,WAAW,IAAI,OAAO,QAAQ,CAG7C;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,KAAK,GACX,gBAAgB,CAqBlB;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,CAAC,IAAI,EAAE,gBAAgB,KAAK,gBAAgB,CAI3E"}
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.TranslationsProvider = TranslationsProvider;
37
37
  exports.useMergedTranslations = useMergedTranslations;
38
38
  exports.usePageText = usePageText;
39
+ exports.fillTerms = fillTerms;
39
40
  exports.useFillTerms = useFillTerms;
40
41
  const jsx_runtime_1 = require("react/jsx-runtime");
41
42
  const react_1 = require("react");
@@ -43,7 +44,6 @@ const merge_overrides_1 = require("./merge-overrides");
43
44
  const PageText = __importStar(require("./pages"));
44
45
  const commons_1 = require("./commons");
45
46
  const terms_1 = require("./terms");
46
- const lobot_1 = require("./lobot");
47
47
  const TranslationsContext = (0, react_1.createContext)(null);
48
48
  function TranslationsProvider({ overrides, children, }) {
49
49
  const merged = (0, react_1.useMemo)(() => (0, merge_overrides_1.mergeTranslationOverrides)(overrides), [overrides]);
@@ -62,23 +62,30 @@ function usePageText() {
62
62
  return context ? context.PageText : PageText;
63
63
  }
64
64
  /**
65
- * Returns a function that fills `{group.form}` term placeholders in translated
66
- * text. A capitalized form (`Definite`) uses the org's `capitalized` value, or
67
- * else upper-cases the first letter. Unknown placeholders are kept.
65
+ * Fills `{group.form}` term placeholders in every language of `text`. A
66
+ * capitalized form (`Definite`) uses the org's `capitalized` value, or else
67
+ * upper-cases the first letter. Unknown placeholders are kept.
68
68
  */
69
- function useFillTerms() {
70
- const context = (0, react_1.useContext)(TranslationsContext);
71
- const { t } = lobot_1.lobot.useTranslation();
72
- const terms = context ? context.terms : terms_1.defaultTerms;
73
- return (text) => text.replace(terms_1.TERM_PLACEHOLDER, (match, group, form) => {
69
+ function fillTerms(text, terms) {
70
+ const fill = (lang) => text[lang].replace(terms_1.TERM_PLACEHOLDER, (match, group, form) => {
74
71
  const forms = terms[group];
75
72
  const lowerForm = form.charAt(0).toLowerCase() + form.slice(1);
76
73
  const value = forms?.[lowerForm];
77
74
  if (!forms || !value || !(0, commons_1.isTranslatedString)(value))
78
75
  return match;
79
76
  if (form === lowerForm)
80
- return t(value);
77
+ return value[lang];
81
78
  const capitalized = forms.capitalized?.[lowerForm];
82
- return capitalized ? t(capitalized) : (0, terms_1.capitalize)(t(value));
79
+ return capitalized ? capitalized[lang] : (0, terms_1.capitalize)(value[lang]);
83
80
  });
81
+ return (0, commons_1.translation)(fill(commons_1.Language.Norwegian), fill(commons_1.Language.English), fill(commons_1.Language.Nynorsk));
82
+ }
83
+ /**
84
+ * `fillTerms` bound to the org's terms, or the defaults outside a
85
+ * `TranslationsProvider`.
86
+ */
87
+ function useFillTerms() {
88
+ const context = (0, react_1.useContext)(TranslationsContext);
89
+ const terms = context ? context.terms : terms_1.defaultTerms;
90
+ return (text) => fillTerms(text, terms);
84
91
  }
@@ -1,6 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import * as PageText from './pages';
3
3
  import type { Terms } from './terms';
4
+ import type { RichTranslatedString, TranslatedString } from './commons';
4
5
  export declare enum LanguageAndTextLanguagesEnum {
5
6
  nob = "nob",
6
7
  nno = "nno",
@@ -19,17 +20,21 @@ export declare const languageAndTextSchema: z.ZodUnion<readonly [z.ZodObject<{
19
20
  }, z.core.$strip>]>;
20
21
  export type LanguageAndTextType = z.infer<typeof languageAndTextSchema>;
21
22
  /**
22
- * Deeply partial type used for translation overrides.
23
+ * Override shape for the page dictionaries. Each translation must be complete
24
+ * (all languages), and `richTranslation` values are only accepted where the
25
+ * default is rich, since plain keys render Markdown literally.
23
26
  */
24
- export type DeepPartial<T> = {
25
- [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
26
- };
27
+ export type TranslationOverride<T> = T extends RichTranslatedString ? TranslatedString : T extends TranslatedString ? TranslatedString & {
28
+ readonly __rich?: never;
29
+ } : T extends string | ((...args: never[]) => unknown) ? T : T extends readonly (infer E)[] ? TranslationOverride<E>[] : T extends object ? {
30
+ [P in keyof T]?: TranslationOverride<T[P]>;
31
+ } : T;
27
32
  /**
28
33
  * Optional, structured translation overrides that consumers can pass to
29
34
  * tweak or extend the built-in dictionaries.
30
35
  */
31
36
  export type ContactFormTranslationsOverride = {
32
- pages?: DeepPartial<typeof PageText>;
37
+ pages?: TranslationOverride<typeof PageText>;
33
38
  terms?: Partial<Terms>;
34
39
  };
35
40
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/translations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,oBAAY,4BAA4B;IACtC,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,eAAO,MAAM,qBAAqB;;;;;;mBAShC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/translations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAExE,oBAAY,4BAA4B;IACtC,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,eAAO,MAAM,qBAAqB;;;;;;mBAShC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,oBAAoB,GAC/D,gBAAgB,GAChB,CAAC,SAAS,gBAAgB,GACxB,gBAAgB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GAC9C,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAChD,CAAC,GACD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC5B,mBAAmB,CAAC,CAAC,CAAC,EAAE,GACxB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,CAAC,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACxB,CAAC"}
@@ -70,6 +70,14 @@ export interface RefundSubmitPayload {
70
70
  travelCardNumber?: string;
71
71
  refundReason?: string;
72
72
  purchasePlatform?: string;
73
+ delayedDepartures?: {
74
+ line?: string;
75
+ fromStop: string;
76
+ toStop: string;
77
+ date: string;
78
+ plannedDepartureTime: string;
79
+ tripId?: string;
80
+ }[];
73
81
  attachments?: {
74
82
  filename: string;
75
83
  body: string;
@@ -147,5 +155,9 @@ export interface LostPropertySubmitPayload {
147
155
  lastName?: string;
148
156
  email?: string;
149
157
  phoneNumber?: string;
158
+ attachments?: {
159
+ filename: string;
160
+ body: string;
161
+ }[];
150
162
  }
151
163
  //# sourceMappingURL=submit-payloads.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit-payloads.d.ts","sourceRoot":"","sources":["../../src/types/submit-payloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit-payloads.d.ts","sourceRoot":"","sources":["../../src/types/submit-payloads.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -12,5 +12,5 @@ export type TicketType = {
12
12
  id: TicketTypeId | (string & {});
13
13
  name: TranslatedString;
14
14
  };
15
- export type PurchasePlatformType = 'framApp' | 'enturApp' | 'framWeb' | 'enturWeb';
15
+ export type PurchasePlatformType = 'framApp' | 'enturApp' | 'framWeb' | 'enturWeb' | 'sms';
16
16
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/E,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAC9B,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/E,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAC9B,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Renders a translated string with `[text](href)` as links opening in a new
3
- * tab and `**text**` as bold. A blank line (`\n\n`) starts a new paragraph,
4
- * a single `\n` is a line break.
3
+ * tab (except `mailto:`/`tel:`) and `**text**` as bold. A blank line (`\n\n`)
4
+ * starts a new paragraph, a single `\n` is a line break.
5
5
  */
6
6
  export declare function RichText({ children }: {
7
7
  children: string;
@@ -10,8 +10,8 @@ const typography_1 = require("../components/typography");
10
10
  const rich_text_module_css_1 = __importDefault(require("./rich-text.module.css"));
11
11
  /**
12
12
  * Renders a translated string with `[text](href)` as links opening in a new
13
- * tab and `**text**` as bold. A blank line (`\n\n`) starts a new paragraph,
14
- * a single `\n` is a line break.
13
+ * tab (except `mailto:`/`tel:`) and `**text**` as bold. A blank line (`\n\n`)
14
+ * starts a new paragraph, a single `\n` is a line break.
15
15
  */
16
16
  function RichText({ children }) {
17
17
  return ((0, jsx_runtime_1.jsx)("div", { className: rich_text_module_css_1.default.richText, children: children
@@ -19,13 +19,18 @@ function RichText({ children }) {
19
19
  .filter((paragraph) => paragraph.trim())
20
20
  .map((paragraph, index) => ((0, jsx_runtime_1.jsx)(typography_1.Typo.p, { textType: "body__m", children: paragraph.split('\n').map((line, lineIndex) => ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [lineIndex > 0 && (0, jsx_runtime_1.jsx)("br", {}), renderInline(line)] }, lineIndex))) }, index))) }));
21
21
  }
22
+ // mailto:/tel: links open an app, not a page, so they skip the new tab.
23
+ const PROTOCOL_LINK = /^(mailto|tel):/;
22
24
  const MARKDOWN = /\[([^\]]+)]\(([^)\s]+)\)|\*\*(.+?)\*\*/g;
23
25
  function renderInline(text) {
24
26
  const nodes = [];
25
27
  let textStart = 0;
26
28
  for (const match of text.matchAll(MARKDOWN)) {
27
29
  const [markdown, linkText, href, boldText] = match;
28
- nodes.push(text.slice(textStart, match.index), boldText !== undefined ? ((0, jsx_runtime_1.jsx)(typography_1.Typo.span, { textType: "body__m__strong", children: boldText }, match.index)) : ((0, jsx_runtime_1.jsx)("a", { href: href, target: "_blank", rel: "noopener noreferrer", children: linkText }, match.index)));
30
+ nodes.push(text.slice(textStart, match.index), boldText !== undefined ? ((0, jsx_runtime_1.jsx)(typography_1.Typo.span, { textType: "body__m__strong", children: boldText }, match.index)) : ((0, jsx_runtime_1.jsx)("a", { href: href, ...(!PROTOCOL_LINK.test(href) && {
31
+ target: '_blank',
32
+ rel: 'noopener noreferrer',
33
+ }), children: linkText }, match.index)));
29
34
  textStart = match.index + markdown.length;
30
35
  }
31
36
  nodes.push(text.slice(textStart));
package/lib/utils.d.ts CHANGED
@@ -8,13 +8,66 @@ export declare const convertFilesToBase64: (attachments: File[]) => Promise<{
8
8
  filename: string;
9
9
  body: string;
10
10
  }[]>;
11
- export declare const setTransportModeAndResetLineAndStops: (context: any, transporMode: TransportModeType) => any;
12
- export declare const setLineAndResetStops: (context: any, line: Line | undefined) => any;
13
- export declare const setBankAccountStatusAndResetBankInformation: (context: any, hasInternationalBankAccount: boolean) => any;
11
+ type ContextWithErrors = {
12
+ errorMessages: InputErrorMessages;
13
+ };
14
+ export declare const setTransportModeAndResetLineAndStops: <C extends ContextWithErrors>(context: C, transporMode: TransportModeType) => C & {
15
+ transportMode: TransportModeType;
16
+ line: undefined;
17
+ fromStop: undefined;
18
+ toStop: undefined;
19
+ plannedDepartureTime: undefined;
20
+ timeOfTicketControl: undefined;
21
+ tripId: undefined;
22
+ errorMessages: {
23
+ transportMode: never[];
24
+ line: never[];
25
+ fromStop: never[];
26
+ toStop: never[];
27
+ plannedDepartureTime: never[];
28
+ timeOfTicketControl: never[];
29
+ };
30
+ };
31
+ export declare const setLineAndResetStops: <C extends ContextWithErrors>(context: C, line: Line | undefined) => C & {
32
+ line: {
33
+ id: string;
34
+ name: string;
35
+ publicCode: string | null;
36
+ transportMode: "bicycle" | "foot" | "scooter" | "air" | "bus" | "cableway" | "car" | "carpool" | "coach" | "funicular" | "lift" | "metro" | "monorail" | "rail" | "taxi" | "tram" | "trolleybus" | "snowAndIce" | "unknown" | "water" | null;
37
+ transportSubmode: "undefined" | "funicular" | "lift" | "metro" | "unknown" | "escooter" | "ebicycle" | "SchengenAreaFlight" | "airportBoatLink" | "airportLinkBus" | "airportLinkRail" | "airshipService" | "allFunicularServices" | "allHireVehicles" | "allTaxiServices" | "bikeTaxi" | "blackCab" | "cableCar" | "cableFerry" | "canalBarge" | "carTransportRailService" | "chairLift" | "charterTaxi" | "cityTram" | "communalTaxi" | "commuterCoach" | "crossCountryRail" | "dedicatedLaneBus" | "demandAndResponseBus" | "domesticCharterFlight" | "domesticFlight" | "domesticScheduledFlight" | "dragLift" | "expressBus" | "helicopterService" | "highFrequencyBus" | "highSpeedPassengerService" | "highSpeedRail" | "highSpeedVehicleService" | "hireCar" | "hireCycle" | "hireMotorbike" | "hireVan" | "intercontinentalCharterFlight" | "intercontinentalFlight" | "international" | "internationalCarFerry" | "internationalCharterFlight" | "internationalCoach" | "internationalFlight" | "internationalPassengerFerry" | "interregionalRail" | "local" | "localBus" | "localCarFerry" | "localPassengerFerry" | "localTram" | "longDistance" | "miniCab" | "mobilityBus" | "mobilityBusForRegisteredDisabled" | "nationalCarFerry" | "nationalCoach" | "nationalPassengerFerry" | "nightBus" | "nightRail" | "postBoat" | "postBus" | "rackAndPinionRailway" | "railReplacementBus" | "railShuttle" | "railTaxi" | "regionalBus" | "regionalCarFerry" | "regionalCoach" | "regionalPassengerFerry" | "regionalRail" | "regionalTram" | "replacementRailService" | "riverBus" | "roadFerryLink" | "roundTripCharterFlight" | "scheduledFerry" | "schoolAndPublicServiceBus" | "schoolBoat" | "schoolBus" | "schoolCoach" | "shortHaulInternationalFlight" | "shuttleBus" | "shuttleCoach" | "shuttleFerryService" | "shuttleFlight" | "shuttleTram" | "sightseeingBus" | "sightseeingCoach" | "sightseeingFlight" | "sightseeingService" | "sightseeingTram" | "sleeperRailService" | "specialCoach" | "specialNeedsBus" | "specialTrain" | "streetCableCar" | "suburbanRailway" | "telecabin" | "telecabinLink" | "touristCoach" | "touristRailway" | "trainFerry" | "trainTram" | "tube" | "undefinedFunicular" | "urbanRailway" | "waterTaxi" | null;
38
+ quays: {
39
+ id: string;
40
+ name: string;
41
+ description: string | null;
42
+ }[];
43
+ } | undefined;
44
+ fromStop: undefined;
45
+ toStop: undefined;
46
+ plannedDepartureTime: undefined;
47
+ timeOfTicketControl: undefined;
48
+ tripId: undefined;
49
+ errorMessages: {
50
+ line: never[];
51
+ fromStop: never[];
52
+ toStop: never[];
53
+ plannedDepartureTime: never[];
54
+ timeOfTicketControl: never[];
55
+ };
56
+ };
57
+ export declare const setBankAccountStatusAndResetBankInformation: <C extends ContextWithErrors>(context: C, hasInternationalBankAccount: boolean) => C & {
58
+ hasInternationalBankAccount: boolean;
59
+ bankAccountNumber: undefined;
60
+ IBAN: undefined;
61
+ SWIFT: undefined;
62
+ errorMessages: {
63
+ bankAccountNumber: never[];
64
+ };
65
+ };
14
66
  export declare const findOrderFormFields: (e: FormEvent<HTMLFormElement>) => string[];
15
67
  export declare const scrollToFirstErrorMessage: (id: string | undefined) => void;
16
68
  export declare const findFirstErrorMessage: (formFields: string[] | undefined, errors: InputErrorMessages) => string | undefined;
17
69
  export declare function getLineName(line: Line | undefined): string | undefined;
18
70
  export declare function warnDev(message: string): void;
19
71
  export declare function warnDevMissingTranslation(key: string): void;
72
+ export {};
20
73
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAY,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,GAC9B,WAAW,gBAAgB,KAC1B,gBAAgB,EAIlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,IAAI,EAAE,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAsB9C,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,GAAG,EACZ,cAAc,iBAAiB,QAqBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,GAAG,EAAE,MAAM,IAAI,GAAG,SAAS,QAkBxE,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,SAAS,GAAG,EACZ,6BAA6B,OAAO,QAUrC,CAAC;AAYF,eAAO,MAAM,mBAAmB,GAAI,GAAG,SAAS,CAAC,eAAe,CAAC,KAAG,MAAM,EAOpC,CAAC;AAEvC,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,IA4BlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,kBAAkB,KACzB,MAAM,GAAG,SAQX,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAY,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,GAC9B,WAAW,gBAAgB,KAC1B,gBAAgB,EAIlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,aAAa,IAAI,EAAE,KAClB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAsB9C,CAAC;AAEF,KAAK,iBAAiB,GAAG;IAAE,aAAa,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE/D,eAAO,MAAM,oCAAoC,GAC/C,CAAC,SAAS,iBAAiB,EAE3B,SAAS,CAAC,EACV,cAAc,iBAAiB;;;;;;;;;;;;;;;;CAqBhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,iBAAiB,EAC9D,SAAS,CAAC,EACV,MAAM,IAAI,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAmBvB,CAAC;AAEF,eAAO,MAAM,2CAA2C,GACtD,CAAC,SAAS,iBAAiB,EAE3B,SAAS,CAAC,EACV,6BAA6B,OAAO;;;;;;;;CAUrC,CAAC;AAYF,eAAO,MAAM,mBAAmB,GAAI,GAAG,SAAS,CAAC,eAAe,CAAC,KAAG,MAAM,EAOpC,CAAC;AAEvC,eAAO,MAAM,yBAAyB,GAAI,IAAI,MAAM,GAAG,SAAS,KAAG,IA4BlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,YAAY,MAAM,EAAE,GAAG,SAAS,EAChC,QAAQ,kBAAkB,KACzB,MAAM,GAAG,SAQX,CAAC;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3D"}
@@ -2,6 +2,6 @@ import { TranslatedString } from '../translations';
2
2
  export type InputErrorMessages = {
3
3
  [key: string]: TranslatedString[];
4
4
  };
5
- export declare const commonInputValidator: (context: any) => InputErrorMessages;
5
+ export declare const commonInputValidator: (context?: object) => InputErrorMessages;
6
6
  export default commonInputValidator;
7
7
  //# sourceMappingURL=commonInputValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commonInputValidator.d.ts","sourceRoot":"","sources":["../../src/validation/commonInputValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,GAAG,KAAG,kBAiBnD,CAAC;AAaF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"commonInputValidator.d.ts","sourceRoot":"","sources":["../../src/validation/commonInputValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,UAAS,MAAW,KACnB,kBAiBF,CAAC;AAaF,eAAe,oBAAoB,CAAC"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.commonInputValidator = void 0;
4
4
  const validationRules_1 = require("./validationRules");
5
- const commonInputValidator = (context) => {
5
+ const commonInputValidator = (context = {}) => {
6
6
  const inputErrorMessages = {};
7
- Object.keys(context).forEach((inputName) => {
7
+ Object.entries(context).forEach(([inputName, value]) => {
8
8
  const rules = validationRules_1.validationRules[inputName];
9
9
  if (!rules)
10
10
  return;
11
11
  for (const { validate, errorMessage } of rules) {
12
- const isValid = validate(context[inputName]);
12
+ const isValid = validate(value);
13
13
  if (!isValid) {
14
14
  addErrorMessage(inputName, errorMessage, inputErrorMessages);
15
15
  return; // Stop the loop after the first error is found
@@ -3,6 +3,8 @@ type ValidationRule = {
3
3
  validate: (value: any) => boolean;
4
4
  errorMessage: TranslatedString;
5
5
  };
6
+ export declare const PRE_PURCHASED_TICKET_MIN_DELAYED_DEPARTURES = 4;
7
+ export declare const isWithinOneMonth: (dates: string[]) => boolean;
6
8
  type ValidationRulesMap = {
7
9
  [inputName: string]: ValidationRule[];
8
10
  };