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 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 ""; // } // } // }