gredu_common library
ex is a helper library that provides readable methods with which you can write cleaner looking code.
Classes
- AbstractRandomProvider
- A generator of double values.
- AStack
- CoreRandomProvider
-
A generator of random values using a supplied
math.Random
. - DefaultRandomProvider
-
A generator of pseudo-random double values using the default
math.Random
. - DeviceInfo
- created : Aditya Pratama originalFilename : device_info_util date : 11 Jun 2021 —————————————————————————————————————————————————————————————————————————————
- ExLog
-
Flushbar<
T> - A highly customizable widget so you can notify your user when you fell like he needs a beautiful explanation.
-
FlushbarRoute<
T> -
Grouping<
T, K> - Serves as an step between grouping and folding operations.
- HeightBox
- SizedBox widget with specific height
- HStack
- A widget that displays its children in a horizontal array.
- KeyVal
- created : Aditya Pratama originalFilename : _key_val date : 20 Jun 2021 ————————————————————————————————————————————————————————————————————————————— general object Key Value. use example:
- MaterialResponsiveUiData
- A class that can be queried for breakpoints based on the guidelines in https://material.io/guidelines/layout/responsive-ui.html .
- MobileDeviceInfo
- Combines MobileDeviceType and MobileDeviceSize.
-
On<
T> -
Pair<
T, V> - PKCardPageSkeleton
- PKCardPageSkeleton can be used to provide a Card Page loading card with PKSkeleton cool animation.
- PKCardProfileSkeleton
- PKCardProfileSkeleton can be used to provide a profile loading card with PKSkeleton cool animation.
- RenderVxAppBarTitleBar
- SquareBox
-
SizedBox widget with equal
width
&height
- VelocityTwoIconColumn
- Can be used for two widgets and one icon together vertically .
- VelocityXTextSpan
- VStack
- A widget that displays its children in a vertical array.
- VxAdaptiveNavigation is a wigdet which can be used for navigation throughout the app. On Small screen it use NavigationBar and on Large screen it use NavigationRail.
- VxAnimatedBox
- VxAnimatedBox is similar to AnimatedContainer with the advantages of VxBox
-
VxAnimatedHeightView<
T extends Widget> - VxAppBar
- The VxAppBar displays the toolbar widgets, leading, title, and actions, above the bottom (if any). The bottom is usually used for a TabBar.
- VxAppBarTitleBar
- VxArc
- VxArcClipper
- VxBadge
- VxBadge widget for using common badges as number or dot.
- VxBevel
- VxBlock
- A widget that displays its children in a one-dimensional array.
- VxBox
- A convenience widget that combines common painting, positioning, and sizing widgets.
-
VxBuilder<
T> - A stream builder like widget that accepts mutations and rebuilds after their execution.
- VxCapsule
- VxCard
- A material design card: a panel with slightly rounded corners and an elevation shadow.
- VxCircle
- VxClipShadow
- VxClipShadowPainter
- VxConditional
- Runs a WidgetBuilder's result if the condition is true.
- VxConditionalSwitch
- Renders widgets based on switch case conditions Example:
-
VxConsumer<
T> - A stream builder like widget that accepts mutations and rebuilds after their execution.
- VxContinuousRectangle
- VxDash
- VelocityX widget to show Dashes with gaps if needed. It can be vertical or horizontal.
- VxDecimalList
- VxDecimalList is inspired from html where you can have a numeric index with an item (string) Use VxDecimalList to have a list of strings with index.
- VxDevice
- VxDevice widget can be used for making responsive apps based on if it's mobile or web. In case, if you want more options based on window size, use VxResponsive. You can specify two widgets depends on the screen size mobile and web. They must not be null.
- VxDiagonal
- VxDiagonalClipper
- A widget that clips its child diagonally. Diagonal clipping starts from the position in the axis ends up clipHeight distance from the opposite position
- VxDiscList
- VxDiscList is inspired from html where you can have a circular disk with an item (string) Use VxDiscList to have a list of strings with circular disk of boxes with a defined color.
- VxDivider
- VxEllipse
- VxEnsureVisibleWhenFocused
- Helper class that ensures a Widget is visible when it has the focus For example, for a TextFormField when the keyboard is displayed
- VxGlassmorphic
- VxHalfClipper
- VxHoverToggle
- VxHoverToggle widget can help you for Desktop/Web apps to toggle between two widgets on hover.
- VxInformationParser
- VxInlineBlock
- VxInnerShadow
- VxInterceptor
- Implementation of this class can be used to act before or after a mutation execution.
- VxJson
- VxJson can be used to show json in tree view of widgets
- VxLayout
- VxLayout is a type of LayoutBuilder with some additional power
- VxMarquee
- VxMarqueeState
-
VxMutation<
T extends VxStore?> - An implementation of this class holds the logic for updating the VxStore.
- allow you to interact with the List of pages
- VxNeumorph
- VxNeumorph class to accept list of shadows and a Gradient
- VxNotifier
- Helper widget that executes the provided callbacks with context on execution of the mutations. Useful to show SnackBar or navigate to a different route after a mutation.
- VxObserver
- An observer of changes in navigation.
- VxPasswordPainter
- VxPinView
- VxPinView to give a widget where OTP or Pin screen can be created easily
- VxPinViewState
-
VxPlatform<
A extends Widget, I extends Widget, W extends Widget, D extends Widget> - Sample
- VxPopupMenu
- VxPopupMenu can help you in creating custom popup menus using overlay entry.
- VxPopupMenuController
- VxPopupMenuController gives you access to hide the menu or toggle it using showMenu, hideMenu & toggleMenu.
- VxRandomBox
- A Container Widget that takes up a given width and height and paints itself with a random color.
- VxRating
- VxRating widget to show ratings to the user and the user can change it too. Fully customizable
- Passes on navigation events to a list of NavigatorObserver objects.
- VxResponsive
- VelocityResponsive widget can be used for making responsive apps based on different window sizes. You can specify multiple widgets depends on the screen size like xsmall, small, medium,large, and xlarge. The fallback must not be null. It will be replaced if you don't specity any above widget.
- VxRichText
-
Creates a
AutoSizeText
widget with a TextSpan. - VxRoutePage
- VxScrollHorizontal
- Widget to directly access SingleChildScrollView horizontally.
- VxScrollVertical
- Widget to directly access SingleChildScrollView vertically.
- VxSelectableTextBuilder
- A run of selectable text with a single style.
- VxShifter
- Use it to pin and shift widget useful for making complex ui Eg Container( height: 200, width: 200, decoration: BoxDecoration(shape: BoxShape.circle, color: Color(0xffE0D8F9) ), ).shift(100, alignment: Alignment.bottomRight) ,
- VxShimmer
- VxShimmer widget can be used to provide shimmer effect to any widget.
- VxSizeConfig
- VxSkeleton
- To show skeleton with any widget.
- VxSkeletonState
- VxState
- The coordinating widget that keeps track of mutations and the notify the same to the listening widgets.
- VxStateSwitcher
- VxStepper
- VxStepper widget to have a input enabled counter with 2 buttons, one for addition and one for subtraction with good level of customization.
- VxStepperState
- VxStore
- App's store should extend this class. An instance of this class is given to VxState while initialization only once.
- VxSwiper
- Use this widget VxSwiper to give your list a swipeable effect with full customization.
- VxSwitcher
- VxSwitcher can be used for Desktop and mobile platforms to change the state using AnimatedSwitcher in case of using mobile.
- VxTable
- A widget that uses the table layout algorithm for its children.
- VxTextBuilder
- Flutter widget that automatically resizes text to fit perfectly within its bounds.
- VxTextDropDown
- A material design button for selecting from a list of items.
- VxTextField
- An easy to use implementation of TextField with ready to use props.
- VxTicket
- VxTimeline
- To show a timeline view with filled dot, header and description. Great for showing something like a history
- VxTimelineModel
- VxTimerButton
- Read button
- VxTimerButtonState
- VxToggleRotate
- VxToggleRotate to rotate and animate any widget
- VxTriangle
- VxTwo
- Can be used for two texts together vertically or horizontally.
- VxTwoColumn
- Can be used for two widgets together vertically.
- VxTwoRow
- Can be used for two widgets together horizontally.
- VxUniversal
- VxUniversal is an universal super widget which can be used to do almost everything.
- VxZeroCard
- VxZeroCard can be used to provide a single loading card with PKSkeleton cool animation.
- VxZeroList
- VxZeroList can be used to provide a list of loading cards with PKSkeleton cool animation.
- VxZoom
- VxZoom widget allows a widget to pinch and zoom on top of current context by inserting a OverlayEntry.
- WidthBox
- SizedBox widget with specific width
- ZStack
- A widget that positions its children relative to the edges of its box.
Enums
- DocumentType
- created : Aditya Pratama originalFilename : string_extension date : 19 Jun 2021 —————————————————————————————————————————————————————————————————————————————
- FlushbarDismissDirection
- Indicates the direction in which it is possible to dismiss If vertical, dismiss up will be allowed if FlushbarPosition.TOP If vertical, dismiss down will be allowed if FlushbarPosition.BOTTOM
- FlushbarPosition
- Indicates if flushbar is going to start at the TOP or at the BOTTOM
- FlushbarStatus
- Indicates the animation status FlushbarStatus.SHOWING Flushbar has stopped and the user can see it FlushbarStatus.DISMISSED Flushbar has finished its mission and returned any pending values FlushbarStatus.IS_APPEARING Flushbar is moving towards FlushbarStatus.SHOWING FlushbarStatus.IS_HIDING Flushbar is moving towards [] FlushbarStatus.DISMISSED
- FlushbarStyle
- Indicates if flushbar will be attached to the edge of the screen or not
- MobileDeviceSize
- Symbolic sizes of mobile devices.
- MobileDeviceType
- Types of mobile devices.
- VxArcType
- VxBadgePosition
- VxBadgeType
- VxClickType
- Provide click type either longClick or singleClick
- VxCurve
- VxCurve to provide different types of curves to the neumorphic design. concave is default.
- VxDiagonalPosition
- Defines the corners of the child widget
- VxDividerType
- VxDrawerType
- VxEdge
- VxHoverMode
- VxPageState
- VxPinBorderType
- VxPreviewIndicatorAxis
- VxSkeletonAnimationType
- VxStatus
- Status about the current state
- VxTextFieldBorderType
- VxToastPosition
- Toast position
- VxToastType
- VxWindowSize
- Symbolic window sizes of mobile devices.
Mixins
- ExAlert
- ExInputDialog
- ExLoading
- ExSnackbar
- QueryString
- Vx
- Mixin Vx provides basic operations and utilities
- VxBottomSheet
- VxDialog
- VxDrawer
-
VxEffects<
ON> - Secondary mutation executed based on the result of the first. Similar to chaining actions in Redux. For example, an http request will have a success or a fail side effect after request is complete.
- VxPreview
- VxToast
- VxWeb3
Extensions
- Also on T
- also can be used for performing actions that need the current value as an argument. It returns the current value.
-
Associate
on Iterable<
T> - AssociateString on String
- CenterExtension on Widget
- Center the widget
-
Chunked
on Iterable<
T> - ChunkedString on String
- DateTimeTimeExtension on DateTime
- DateToStringExtension on DateTime
- DurationTimeExtension on Duration
- ElseIf on T?
- ExtensionListUnsafe on List?
- ExtensionUint8List on Uint8List
-
FilterNotNull
on Iterable<
T?> -
FirstOrNull
on Iterable<
T> -
GetOrNull
on Iterable<
T> -
GetOrPut
on Map<
K, V> -
GroupingBy
on Iterable<
T> - GroupingByString on String
- IntExtensionHelper on int
- created : Aditya Pratama originalFilename : extension_int date : 22 Aug 2021 —————————————————————————————————————————————————————————————————————————————
-
IterableBasics2
on Iterable<
T> -
IterableOfDoubleSC
on Iterable<
double> -
IterableOfIntSC
on Iterable<
int> - Let on T
- let can be used to invoke one or more functions on results of call chains.
-
MapIndexed
on Iterable<
T> -
MapNotNull
on Iterable<
T> - MiscExtensions on String?
- NullableStringIsNotNullOrEmptyExtension on String?
- NullableStringIsNullOrEmptyExtension on String?
-
NumIterableBasics
on Iterable<
E> - Utility extension methods for Iterables containing nums.
- NumTimeExtension on T
- OrElse on T?
- RangeNum on T
- ScrollExtension on Widget
- Extension method to directly access SingleChildScrollView with any widget without wrapping or with dot operator.
-
SingleOrNull
on Iterable<
T> - StringToDateExtension on String
- created : Aditya Pratama originalFilename : extension_date date : 22 Jun 2021 ————————————————————————————————————————————————————————————————————————————— scope : dateTime <-> string
- StringToDateFormatterExtension on String
- StringWidgetsExtension on String
- TakeIf on T?
-
takeIf returns the current value if the given block is satisifed, will
return
null
if not. - TakeUnless on T?
-
takeUnless returns the current value if the given block is not satisifed,
will return
null
if it is. - TimeOfDayExtension on TimeOfDay
-
Unique
on List<
E> - created : Fadqurrosyidik originalFilename : extension_list date : 27 Sept 2021 ————————————————————————————————————————————————————————————————————————————— scope : List
- VelocityXRichTextExtension on RichText
- VelocityXTextSpanExtension on TextSpan
- VxAnimatedContainerWidgetExtension on Widget
- VxBadgeExtension on Widget
- VxBoolExtension on bool
- VxBreakpointUtils on BoxConstraints
- VxCardExtension on Widget
-
VxCenterBuilderExtension
on VxWidgetBuilder<
Widget> - VxContainerWidgetExtension on Widget
- VxContextExtensions on BuildContext
-
Extensions for general basic
Context
- VxDateTimeExtension on DateTime
- Date Time Extension Methods
-
VxDropDownExtension
on List<
String> - VxDurationString on String
-
VxExtensionGlobalKey
on GlobalKey<
State< StatefulWidget> > -
VxExtensionList
on List<
T> -
VxExtensionMap
on Map<
K, V> - VxGestureExtensions on Widget
- VxGlassWidgetExtension on Widget
- VxHumanizedDuration on Duration
- VxIcon on Icon
- Extension method to directly access Icon.
- VxIntExtension on int
- Extension method for integers.
-
VxIterableBasics
on Iterable<
E> - Utility extension methods for the native Iterable class.
-
VxListStringExtension
on List<
String> -
VxListWidgetExtension
on List<
Widget> - Extension Methods for List of widgets.
- VxMarqueeExtension on String
- VxNullableStringIsEmptyOrNullExtension on String?
- VxNullableStringIsNotEmptyAndNotNullExtension on String?
- VxNumExtension on num
- Extension Methods & Widgets for the numbers
- VxObjectExtensions on Widget
- Extension Methods for Alignment of the objects.
- VxOpacityExtension on Widget
- Extension method for providing opacity on the top of widgets
- VxPaddingExtensions on Widget
- Extension to provide Padding to any widget.
- VxRandomContainerWidgetExtension on Widget
- Random Color box extension method
- VxRoutesWidgetsExtension on Widget
- VxScrollControllerExtension on ScrollController
- Extensions for ScrollController
- VxSelectableTextExtensions on SelectableText
- VxShapesExtension on Widget
- VxShiftWidgetExt on Widget
- VxShimmerExtension on Widget
- VxSizedBoxExtension on Widget
- A box with a specified size.
- VxSkeletonExtension on Widget
- VxStringExtension on String
- Extension Methods & Widgets for the strings
-
VxTableExtensions
on List<
TableRow> - VxTextExtensions on Text
- VxThemeExtension on Widget
- Extension method to directly access material Theme with any widget without wrapping or with dot operator.
- VxToastExtension on BuildContext
- VxToggleExtension on Widget
- VxTransformExtension on Widget
- Extension method to directly transform any widget without wrapping or with dot operator.
- VxWeb3Extension on String
- VxWidgetsExtension on Widget
- VxZoomExtensions on Widget
Constants
- asciiEnd → const int
- asciiStart → const int
- FLUSHBAR_ROUTE_NAME → const String
- lowerAlphaEnd → const int
- lowerAlphaStart → const int
- maxSupportedInteger → const int
- minSupportedInteger → const int
- numericEnd → const int
- numericStart → const int
- upperAlphaEnd → const int
- upperAlphaStart → const int
Functions
-
asyncGuard<
T> (Future< T> callback(), [T? defaultValue]) → Future<T?> - Evaluates the function asynchonically wrapping the body with try/catch and returns default value if error was raised or return value is null Originally available at https://pub.dev/packages/guard
-
getView(
dynamic child) → Widget -
guard<
T> (T callback(), [T? defaultValue]) → T? - Evaluates the function wrapping the body with try/catch and returns default value if error was raised or return value is null Originally available at https://pub.dev/packages/guard
-
iff<
T> (bool statement, T branch()) → T? - The iff method can be used as a normal if statement, or as an expression, i.e. it returns a value.
-
isIn<
T> (Iterable< T> list) → _WhenCheck - Allows for checking if a when value is in a list.
-
isNotIn<
T> (Iterable< T> list) → _WhenCheck - Allows for checking if a when value is not in a list.
-
isNotType<
V> () → _WhenCheck - Allows for checking if a when value is not of a certain type.
-
isType<
V> () → _WhenCheck - Allows for checking if a when value is of a certain type.
-
log(
dynamic message) → void -
logD(
dynamic message) → void -
logE(
dynamic message) → void -
logI(
dynamic message) → void -
logW(
dynamic message) → void -
myBoxDec(
dynamic animation, {dynamic isCircle = false, dynamic isDark = false}) → Decoration -
myBoxDesc
to reuse withPKSkeleton
-
print(
dynamic message) → void -
randomAlpha(
int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) → String -
Generates a random string of
length
with only alpha characters. -
randomAlphaNumeric(
int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) → String -
Generates a random string of
length
with alpha-numeric characters. -
randomBetween(
int from, int to, {AbstractRandomProvider provider = const DefaultRandomProvider()}) → int -
Generates a random integer where
from
<=to
inclusive where 0 <= from <= to <= 999999999999999 -
randomMerge(
String a, String b) → String -
Merge
a
withb
and shuffle. -
randomNumeric(
int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) → String -
Generates a random string of
length
with only numeric characters. -
randomString(
int length, {int from = asciiStart, int to = asciiEnd, AbstractRandomProvider provider = const DefaultRandomProvider()}) → String -
Generates a random string of
length
with characters between asciifrom
toto
. Defaults to characters of ascii '!' to '~'. -
range<
T extends num> (T value, {T? to, T? until, T? downTo, T? step}) → List< T> - Creates progression ranges of given type value.
-
repeat<
T> (int iterations, T lambda(int index)) → List< T> - The repeat method allows you to easily call a lambda a certain number of times.
-
showFlushbar<
T> ({required BuildContext context, required Flushbar flushbar}) → FlushbarRoute -
tryy<
T> (T branch(), {List< On> catches = const []}) → T? - The tryy method can be used as a normal try-catch block, or as an expression, i.e. it returns a value.
-
when<
T, V> (T value, Map< T, V Function()> branches) → V? - when defines a conditional expression with multiple branches.
-
withAnimation<
T> ({required TickerProvider vsync, required Tween< T> tween, required AnimationUpdateCallBack<T?> callBack, Duration duration = const Duration(seconds: 1), double initialValue = 0.0, Curve curve = Curves.linear, Animation? customAnimation}) → AnimationController - To perform forward animation in a simpler way
-
withRepeatAnimation<
T> ({required TickerProvider vsync, required Tween< T> tween, required AnimationUpdateCallBack<T?> callBack, Duration duration = const Duration(seconds: 1), double initialValue = 0.0, Curve curve = Curves.linear, double? lowerBound, double? upperBound, bool isRepeatReversed = false, Duration? repeatPeriod, Animation? customAnimation}) → AnimationController - To perform repeat animation in a simpler way
Typedefs
-
AggregateOperation<
T, K, R> = R Function(K key, R? accumulator, T element, bool first) - A function that is invoked on each element.
-
AnimationUpdateCallBack<
T> = dynamic Function(T animationVal, double controllerVal) -
ChunkedTransform<
T, R> = R Function(T chunk) -
ContextCallback
= void Function(BuildContext context, VxMutation<
VxStore?> mutation, {VxStatus? status}) - Function signature for the callback with context.
- FlushbarStatusCallback = void Function(FlushbarStatus? status)
- FnBuilderCallback = void Function()
- MenuBuilderCallback = Widget Function()
- OnRetry = void Function()
- OnStateChanged = Widget Function(VxPageState state)
- OnTap = void Function(Flushbar flushbar)
-
VxMutationBuilder
= VxMutation<
VxStore?> Function() - Function signature for mutations that has deferred execution. VxMutation.next accepts functions with this signature.
- VxPageBuilder = Page Function(Uri uri, dynamic params)
-
VxStateWidgetBuilder<
T> = Widget Function(BuildContext context, T store, VxStatus? status) - VxWidgetBuilder gives context and status back. Status are more useful when you use vx effects
- VxToggleBuilder = Widget Function(Widget child)
Exceptions / Errors
- ProviderError
-
ProviderError thrown when a
Provider
provides a value outside the expected [0, 1) range.