Ga naar hoofdinhoud

Tekst en datums transformeren

Transformatiehelpers wijzigen de structuur of inhoud van een waarde — niet alleen de weergave.


Concat

Voegt een willekeurig aantal waarden samen tot één string.

concat value1 value2 ...

Voorbeeld

{{concat vessel.name ' — ' portCall.port}}    => Ocean Star — Rotterdam
{{concat 'ETA: ' portCall.eta}} => ETA: 2024-03-10

Coalesce

Geeft de eerste niet-lege, niet-null waarde terug uit de opgegeven argumenten. De strings null en undefined worden ook als leeg beschouwd.

coalesce value1 value2 ...
ArgumentTypeBeschrijving
value1, ...anyWaarden die op volgorde worden geëvalueerd; de eerste niet-lege wordt teruggegeven.

Voorbeeld

{{coalesce portCall.berth 'TBA'}}              => TBA  (when berth is null or empty)
{{coalesce portCall.agent vessel.defaultAgent}} => Maas Bulk Agency
{{coalesce 'Hamburg' 'Rotterdam'}} => Hamburg

Brackets

Plaatst een waarde tussen haakjes, met optionele voor- en achtertekst binnen de haakjes.

brackets value prefix suffix
ArgumentTypeBeschrijving
valuestringDe in te sluiten waarde.
prefixstringOptioneel: tekst vóór de waarde, binnen de haakjes.
suffixstringOptioneel: tekst na de waarde, binnen de haakjes.

Voorbeeld

{{brackets portCall.berth}}              => (Berth 7)
{{brackets portCall.berth 'Berth: '}} => (Berth: 7)
{{brackets cargo.tonnage '' ' MT'}} => (45000 MT)

Replace

Vervangt elk voorkomen van een deelstring door een vervangende string.

replace originalText replaceMatch replaceWith
ArgumentTypeBeschrijving
originalTextstringDe string waarin gezocht wordt.
replaceMatchstringDe te zoeken deelstring.
replaceWithstringDe vervangende string.

Voorbeeld

{{replace portCall.remarks 'TBC' 'Confirmed'}}

Invoer: 'ETA TBC, berth TBC' → Uitvoer: 'ETA Confirmed, berth Confirmed'


Replace (reguliere expressie)

Net als replace, maar het zoekpatroon is een reguliere expressie.

regexReplace originalText replaceMatch replaceWith
ArgumentTypeBeschrijving
originalTextstringDe string waarin gezocht wordt.
replaceMatchstringHet reguliere-expressiepatroon om te zoeken.
replaceWithstringDe vervangende string.

Voorbeeld

{{regexReplace portCall.berth '[0-9]+' 'TBA'}}

Invoer: 'Berth 12' → Uitvoer: 'Berth TBA'


Substring

Haalt een deel van een string op aan de hand van een startindex en een optionele lengte.

substring startIndex length
ArgumentTypeBeschrijving
startIndexnumberNulgebaseerde startpositie.
lengthnumberOptioneel: aantal te extraheren tekens. Weglaten om tot het einde van de string te gaan.

Voorbeeld

{{substring vessel.imoNumber 2 7}}    => 9876543  (chars 2–8 of 'IMO9876543')
{{substring voyage.reference 0 4}} => 2024

Trim

Verwijdert witruimte (of een opgegeven teken) aan beide uiteinden van een string.

trim

Voorbeeld

{{trim portCall.remarks}}                      => 'Berth 7 confirmed'
{{trim portCall.berth '.'}} => 'Berth 7'

Truncate

Verkort een string tot een maximale lengte. Wanneer een ellips is opgegeven, blijft de totale uitvoerlengte (inclusief de ellips) binnen maxLength.

truncate value maxLength ellipsis
ArgumentTypeBeschrijving
valuestringDe in te korten string.
maxLengthnumberMaximale uitvoerlengte (inclusief ellips, indien opgegeven).
ellipsisstringOptioneel: achtervoegsel dat bij afkapping wordt toegevoegd, bijv. .... Standaard geen achtervoegsel.

Voorbeeld

{{truncate vessel.name 8}}           => 'Ocean St'
{{truncate vessel.name 8 '...'}} => 'Ocean...'
{{truncate 'LNG' 10 '...'}} => 'LNG'

Newline

Vervangt een opgegeven string door regeleinden.

newline stringToReplace

Voorbeeld

{{newline portCall.itinerary ', '}}

Invoer: 'Amsterdam, Rotterdam, Antwerp'

Uitvoer:

Amsterdam
Rotterdam
Antwerp

Tekst naar HTML

HTML-codeert een string en zet \r\n-regeleinden om naar <br/>-tags. Handig wanneer door de gebruiker ingevoerde platte tekst wordt weergegeven in HTML-sjablonen.

textToHtml text
ArgumentTypeBeschrijving
textstringDe om te zetten platte tekst.

Voorbeeld

{{textToHtml portCall.remarks}}

Invoer: 'Berth <7>\r\nConfirmed' → Uitvoer: Berth &lt;7&gt;<br/>Confirmed


Nul als null

Vervangt een null-getalwaarde door 0 in plaats van een lege string (het standaardgedrag van de engine).

zeroIfNull

Voorbeeld

{{zeroIfNull cargo.tonnage}}    => 45000   (or 0 if null)
{{zeroIfNull null}} => 0

