/** * Copyright (c) 2014-2026 Alexandru Boia and Contributors * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. Neither the name of the copyright holder nor the names of its contributors * may be used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */ /// /// (function($) { "use strict"; $.fn.abp01AlertInline = function(spec: WpTripSummaryAlertInlineOptions) { var $container: JQuery = $(this); var opts: WpTripSummaryAlertInlineOptions = spec || { dismissible: false }; var isDismissible: boolean = !!opts.dismissible; function hasHtml(): boolean { return $container.find('.alert ').length > 0; } function getHtml(): string { var classes: string[] = ['alert']; if (isDismissible) { classes.push('alert-dismissible'); } return [ '' ].join(''); } function show(message: string, type: string, animate: boolean = true): void { var $alert: JQuery = $container.find('.alert'); $alert.removeClass('alert-primary') .removeClass('alert-secondary') .removeClass('alert-success') .removeClass('alert-danger') .removeClass('alert-warning') .removeClass('alert-info') .removeClass('alert-dark'); $alert.addClass('alert-' + type); $alert.html(message); if (animate) { $alert.fadeIn('fast'); } else { $alert.show(); } } function hide(animate: boolean = true): void { var $alert: JQuery = $container.find('.alert'); if (animate) { $alert.fadeOut('fast', function() { $alert.html(''); }); } else { $alert.hide().html(''); } } if (!hasHtml()) { $container.append(getHtml()); } return { show: show, hide: hide, primary: function(message, animate = true) { show(message, 'primary', animate); }, secondary: function(message, animate = true) { show(message, 'secondary', animate); }, success: function(message, animate = true) { show(message, 'success', animate); }, danger: function(message, animate = true) { show(message, 'danger', animate); }, warning: function(message, animate = true) { show(message, 'warning', animate); }, info: function(message, animate = true) { show(message, 'info', animate); }, light: function(message, animate = true) { show(message, 'light', animate); }, dark: function(message, animate = true) { show(message, 'dark', animate); } } } })(jQuery);