htmlData function

String htmlData({
  1. required String siteKey,
  2. String? action,
  3. String? cData,
  4. required TurnstileOptions options,
  5. required String onTurnstileReady,
  6. required String onTokenReceived,
  7. required String onTurnstileError,
  8. required String onTokenExpired,
  9. required String onWidgetCreated,
})

Implementation

String htmlData({
  required String siteKey,
  String? action,
  String? cData,
  required TurnstileOptions options,
  required String onTurnstileReady,
  required String onTokenReceived,
  required String onTurnstileError,
  required String onTokenExpired,
  required String onWidgetCreated,
}) {
  RegExp exp = RegExp(
      r'<TURNSTILE_(SITE_KEY|ACTION|CDATA|THEME|SIZE|LANGUAGE|RETRY|RETRY_INTERVAL|REFRESH_EXPIRED|REFRESH_TIMEOUT|READY|TOKEN_RECEIVED|ERROR|TOKEN_EXPIRED|CREATED)>');
  String? replacedText = _source.replaceAllMapped(exp, (match) {
    switch (match.group(1)) {
      case 'SITE_KEY':
        return siteKey;
      case 'ACTION':
        return action ?? '';
      case 'CDATA':
        return cData ?? '';
      case 'THEME':
        return options.theme.name;
      case 'SIZE':
        return options.size.name;
      case 'LANGUAGE':
        return options.language;
      case 'RETRY':
        return options.retryAutomatically ? 'auto' : 'never';
      case 'RETRY_INTERVAL':
        return options.retryInterval.inMilliseconds.toString();
      case 'REFRESH_EXPIRED':
        return options.refreshExpired.name;
      case 'REFRESH_TIMEOUT':
        return options.refreshTimeout.name;
      case 'READY':
        return onTurnstileReady;
      case 'TOKEN_RECEIVED':
        return onTokenReceived;
      case 'ERROR':
        return onTurnstileError;
      case 'TOKEN_EXPIRED':
        return onTokenExpired;
      case 'CREATED':
        return onWidgetCreated;
      default:
        return match.group(0) ?? "";
    }
  });

  return replacedText;
}