presentum library
A declarative cross-platform Flutter engine with focus on state to display presentations, such as campaigns, banners, notifications, etc., anywhere, anytime.
Classes
- AllOfEligibility
- ALL nested conditions must be satisfied (AND combinator).
-
AllOfExtractor<
S extends HasMetadata> - Extracts AllOfEligibility from metadata (nested extractors).
- AllOfRule
- Evaluates AllOfEligibility conditions (AND combinator).
- AnyOfEligibility
- At least ONE nested condition must be satisfied (OR combinator).
-
AnyOfExtractor<
S extends HasMetadata> - Extracts AnyOfEligibility from metadata (nested extractors).
- AnyOfRule
- Evaluates AnyOfEligibility conditions (OR combinator).
- AnySegmentEligibility
- A value from context must be a member of at least one segment in the required set.
-
AnySegmentExtractor<
S extends HasMetadata> - Extracts AnySegmentEligibility from metadata.
- AnySegmentRule
- Evaluates AnySegmentEligibility conditions.
- BatchingListUpdateCallback
- A batching implementation of ListUpdateCallback that can batch consecutive operations of the same type.
- BooleanFlagEligibility
- A boolean flag in context must match the required value.
-
BooleanFlagExtractor<
S extends HasMetadata> - Extracts BooleanFlagEligibility from metadata.
- BooleanFlagRule
- Evaluates BooleanFlagEligibility conditions.
- ChangeOperation
- Represents a change operation.
- CollectingListUpdateCallback
- A ListUpdateCallback that collects all operations into lists for later processing.
- ConstantEligibility
- A direct boolean value (useful for hard-coded eligibility).
-
ConstantExtractor<
S extends HasMetadata> - Extracts ConstantEligibility from metadata.
- ConstantRule
- Evaluates ConstantEligibility conditions.
-
DefaultEligibilityResolver<
S> - Default implementation of EligibilityResolver.
- DiffCallback
- Abstract callback class used by DiffUtil while calculating the diff between two lists.
- DiffResult
- This class holds the information about the result of a DiffUtil.calculateDiff call.
- DiffUtil
- Main DiffUtil class containing the core algorithm implementation.
- DiffUtils
- Utility class with convenience methods for common DiffUtil operations.
- Eligibility
- Base class for all eligibility conditions.
-
EligibilityExtractor<
S> - Extracts structured Eligibility conditions from a subject.
-
EligibilityResolver<
S> - Resolves whether a subject is eligible based on extracted conditions.
-
EligibilityRule<
T extends Eligibility> - Evaluates a specific type of Eligibility against a runtime context.
- HasMetadata
- Interface for subjects that have metadata.
-
InheritedPresentum<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Inherited presentum widget.
-
InheritedPresentumItem<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Inherited widget that provides the PresentumItem instance to the widget tree.
-
InMemoryPresentumStorage<
S extends PresentumSurface, V extends PresentumVisualVariant> - In-memory implementation of the presentum storage.
- InsertOperation
- Represents an insert operation.
-
IPresentumEventHandler<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event handler for presentation item events.
-
IPresentumGuard<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Guard for the presentum.
-
IPresentumTransitionObserver<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Observer for Presentum state transitions.
-
ItemActivatedChange<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - An item became the active item in a slot.
-
ItemCallback<
T> - Callback for calculating the diff between two non-null items in a list.
-
ItemDeactivatedChange<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - An item was removed from the active slot.
-
ItemDequeuedChange<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - An item was removed from a slot's queue.
-
ItemQueuedChange<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - An item was added to a slot's queue.
-
ListDiffCallback<
T> - A simple implementation of DiffCallback for comparing two lists directly.
- ListUpdateCallback
- Interface for receiving update operations from DiffResult.
-
MetadataExtractor<
S extends HasMetadata> - Base class for metadata-based extractors.
- MoveOperation
- Represents a move operation.
-
NoOpPresentumStorage<
S extends PresentumSurface, V extends PresentumVisualVariant> - No-op implementation of the presentum storage. Used when storage is not provided.
- NotEligibility
- Inverts the result of a nested condition (NOT combinator).
- NotRule
- Evaluates NotEligibility conditions (NOT combinator).
- NumericComparisonEligibility
- A numeric value from context must satisfy a comparison with a threshold.
-
NumericComparisonExtractor<
S extends HasMetadata> - Extracts NumericComparisonEligibility from metadata.
- NumericComparisonRule
- Evaluates NumericComparisonEligibility conditions.
-
Presentum<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - The main class of the package.
-
PresentumConvertedEvent<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event when a presentation item is converted.
-
PresentumDismissedEvent<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event when a presentation item is dismissed.
-
PresentumEngine<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Presentum engine.
-
PresentumEvent<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event that can occur during presentation lifecycle.
-
PresentumGuard<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Guard for the router.
-
PresentumHistoryEntry<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Presentum history entry.
-
PresentumItem<
TPayload extends PresentumPayload< S, V> , S extends PresentumSurface, V extends PresentumVisualVariant> -
A concrete decision: "show
payloadwithoptiononsurfacenow". -
PresentumOption<
S extends PresentumSurface, V extends PresentumVisualVariant> -
One renderable option of an item for a given
surfaceand visualvariantstyle. -
PresentumOutlet<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Outlet that can render items from a surface of the same type.
-
PresentumOutlet$Composition<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Outlet that can render items from a surface of the same type.
-
PresentumOutlet$Composition2<
TItem1 extends PresentumItem< PresentumPayload< , TItem2 extends PresentumItem<S1, V1> , S1, V1>PresentumPayload< , S1 extends PresentumSurface, V1 extends PresentumVisualVariant, S2 extends PresentumSurface, V2 extends PresentumVisualVariant>S2, V2> , S2, V2> - Cross-presentum composition outlet for two different presentums.
-
PresentumOutlet$Composition3<
TItem1 extends PresentumItem< PresentumPayload< , TItem2 extends PresentumItem<S1, V1> , S1, V1>PresentumPayload< , TItem3 extends PresentumItem<S2, V2> , S2, V2>PresentumPayload< , S1 extends PresentumSurface, S2 extends PresentumSurface, S3 extends PresentumSurface, V1 extends PresentumVisualVariant, V2 extends PresentumVisualVariant, V3 extends PresentumVisualVariant>S3, V3> , S3, V3> - Cross-presentum composition outlet for three different presentums.
-
PresentumPayload<
S extends PresentumSurface, V extends PresentumVisualVariant> - Generic payload that contain options that can be presented across multiple surfaces.
-
PresentumShownEvent<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event when a presentation item is shown.
-
PresentumSlot<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - A presentation slot is the per‑surface queue:
-
PresentumState<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Sealed root type for presentation state.
-
PresentumState$Immutable<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> -
PresentumState$Mutable<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Mutable state.
-
PresentumStateBase<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Base class for presentation state implementations.
-
PresentumStateDiff<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Computed difference between two Presentum states.
-
PresentumStateObserver<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Presentum state observer.
-
PresentumStateTransition<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Represents a state transition in the Presentum engine.
-
PresentumStorage<
S extends PresentumSurface, V extends PresentumVisualVariant> - Storage contract used by guards (domain provides implementation).
-
PresentumStorageEventHandler<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Event handler for the presentum storage.
- RecurringTimePatternEligibility
- Time must match a recurring weekly pattern (cron-like).
-
RecurringTimePatternExtractor<
S extends HasMetadata> - Extracts RecurringTimePatternEligibility from metadata.
- RecurringTimePatternRule
- Evaluates RecurringTimePatternEligibility conditions.
- RemoveOperation
- Represents a remove operation.
- SetMembershipEligibility
- A value must be present in a specified set.
-
SetMembershipExtractor<
S extends HasMetadata> - Extracts SetMembershipEligibility from metadata.
- SetMembershipRule
- Evaluates SetMembershipEligibility conditions.
-
SimpleItemCallback<
T> - A simple ItemCallback implementation that uses object equality and a custom ID function.
-
SlotChange<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Base class for all slot changes.
-
SlotDiff<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant>S, V> , S, V> - Computed difference for a single slot/surface.
- StringMatchEligibility
- A string value from context must match a pattern.
-
StringMatchExtractor<
S extends HasMetadata> - Extracts StringMatchEligibility from metadata.
- StringMatchRule
- Evaluates StringMatchEligibility conditions.
- TimeOfDay
- Time of day representation (hours and minutes).
- TimeRangeEligibility
- Time must fall within a specified range (inclusive of start, exclusive of end).
-
TimeRangeExtractor<
S extends HasMetadata> - Extracts TimeRangeEligibility from metadata.
- TimeRangeRule
- Evaluates TimeRangeEligibility conditions.
Enums
- DayOfWeek
- Days of the week for recurring patterns.
- NumericComparison
- Comparison operators for numeric eligibility.
- OutletGroupMode
- How a PresentumOutlet should select items from a surface slot.
- PopupConflictStrategy
- Strategy for handling popup conflicts when a new popup activates while another is already showing.
- PopupPresentResult
- Result of presenting a popup.
- PresentumStateIntention
- PresentumState$Mutable intention to change and update state at application.
Mixins
-
PresentumActiveSurfaceItemObserverMixin<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant, T extends StatefulWidget>S, V> , S, V> - Observes a surface's slot for active item changes and executes custom logic.
- PresentumOutlet$CompositionMixin
- Mixin that contains the logic for collecting items from a surface slot.
-
PresentumPopupSurfaceStateMixin<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant, T extends StatefulWidget>S, V> , S, V> - Manages popup presentation (dialogs/fullscreen widgets) for a surface.
- PresentumSurface
- Marker for all presentum surfaces.
- PresentumVisualVariant
- Marker for all presentum visual styles.
Extension Types
- MetadataKeys
- Standard metadata field names used across the eligibility system.
Extensions
-
MetadataExtraction
on Map<
String, dynamic> - Type-safe utilities for extracting structured data from metadata.
- PresentumBuildContextExtension on BuildContext
- Extension methods for BuildContext.
Functions
-
createStandardRules(
) → List< EligibilityRule< Eligibility> > - Convenience function to create a standard rule set with all built-in rules.
Typedefs
-
CompositionItemsResolver<
TItem> = List< TItem> Function(List<TItem> items) - Resolver function that decides how to select items from a surface slot.
-
CompositionItemsResolver2<
TItem1, TItem2> = List< PresentumItem< Function(List<PresentumPayload< >PresentumSurface, PresentumVisualVariant> , PresentumSurface, PresentumVisualVariant>TItem1> items1, List<TItem2> items2) - Resolver function that decides how to combine items from two different presentums.
-
CompositionItemsResolver3<
TItem1, TItem2, TItem3> = List< PresentumItem< Function(List<PresentumPayload< >PresentumSurface, PresentumVisualVariant> , PresentumSurface, PresentumVisualVariant>TItem1> items1, List<TItem2> items2, List<TItem3> items3) - Resolver function that decides how to combine items from three different presentums.
-
ConditionalSlotVisitor<
TItem extends PresentumItem< PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant> = bool Function(S surface, PresentumSlot<S, V> , S, V>TItem, S, V> slot) - Signature for the callback to PresentumState.visitSlots.
-
PresentumOutletBuilder<
T> = Widget Function(BuildContext context, T item) -
Builder function that receives the BuildContext and the
TItemitem. - PresentumOutletPlaceholderBuilder = Widget Function(BuildContext context)
- Builder function that receives the BuildContext and returns a placeholder widget.
-
SlotChangeMatch<
R, T extends SlotChange< TItem, S, V> , TItem extends PresentumItem<PresentumPayload< , S extends PresentumSurface, V extends PresentumVisualVariant> = R Function(T value)S, V> , S, V> - Signature for slot change pattern matching callbacks.
Exceptions / Errors
- EligibilityException
- Base class for all eligibility exceptions.
- EvaluationException
- Thrown when an eligibility rule evaluation fails unexpectedly.
- MalformedMetadataException
- Thrown when metadata cannot be parsed into an eligibility condition.