You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/extensions/string_extensions.dart

332 lines
14 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/app_style/app_text_style.dart';
extension CapExtension on String {
String get toCamelCase => "${this[0].toUpperCase()}${substring(1)}";
String get inCaps => '${this[0].toUpperCase()}${substring(1)}';
String get allInCaps => toUpperCase();
String get capitalizeFirstOfEach => trim().isNotEmpty ? trim().toLowerCase().split(" ").map((str) => str.inCaps).join(" ") : "";
}
extension TextStyleExtension on String {
Widget toHeading1(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading1.copyWith(color: color ?? (context.isDark ? AppColor.backgroundLight : AppColor.neutral70), fontWeight: fontWeight),
);
Widget toHeading2(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading2.copyWith(color: color ?? (context.isDark ? AppColor.neutral30 : AppColor.neutral50), fontWeight: fontWeight),
);
Widget toHeading3(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading3.copyWith(color: color ?? (context.isDark ? AppColor.neutral30 : AppColor.neutral50), fontWeight: fontWeight),
);
Widget toHeading4(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading4.copyWith(color: color ?? (context.isDark ? AppColor.neutral30 : AppColor.neutral50), fontWeight: fontWeight),
);
Widget toHeading5(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading5.copyWith(color: color ?? (context.isDark ? AppColor.neutral30 : AppColor.neutral50), fontWeight: fontWeight),
);
Widget toHeading6(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.heading6.copyWith(color: color ?? (context.isDark ? AppColor.neutral30 : AppColor.neutral50), fontWeight: fontWeight),
);
Widget toBody1(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.body1.copyWith(color: color ?? (context.isDark ? AppColor.neutral10 : AppColor.neutral20), fontWeight: fontWeight),
);
Widget toBody2(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.body2.copyWith(color: color ?? (context.isDark ? AppColor.neutral10 : AppColor.neutral20), fontWeight: fontWeight),
);
Widget toTiny(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.tiny.copyWith(color: color ?? (context.isDark ? AppColor.neutral10 : AppColor.neutral20), fontWeight: fontWeight),
);
Widget toOverline(BuildContext context, {Color color, int maxLines, FontWeight fontWeight}) => Text(
this,
maxLines: (maxLines != null && maxLines > 0) ? maxLines : null,
style: AppTextStyle.overline.copyWith(color: color ?? (context.isDark ? AppColor.neutral10 : AppColor.neutral20), fontWeight: fontWeight),
);
}
extension FilesExtension on String {
SvgPicture toSvgAsset({
double width,
double height,
Color color,
BoxFit fit = BoxFit.contain,
}) =>
SvgPicture.asset("assets/images/$this.svg", width: width, height: height, color: color, fit: fit);
Image toPngAsset({
double width,
double height,
Color color,
BoxFit fit = BoxFit.contain,
}) =>
Image.asset("assets/images/$this.png", width: width, height: height, color: color, fit: fit);
}
//
// import 'package:flutter/cupertino.dart';
// import 'package:intl/intl.dart';
//
// extension CapExtension on String {
// String get toCamelCase => "${this[0].toUpperCase()}${this.substring(1)}";
//
// String get inCaps => '${this[0].toUpperCase()}${this.substring(1)}';
//
// String get allInCaps => this.toUpperCase();
//
// String get capitalizeFirstofEach => this.trim().length > 0 ? this.trim().toLowerCase().split(" ").map((str) => str.inCaps).join(" ") : "";
// }
//
// extension EmailValidator on String {
// Widget get toWidget => Text(this);
//
// Widget toText10({Color? color, bool isBold = false, int? maxlines, FontStyle? fontStyle}) => Text(
// this,
// maxLines: maxlines,
// style: TextStyle(fontSize: 10, fontStyle: fontStyle ?? FontStyle.normal, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4),
// );
//
// Widget toText11({Color? color, FontWeight? weight, bool isUnderLine = false, bool isBold = false, int maxLine = 0}) => Text(
// this,
// maxLines: (maxLine > 0) ? maxLine : null,
// style: TextStyle(
// fontSize: 11,
// fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.w600),
// color: color ?? MyColors.darkTextColor,
// letterSpacing: -0.33,
// decoration: isUnderLine ? TextDecoration.underline : null,
// ),
// );
//
// Widget toText12({Color? color, bool isUnderLine = false, bool isBold = false, bool isCenter = false, int maxLine = 0}) => Text(
// this,
// textAlign: isCenter ? TextAlign.center : null,
// maxLines: (maxLine > 0) ? maxLine : null,
// style: TextStyle(
// fontSize: 12,
// fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
// color: color ?? MyColors.darkTextColor,
// letterSpacing: -0.72,
// decoration: isUnderLine ? TextDecoration.underline : null,
// ),
// );
//
// Widget toText12Auto({Color? color, bool isUnderLine = false, bool isBold = false, bool isCenter = false, int maxLine = 0}) => AutoSizeText(
// this,
// textAlign: isCenter ? TextAlign.center : null,
// maxLines: (maxLine > 0) ? maxLine : null,
// minFontSize: 8,
// style: TextStyle(
// fontSize: 12,
// fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
// color: color ?? MyColors.darkTextColor,
// letterSpacing: -0.72,
// decoration: isUnderLine ? TextDecoration.underline : null,
// ),
// );
//
// Widget toTextAuto({
// Color? color,
// bool isUnderLine = false,
// bool isBold = false,
// bool isCenter = false,
// int maxLine = 0,
// double fontSize = 12,
// double letterSpacing = -0.72,
// double height = 1,
// }) =>
// AutoSizeText(
// this,
// textAlign: isCenter ? TextAlign.center : null,
// maxLines: (maxLine > 0) ? maxLine : null,
// minFontSize: 5,
// style: TextStyle(
// fontSize: fontSize,
// fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
// color: color ?? MyColors.darkTextColor,
// letterSpacing: letterSpacing,
// decoration: isUnderLine ? TextDecoration.underline : null,
// ),
// );
//
// Widget toText13({Color? color, bool isUnderLine = false}) => Text(
// this,
// style: TextStyle(fontSize: 13, fontWeight: FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.52, decoration: isUnderLine ? TextDecoration.underline : null),
// );
//
// Widget toText14({Color? color, bool isUnderLine = false, bool isBold = false, FontWeight? weight, int? maxlines, TextAlign? textAlign, bool isCenter = false}) => Text(
// this,
// textAlign: isCenter ? TextAlign.center : (textAlign ?? TextAlign.left),
// maxLines: maxlines,
// style: TextStyle(
// color: color ?? MyColors.darkTextColor,
// fontSize: 14,
// letterSpacing: -0.48,
// fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.w600),
// decoration: isUnderLine ? TextDecoration.underline : null),
// );
//
// Widget toText16({Color? color, bool isUnderLine = false, bool isBold = false, int? maxlines, double? height}) => Text(
// this,
// maxLines: maxlines,
// style: TextStyle(
// color: color ?? MyColors.darkTextColor,
// fontSize: 16,
// letterSpacing: -0.64,
// height: height,
// fontWeight: isBold ? FontWeight.bold : FontWeight.w600,
// decoration: isUnderLine ? TextDecoration.underline : null,
// ),
// );
//
// Widget toText17({Color? color, bool isBold = false}) => Text(
// this,
// style: TextStyle(color: color ?? MyColors.darkTextColor, fontSize: 17, letterSpacing: -0.68, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toText18({Color? color, bool isBold = false, bool isCentered = false}) => Text(
// this,
// textAlign: isCentered ? TextAlign.center : null,
// style: TextStyle(fontSize: 18, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -1.08),
// );
//
// Widget toText19({Color? color, bool isBold = false}) => Text(
// this,
// style: TextStyle(fontSize: 19, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -1.14),
// );
//
// Widget toText20({Color? color, bool isBold = false, bool isCentered = false}) => Text(
// this,
// textAlign: isCentered ? TextAlign.center : null,
// style: TextStyle(fontSize: 20, fontWeight: isBold ? FontWeight.bold : FontWeight.w600, color: color ?? MyColors.darkTextColor, letterSpacing: -0.4),
// );
//
// Widget toText21({Color? color, bool isBold = false, FontWeight? weight, int? maxlines}) => Text(
// this,
// maxLines: maxlines,
// style: TextStyle(color: color ?? MyColors.grey3AColor, fontSize: 21, letterSpacing: -0.84, fontWeight: weight ?? (isBold ? FontWeight.bold : FontWeight.w600)),
// );
//
// Widget toText22({Color? color, bool isBold = false, bool isCentered = false}) => Text(
// this,
// textAlign: isCentered ? TextAlign.center : null,
// style: TextStyle(height: 1, color: color ?? MyColors.darkTextColor, fontSize: 22, letterSpacing: -1.44, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toText24({Color? color, bool isBold = false}) => Text(
// this,
// style: TextStyle(height: 23 / 24, color: color ?? MyColors.darkTextColor, fontSize: 24, letterSpacing: -1.44, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toText30({Color? color, bool isBold = false}) => Text(
// this,
// style: TextStyle(height: 20 / 32, color: color ?? MyColors.darkTextColor, fontSize: 32, letterSpacing: -1.2, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toText32({Color? color, bool isBold = false, bool isCentered = false}) => Text(
// this,
// textAlign: isCentered ? TextAlign.center : null,
// style: TextStyle(height: 32 / 32, color: color ?? MyColors.darkTextColor, fontSize: 32, letterSpacing: -1.92, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toText44({Color? color, bool isBold = false}) => Text(
// this,
// style: TextStyle(height: 32 / 32, color: color ?? MyColors.darkTextColor, fontSize: 44, letterSpacing: -2.64, fontWeight: isBold ? FontWeight.bold : FontWeight.w600),
// );
//
// Widget toSectionHeading({String upperHeading = "", String lowerHeading = ""}) {
// String upper = "";
// String lower = "";
// String heading = this;
// if (heading.isNotEmpty) {
// List<String> data = heading.split(" ");
//
// if (data.length > 1) {
// upper = data[0];
// data.removeAt(0);
// lower = data.join(" ");
// } else {
// lower = data[0];
// }
// }
// if (upperHeading.isNotEmpty) {
// upper = upperHeading;
// }
// if (lowerHeading.isNotEmpty) {
// lower = lowerHeading;
// }
//
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: [
// if (upper.isNotEmpty) upper.toText12(),
// lower.toText24(isBold: true),
// ],
// );
// }
//
// bool isValidEmail() {
// return RegExp(r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$').hasMatch(this);
// }
//
// String toFormattedDate() {
// String date = this.split("T")[0];
// String time = this.split("T")[1];
// var dates = date.split("-");
// return "${dates[2]} ${getMonth(int.parse(dates[1]))} ${dates[0]} ${DateFormat('hh:mm a').format(DateFormat('hh:mm:ss').parse(time))}";
// }
//
// String getMonth(int month) {
// switch (month) {
// case 1:
// return "January";
// case 2:
// return "February";
// case 3:
// return "March";
// case 4:
// return "April";
// case 5:
// return "May";
// case 6:
// return "June";
// case 7:
// return "July";
// case 8:
// return "August";
// case 9:
// return "September";
// case 10:
// return "October";
// case 11:
// return "November";
// case 12:
// return "December";
// default:
// return "";
// }
// }
// }