borderWithPattern static method

BorderWithPattern? borderWithPattern(
  1. dynamic value, {
  2. required Color? evalColor(
    1. Object? expr
    ),
})

Implementation

static BorderWithPattern? borderWithPattern(
  dynamic value, {
  required Color? Function(Object? expr) evalColor,
}) {
  if (value == null || value is! Map) return null;

  final strokeWidth = NumUtil.toDouble(value['borderWidth']) ?? 0;

  if (strokeWidth <= 0) return null;

  final borderColor = evalColor(value['borderColor']) ?? Colors.transparent;
  final dashPattern =
      To.dashPattern(value['borderType.dashPattern']) ?? const [3, 1];
  final strokeCap =
      To.strokeCap(value['borderType.strokeCap']) ?? StrokeCap.butt;
  final borderGradiant = To.gradient(as$<JsonLike>(value['borderGradiant']),
      evalColor: evalColor);

  final BorderPattern borderPattern =
      To.borderPattern(value['borderType.borderPattern']) ??
          BorderPattern.solid;
  final strokeAlign =
      To.strokeAlign(value['strokeAlign']) ?? StrokeAlign.center;

  return BorderWithPattern(
    strokeWidth: strokeWidth,
    color: borderColor,
    dashPattern: dashPattern,
    strokeCap: strokeCap,
    gradient: borderGradiant,
    borderPattern: borderPattern,
    strokeAlign: strokeAlign,
  );
}