LCOV - code coverage report
Current view: top level - lib/responsive - responsive.dart (source / functions) Hit Total Coverage
Test: Folly Fields Lines: 0 42 0.0 %
Date: 2023-05-18 02:05:34 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/widgets.dart';
       2             : 
       3             : ///
       4             : ///
       5             : ///
       6             : mixin Responsive on Widget {
       7             :   ///
       8             :   ///
       9             :   ///
      10             :   int? get sizeExtraSmall;
      11             : 
      12             :   ///
      13             :   ///
      14             :   ///
      15           0 :   int get safeSizeExtraSmall => sizeExtraSmall ?? safeSizeSmall;
      16             : 
      17             :   ///
      18             :   ///
      19             :   ///
      20             :   int? get sizeSmall;
      21             : 
      22             :   ///
      23             :   ///
      24             :   ///
      25           0 :   int get safeSizeSmall => sizeSmall ?? safeSizeMedium;
      26             : 
      27             :   ///
      28             :   ///
      29             :   ///
      30             :   int? get sizeMedium;
      31             : 
      32             :   ///
      33             :   ///
      34             :   ///
      35           0 :   int get safeSizeMedium => sizeMedium ?? 12;
      36             : 
      37             :   ///
      38             :   ///
      39             :   ///
      40             :   int? get sizeLarge;
      41             : 
      42             :   ///
      43             :   ///
      44             :   ///
      45           0 :   int get safeSizeLarge => sizeLarge ?? safeSizeMedium;
      46             : 
      47             :   ///
      48             :   ///
      49             :   ///
      50             :   int? get sizeExtraLarge;
      51             : 
      52             :   ///
      53             :   ///
      54             :   ///
      55           0 :   int get safeSizeExtraLarge => sizeExtraLarge ?? safeSizeLarge;
      56             : 
      57             :   ///
      58             :   ///
      59             :   ///
      60             :   double? get minHeight;
      61             : 
      62             :   ///
      63             :   ///
      64             :   ///
      65           0 :   double get safeMinHeight => minHeight ?? -1;
      66             : 
      67             :   ///
      68             :   ///
      69             :   ///
      70           0 :   int responsiveSize(ResponsiveSize size) {
      71             :     switch (size) {
      72           0 :       case ResponsiveSize.extraSmall:
      73           0 :         return safeSizeExtraSmall;
      74           0 :       case ResponsiveSize.small:
      75           0 :         return safeSizeSmall;
      76           0 :       case ResponsiveSize.medium:
      77           0 :         return safeSizeMedium;
      78           0 :       case ResponsiveSize.large:
      79           0 :         return safeSizeLarge;
      80           0 :       case ResponsiveSize.extraLarge:
      81           0 :         return safeSizeExtraLarge;
      82             :     }
      83             :   }
      84             : }
      85             : 
      86             : ///
      87             : ///
      88             : ///
      89             : enum ResponsiveSize {
      90             :   extraSmall,
      91             :   small,
      92             :   medium,
      93             :   large,
      94             :   extraLarge,
      95             : }
      96             : 
      97             : ///
      98             : ///
      99             : ///
     100             : extension ResponsiveSizeExtension on ResponsiveSize {
     101             :   ///
     102             :   ///
     103             :   ///
     104           0 :   int get value {
     105             :     switch (this) {
     106           0 :       case ResponsiveSize.extraSmall:
     107             :         return 1;
     108           0 :       case ResponsiveSize.small:
     109             :         return 2;
     110           0 :       case ResponsiveSize.medium:
     111             :         return 3;
     112           0 :       case ResponsiveSize.large:
     113             :         return 4;
     114           0 :       case ResponsiveSize.extraLarge:
     115             :         return 5;
     116             :     }
     117             :   }
     118             : 
     119             :   ///
     120             :   ///
     121             :   ///
     122           0 :   bool operator >(ResponsiveSize other) => value > other.value;
     123             : 
     124             :   ///
     125             :   ///
     126             :   ///
     127           0 :   bool operator >=(ResponsiveSize other) => value >= other.value;
     128             : 
     129             :   ///
     130             :   ///
     131             :   ///
     132           0 :   bool operator <(ResponsiveSize other) => value < other.value;
     133             : 
     134             :   ///
     135             :   ///
     136             :   ///
     137           0 :   bool operator <=(ResponsiveSize other) => value <= other.value;
     138             : 
     139             :   ///
     140             :   ///
     141             :   ///
     142           0 :   bool equals(ResponsiveSize other) => value == other.value;
     143             : }
     144             : 
     145             : ///
     146             : ///
     147             : ///
     148             : abstract class ResponsiveStateless extends StatelessWidget with Responsive {
     149             :   @override
     150             :   final int? sizeExtraSmall;
     151             : 
     152             :   @override
     153             :   final int? sizeSmall;
     154             : 
     155             :   @override
     156             :   final int? sizeMedium;
     157             : 
     158             :   @override
     159             :   final int? sizeLarge;
     160             : 
     161             :   @override
     162             :   final int? sizeExtraLarge;
     163             : 
     164             :   @override
     165             :   final double? minHeight;
     166             : 
     167             :   ///
     168             :   ///
     169             :   ///
     170           0 :   const ResponsiveStateless({
     171             :     this.sizeExtraSmall,
     172             :     this.sizeSmall,
     173             :     this.sizeMedium,
     174             :     this.sizeLarge,
     175             :     this.sizeExtraLarge,
     176             :     this.minHeight,
     177             :     super.key,
     178             :   })  : assert(
     179           0 :           sizeExtraSmall == null || sizeExtraSmall > 0,
     180             :           'sizeExtraSmall must be greater than zero.',
     181             :         ),
     182             :         assert(
     183           0 :           sizeSmall == null || sizeSmall > 0,
     184             :           'sizeSmall must be greater than zero.',
     185             :         ),
     186             :         assert(
     187           0 :           sizeMedium == null || sizeMedium > 0,
     188             :           'sizeMedium must be greater than zero.',
     189             :         ),
     190             :         assert(
     191           0 :           sizeLarge == null || sizeLarge > 0,
     192             :           'sizeLarge must be greater than zero.',
     193             :         ),
     194             :         assert(
     195           0 :           sizeExtraLarge == null || sizeExtraLarge > 0,
     196             :           'sizeExtraLarge must be greater than zero.',
     197             :         ),
     198             :         assert(
     199           0 :           minHeight == null || minHeight >= 0,
     200             :           'minHeight must be equal or greater than zero.',
     201             :         );
     202             : }
     203             : 
     204             : ///
     205             : ///
     206             : ///
     207             : abstract class ResponsiveStateful extends StatefulWidget with Responsive {
     208             :   @override
     209             :   final int? sizeExtraSmall;
     210             : 
     211             :   @override
     212             :   final int? sizeSmall;
     213             : 
     214             :   @override
     215             :   final int? sizeMedium;
     216             : 
     217             :   @override
     218             :   final int? sizeLarge;
     219             : 
     220             :   @override
     221             :   final int? sizeExtraLarge;
     222             : 
     223             :   @override
     224             :   final double? minHeight;
     225             : 
     226             :   ///
     227             :   ///
     228             :   ///
     229           0 :   const ResponsiveStateful({
     230             :     this.sizeExtraSmall,
     231             :     this.sizeSmall,
     232             :     this.sizeMedium,
     233             :     this.sizeLarge,
     234             :     this.sizeExtraLarge,
     235             :     this.minHeight,
     236             :     super.key,
     237             :   })  : assert(
     238           0 :           sizeExtraSmall == null || sizeExtraSmall > 0,
     239             :           'sizeExtraSmall must be greater than zero.',
     240             :         ),
     241             :         assert(
     242           0 :           sizeSmall == null || sizeSmall > 0,
     243             :           'sizeSmall must be greater than zero.',
     244             :         ),
     245             :         assert(
     246           0 :           sizeMedium == null || sizeMedium > 0,
     247             :           'sizeMedium must be greater than zero.',
     248             :         ),
     249             :         assert(
     250           0 :           sizeLarge == null || sizeLarge > 0,
     251             :           'sizeLarge must be greater than zero.',
     252             :         ),
     253             :         assert(
     254           0 :           sizeExtraLarge == null || sizeExtraLarge > 0,
     255             :           'sizeExtraLarge must be greater than zero.',
     256             :         ),
     257             :         assert(
     258           0 :           minHeight == null || minHeight >= 0,
     259             :           'minHeight must be equal or greater than zero.',
     260             :         );
     261             : }

Generated by: LCOV version 1.14