import { Injectable } from '@angular/core';
/**
 * Notifier configuration
 *
 * The notifier configuration defines what notifications look like, how they behave, and how they get animated. It is a global
 * configuration, which means that it only can be set once (at the beginning), and cannot be changed afterwards. Aligning to the world of
 * Angular, this configuration can be provided in the root app module - alternatively, a meaningful default configuration will be used.
 */
export var NotifierConfig = (function () {
    /**
     * Constructor
     *
     * @param {NotifierOptions} [customOptions={}] Custom notifier options, optional
     */
    function NotifierConfig(customOptions) {
        if (customOptions === void 0) { customOptions = {}; }
        var defaultOptions = {
            animations: {
                enabled: true,
                hide: {
                    easing: 'ease',
                    offset: 50,
                    preset: 'fade',
                    speed: 300
                },
                overlap: 150,
                shift: {
                    easing: 'ease',
                    speed: 300
                },
                show: {
                    easing: 'ease',
                    preset: 'slide',
                    speed: 300
                }
            },
            behaviour: {
                autoHide: 7000,
                onClick: false,
                onMouseover: 'pauseAutoHide',
                showDismissButton: true,
                stacking: 4
            },
            position: {
                horizontal: {
                    distance: 12,
                    position: 'left'
                },
                vertical: {
                    distance: 12,
                    gap: 10,
                    position: 'bottom'
                }
            },
            theme: 'material'
        };
        Object.assign(this, defaultOptions, customOptions); // Merge all options
    }
    NotifierConfig.decorators = [
        { type: Injectable },
    ];
    /** @nocollapse */
    NotifierConfig.ctorParameters = [
        null,
    ];
    return NotifierConfig;
}());
//# sourceMappingURL=notifier-config.model.js.map