@anglr/notifications
Version:
Angular module for displaying notifications
137 lines • 4.91 kB
TypeScript
import { InjectionToken, EventEmitter, Type, ExistingProvider, FactoryProvider, ValueProvider } from '@angular/core';
import { NotificationSeverity, Notification } from '@anglr/common';
/**
* Token for injecting options for notifications components
*/
export declare const NOTIFICATIONS_OPTIONS: InjectionToken<NotificationsOptions>;
/**
* Css classes for notifications component
*/
export interface NotificationsOptionsCss {
/**
* Css class applied to root div of notifications
*/
rootDiv?: string;
}
/**
* Options for notifications component
*/
export interface NotificationsOptions<TMessageCssClasses = unknown, TOptions extends NotificationMessageOptions<TMessageCssClasses> = NotificationMessageOptions<TMessageCssClasses>> {
/**
* Options passed to each message
*/
messageOptions?: TOptions;
/**
* Css classes used within notifications component
*/
cssClasses: NotificationsOptionsCss;
/**
* Gets component type used for displaying notification message
* @param severity - Notification severity that should be displayed
*/
getNotificationMessageComponent: (severity: NotificationSeverity) => Type<NotificationMessage<TMessageCssClasses, TOptions>>;
}
/**
* Token for injecting options for notification message component
*/
export declare const NOTIFICATION_MESSAGE_OPTIONS: InjectionToken<NotificationMessageOptions>;
/**
* Css classes for default notification message
*/
export interface NotificationMessageCss {
/**
* Css class that is applied to div when you can close message by clicking on it
*/
clickable?: string;
/**
* Css always applied to message div
*/
messageDiv?: string;
/**
* Prefix of css class applied to message div, suffix is according NotificationType
*/
messageTypePrefix?: string;
}
/**
* Options for notification message
*/
export interface NotificationMessageOptions<TCssClasses = unknown> {
/**
* Indication whether is message closed by clicking on it
*/
clickToClose: boolean;
/**
* Maximal allowed length of notification message
*/
maxLength: number;
/**
* Css classes used within notification message component
*/
cssClasses: TCssClasses;
}
/**
* Component used for displaying notification message must implement this interface
*/
export interface NotificationMessage<TCssClasses = unknown, TOptions extends NotificationMessageOptions<TCssClasses> = NotificationMessageOptions<TCssClasses>> {
/**
* Represents notification that will be displayed
*/
item: Notification;
/**
* Options used for notification message
*/
get options(): TOptions;
set options(value: Partial<TOptions>);
/**
* Occurs when notification is closed by user
*/
closed: EventEmitter<Notification>;
/**
* Explicitly runs invalidation of content (change detection)
*/
invalidateVisuals(): void;
}
/**
* Token for injecting service that can be used for obtaining type of component for notification message
*/
export declare const NOTIFICATION_MESSAGE_SERVICE: InjectionToken<NotificationMessageService>;
/**
* Represents service that can be used for obtaining notification message component type
*/
export interface NotificationMessageService<TMessageCssClasses = unknown, TOptions extends NotificationMessageOptions<TMessageCssClasses> = NotificationMessageOptions<TMessageCssClasses>> {
/**
* Gets component type used for displaying notification message
* @param severity - Notification severity that should be displayed
*/
getNotificationMessageComponent(severity: NotificationSeverity): Type<NotificationMessage<TMessageCssClasses, TOptions>>;
}
/**
* Factory for creating named `GlobalNotificationsProvider` or `LocalNotificationsProvider`
*/
export interface NamedNotificationsProviderFactory {
/**
* Creates named `FactoryProvider` for global or local notifications
* @param name - Name of scope for notifications provider
* @param customNotificationsToken - Optional type or token that should be provided for custom notifications
*/
(name: string, customNotificationsToken?: Function | Type<any> | InjectionToken<unknown> | string): FactoryProvider | [FactoryProvider, ValueProvider];
}
/**
* Global notifications provider that allows creating global notifications
*/
export interface GlobalNotificationsProvider extends ExistingProvider {
/**
* Gets named global notifications provider
*/
named: NamedNotificationsProviderFactory;
}
/**
* Local notifications provider that allows creating local notifications
*/
export interface LocalNotificationsProvider extends FactoryProvider {
/**
* Gets named local notifications provider
*/
named: NamedNotificationsProviderFactory;
}
//# sourceMappingURL=notifications.interface.d.ts.map