Versleutelen

Genereert een versleutelde, omkeerbare string — voornamelijk bedoeld om onleesbare tokens door te sturen naar de SHIPM8-backend, niet voor het opslaan van gevoelige gegevens.

encrypt seed validityInHours
ArgumentTypeBeschrijving
seedstringOptioneel: seed die het versleutelingsmechanisme aanstuurt.
validityInHoursnumberOptioneel: aantal uren voordat het versleutelde token verloopt.

Voorbeeld

{{encrypt voyage.reference 'shipm8' 24}}    => 'SB25ibaSIDB3i3u0sa8=='

Datum optellen

Telt een tijdshoeveelheid op bij of trekt deze af van een datum. Het uitvoerformaat is altijd dd-MM-yyyy HH:mm.

dateAdd date amount type
ArgumentTypeBeschrijving
datestringDe aan te passen datum.
amountnumberOp te tellen hoeveelheid; gebruik een negatieve waarde om af te trekken.
typestringTijdseenheid: d / day / days, H / hour / hours, m / minute / minutes.

Voorbeeld

{{dateAdd vessel.eta 2 'days'}}       => 12-03-2024 14:00
{{dateAdd vessel.eta 6 'hours'}} => 10-03-2024 20:00
{{dateAdd vessel.eta -30 'minutes'}} => 10-03-2024 13:30

Datum — vanuit UTC

Zet een UTC-datum/-tijd om naar een lokale datum/-tijd in de opgegeven tijdzone (of de lokale tijdzone van de server als er geen is opgegeven). De invoer wordt altijd als UTC behandeld.

dateFromUtc date timezoneId format
ArgumentTypeBeschrijving
datestringDe te converteren UTC-datum/-tijd.
timezoneIdstringOptioneel: Windows-tijdzone-ID, bijv. W. Europe Standard Time. Standaard lokale servertijdzone.
formatstringOptioneel: uitvoerformaat. Standaard dd-MM-yyyy HH:mm.

Voorbeeld

{{dateFromUtc vessel.etaUtc}}
=> 10-03-2024 16:00 (server in W. Europe Summer Time, UTC+2)

{{dateFromUtc vessel.etaUtc 'W. Europe Standard Time'}}
=> 10-03-2024 16:00

{{dateFromUtc vessel.etaUtc 'Eastern Standard Time' 'HH:mm'}}
=> 10:00

Datum — naar UTC

Zet een lokale datum/-tijd in de opgegeven tijdzone om naar UTC.

dateToUtc date timezoneId format
ArgumentTypeBeschrijving
datestringDe te converteren lokale datum/-tijd.
timezoneIdstringOptioneel: Windows-tijdzone-ID van de invoerdatum. Standaard lokale servertijdzone.
formatstringOptioneel: uitvoerformaat. Standaard dd-MM-yyyy HH:mm.

Voorbeeld

{{dateToUtc vessel.eta}}
=> 10-03-2024 12:00 (server in W. Europe Summer Time, UTC+2)

{{dateToUtc vessel.eta 'W. Europe Standard Time'}}
=> 10-03-2024 13:00

{{dateToUtc vessel.eta 'Eastern Standard Time' 'HH:mm'}}
=> 19:00

Tijd optellen

Telt een tijdshoeveelheid op bij of trekt deze af van een tijdspan-waarde (bijv. 14:00:00).

timeAdd time amount type
ArgumentTypeBeschrijving
timestringTijdspan-string, bijv. 14:00:00.
amountnumberOp te tellen hoeveelheid; gebruik een negatieve waarde om af te trekken.
typestringTijdseenheid: H / hour / hours, m / minute / minutes.

Voorbeeld

{{timeAdd vessel.berthingTime 2 'hours'}}     => 16:00:00
{{timeAdd vessel.berthingTime 45 'minutes'}} => 14:45:00

Timeline

Breidt een array van items met datumbereiken uit tot een tijdlijn — één rij per afgedekt intervalperiode. Dit is een block helper.

timeline inputArray dateFrom dateTo interval outputFieldKey outputFormat appendData
ArgumentTypeBeschrijving
inputArrayarrayDe uit te breiden array.
dateFromstringVeldnaam voor de begindatum.
dateTostringVeldnaam voor de einddatum.
intervalstringhourly, daily, monthly, quarterly of yearly.
outputFieldKeystringNaam van het veld dat aan elk uitvoeritem wordt toegevoegd met de tijdlijnsleutel.
outputFormatstringDatumformaat voor de tijdlijnsleutel.
appendDatastringOptioneel: fillgap maakt lege records aan voor intervallen zonder overeenkomend item.

Voorbeeld

{{timeline portCalls 'eta' 'etd' 'daily' 'timelineDate' 'dd-MM-yyyy'}}
{{#each this}}
{{timelineDate}} -> {{port}}
{{/each}}
{{/timeline}}

Gegevens:

{
"portCalls": [
{ "eta": "2024-03-10T08:00", "etd": "2024-03-11T18:00", "port": "Rotterdam" },
{ "eta": "2024-03-12T08:00", "etd": "2024-03-13T12:00", "port": "Antwerp" }
]
}

Resultaat:

10-03-2024 -> Rotterdam
11-03-2024 -> Rotterdam
12-03-2024 -> Antwerp
13-03-2024 -> Antwerp