51 lines
1.1 KiB
Dart
51 lines
1.1 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
extension NumExt on num {
|
|
String fixed({decimals = 2}) {
|
|
String formatted = toStringAsFixed(decimals);
|
|
if (formatted.contains('.')) {
|
|
formatted = formatted.replaceAll(RegExp(r'0*$'), '');
|
|
if (formatted.endsWith('.')) {
|
|
formatted = formatted.substring(0, formatted.length - 1);
|
|
}
|
|
}
|
|
return formatted;
|
|
}
|
|
}
|
|
|
|
extension DoubleExt on double {
|
|
moreOrEqual(double value) {
|
|
return this > value || (value - this).abs() < precisionErrorTolerance + 1;
|
|
}
|
|
}
|
|
|
|
extension OffsetExt on Offset {
|
|
double getCrossAxisOffset(Axis direction) {
|
|
return direction == Axis.vertical ? dx : dy;
|
|
}
|
|
|
|
double getMainAxisOffset(Axis direction) {
|
|
return direction == Axis.vertical ? dy : dx;
|
|
}
|
|
|
|
bool less(Offset offset) {
|
|
if (dy < offset.dy) {
|
|
return true;
|
|
}
|
|
if (dy == offset.dy && dx < offset.dx) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
extension RectExt on Rect {
|
|
doRectIntersect(Rect rect) {
|
|
return left < rect.right &&
|
|
right > rect.left &&
|
|
top < rect.bottom &&
|
|
bottom > rect.top;
|
|
}
|
|
}
|