Static Functions
Overview
These functions are universally accessible within every EL (Expression Language) expression,
providing powerful tools for manipulation and evaluation. They are designed to accept other
expressions as arguments, enabling dynamic and flexible computation. This allows for the creation
of complex expressions by combining multiple functions and expressions, enhancing the overall
functionality and usability of EL in various contexts.
Functions
abs
Absolute value.
Signaturenum abs(dynamic value);
XML Usage<Text data="${abs(-42)}"/>
ceil
Round up to nearest integer.
Signatureint ceil(dynamic value);
XML Usage<Text data="${ceil(3.2)}"/>
contains
Check if a value contains a search value.
Signaturebool contains(dynamic value, dynamic searchValue);
XML Usage<if test="${contains('Hello, World!', 'World')}">
<!-- true condition -->
<else>
<!-- optional false condition -->
</else>
</if>
containsKey
Check if a map contains a key.
Signaturebool containsKey(Map? map, dynamic searchKey);
XML Usage<if test="${containsKey(myMap, 'userId')}">
<!-- true condition -->
</if>
containsValue
Check if a map contains a value.
Signaturebool containsValue(Map? map, dynamic searchValue);
XML Usage<if test="${containsValue(myMap, 'admin')}">
<!-- true condition -->
</if>
diffDateTime
Calculate duration between two dates.
SignatureDuration diffDateTime(DateTime left, DateTime right);
XML Usage<Text data="${diffDateTime(now(), startDate)}"/>
endsWith
Check if a string ends with a value.
Signaturebool endsWith(String value, String searchValue);
XML Usage<if test="${endsWith(fileName, '.dart')}">
<!-- true condition -->
</if>
eval
Evaluate an expression string.
Signaturedynamic eval(String? value);
XML Usage<Text data="${eval('2 + 2')}"/>
first
Get first element of a collection.
Signaturedynamic first(dynamic value);
XML Usage<Text data="${first(myList)}"/>
floor
Round down to nearest integer.
Signatureint floor(dynamic value);
XML Usage<Text data="${floor(3.7)}"/>
Format a DateTime with a pattern.
SignatureString formatDateTime(String format, DateTime dateTime);
XML Usage<Text data="${formatDateTime('yyyy-MM-dd', now())}"/>
Format a Duration with specified precision.
SignatureString? formatDuration(Duration? value, [String precision = "s", DurationFormat? format = defaultDurationFormat]);
XML Usage<Text data="${formatDuration(myDuration, 'ms')}"/>
isBlank
Check if a value is blank (null, empty, or whitespace).
Signaturebool isBlank(dynamic value);
XML Usage<if test="${isBlank(userName)}">
<!-- true condition -->
</if>
isEmpty
Check if a value is empty.
Signaturebool isEmpty(dynamic value);
XML Usage<if test="${isEmpty(myList)}">
<!-- true condition -->
<else>
<!-- optional false condition -->
</else>
</if>
isFalseOrNull
Check if a value is false or null.
Signaturebool isFalseOrNull(dynamic value);
XML Usage<if test="${isFalseOrNull(isEnabled)}">
<!-- true condition -->
</if>
isNotBlank
Check if a value is not blank.
Signaturebool isNotBlank(dynamic value);
XML Usage<if test="${isNotBlank(userName)}">
<!-- true condition -->
</if>
isNotEmpty
Check if a value is not empty.
Signaturebool isNotEmpty(dynamic value);
XML Usage<if test="${isNotEmpty(myList)}">
<!-- true condition -->
</if>
isNotNull
Check if a value is not null.
Signaturebool isNotNull(dynamic value);
XML Usage<if test="${isNotNull(userId)}">
<!-- true condition -->
</if>
isNull
Check if a value is null.
Signaturebool isNull(dynamic value);
XML Usage<if test="${isNull(userId)}">
<!-- true condition -->
</if>
isTrueOrNull
Check if a value is true or null.
Signaturebool isTrueOrNull(dynamic value);
XML Usage<if test="${isTrueOrNull(isEnabled)}">
<!-- true condition -->
</if>
last
Get last element of a collection.
Signaturedynamic last(dynamic value);
XML Usage<Text data="${last(myList)}"/>
length
Get length of a collection or string.
Signatureint length(dynamic value);
XML Usage<Text data="${length('Hello')}"/>
logDebug
Log a debug message.
Signaturevoid logDebug(dynamic message);
XML Usage<Button onPressed="${logDebug('Button clicked')}"/>
matches
Check if a string matches a regular expression.
Signaturebool matches(String value, String regExp);
XML Usage<if test="${matches(email, '^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$')}">
<!-- true condition -->
</if>
now
Get current DateTime.
XML Usage<Text data="${now()}"/>
nowInUtc
Get current DateTime in UTC.
SignatureDateTime nowInUtc();
XML Usage<Text data="${nowInUtc()}"/>
randomDouble
Generate a random double between 0.0 and 1.0.
Signaturedouble randomDouble();
XML Usage<Text data="${randomDouble()}"/>
randomInt
Generate a random integer.
Signatureint randomInt(int max);
XML Usage<Text data="${randomInt(100)}"/>
replaceAll
Replace all occurrences in a string.
SignatureString replaceAll(String value, String regex, String replacement);
XML Usage<Text data="${replaceAll('I enjoy programming', 'enjoy', 'love')}"/>
replaceFirst
Replace first occurrence in a string.
SignatureString replaceFirst(String value, String regex, String replacement, [int startIndex = 0]);
XML Usage<Text data="${replaceFirst('test test', 'test', 'demo')}"/>
round
Round to nearest integer.
Signatureint round(dynamic value);
XML Usage<Text data="${round(3.7)}"/>
startsWith
Check if a string starts with a value.
Signaturebool startsWith(String value, String searchValue);
XML Usage<if test="${startsWith('Dart is fun', 'Dart')}">
<!-- true condition -->
<else>
<!-- optional false condition -->
</else>
</if>
substring
Extract a substring.
SignatureString substring(String value, int start, [int end = -1]);
XML Usage<Text data="${substring('Hello World', 0, 5)}"/>
toBool
Convert to boolean.
Signaturebool? toBool(dynamic value);
XML Usage<Text data="${toBool('true')}"/>
toColor
Convert to Color.
SignatureColor? toColor(dynamic value);
XML Usage<Container color="${toColor('#FF5733')}"/>
toDateTime
Convert to DateTime.
SignatureDateTime? toDateTime(dynamic value);
XML Usage<Text data="${toDateTime('2024-01-01')}"/>
toDays
Convert to days.
Signatureint? toDays(dynamic value);
XML Usage<Text data="${toDays(myDuration)}"/>
toDouble
Convert to double.
Signaturedouble? toDouble(dynamic value);
XML Usage<Text data="${toDouble('3.14')}"/>
toDuration
Convert to Duration.
SignatureDuration? toDuration(dynamic value, [String? intUnit]);
XML Usage<Text data="${toDuration(3600, 's')}"/>
toHours
Convert to hours.
Signatureint? toHours(dynamic value);
XML Usage<Text data="${toHours(myDuration)}"/>
toInt
Convert to integer.
Signatureint? toInt(dynamic value);
XML Usage<Text data="${toInt('123')}"/>
toMillis
Convert to milliseconds.
Signatureint? toMillis(dynamic value);
XML Usage<Text data="${toMillis(myDuration)}"/>
toMinutes
Convert to minutes.
Signatureint? toMinutes(dynamic value);
XML Usage<Text data="${toMinutes(myDuration)}"/>
toSeconds
Convert to seconds.
Signatureint? toSeconds(dynamic value);
XML Usage<Text data="${toSeconds(myDuration)}"/>
toString
Convert to string.
SignatureString? toString(dynamic value);
XML Usage<Text data="${toString(42)}"/>
tryToBool
Try to convert to boolean, returns null on failure.
Signaturebool tryToBool(dynamic value);
XML Usage<Text data="${tryToBool(userInput)}"/>
tryToColor
Try to convert to Color, returns null on failure.
SignatureColor? tryToColor(dynamic value);
XML Usage<Container color="${tryToColor(userColor)}"/>
tryToDateTime
Try to convert to DateTime, returns null on failure.
SignatureDateTime? tryToDateTime(dynamic value);
XML Usage<Text data="${tryToDateTime(userInput)}"/>
tryToDays
Try to convert to days, returns null on failure.
Signatureint? tryToDays(dynamic value);
XML Usage<Text data="${tryToDays(userInput)}"/>
tryToDouble
Try to convert to double, returns null on failure.
Signaturedouble? tryToDouble(dynamic value);
XML Usage<Text data="${tryToDouble(userInput)}"/>
tryToDuration
Try to convert to Duration, returns null on failure.
SignatureDuration? tryToDuration(dynamic value, [String? intUnit]);
XML Usage<Text data="${tryToDuration(userInput, 's')}"/>
tryToHours
Try to convert to hours, returns null on failure.
Signatureint? tryToHours(dynamic value);
XML Usage<Text data="${tryToHours(userInput)}"/>
tryToInt
Try to convert to integer, returns null on failure.
Signatureint? tryToInt(dynamic value);
XML Usage<Text data="${tryToInt(userInput)}"/>
tryToMillis
Try to convert to milliseconds, returns null on failure.
Signatureint? tryToMillis(dynamic value);
XML Usage<Text data="${tryToMillis(userInput)}"/>
tryToMinutes
Try to convert to minutes, returns null on failure.
Signatureint? tryToMinutes(dynamic value);
XML Usage<Text data="${tryToMinutes(userInput)}"/>
tryToSeconds
Try to convert to seconds, returns null on failure.
Signatureint? tryToSeconds(dynamic value);
XML Usage<Text data="${tryToSeconds(userInput)}"/>
tryToString
Try to convert to string, returns null on failure.
SignatureString? tryToString(dynamic value);
XML Usage<Text data="${tryToString(userInput)}"/>