UNPKG

bootstrap-italia

Version:

Bootstrap Italia è un tema Bootstrap 5 per la creazione di applicazioni web nel pieno rispetto delle linee guida di design per i siti internet e i servizi digitali della PA

70 lines (55 loc) 1.8 kB
/** * -------------------------------------------------------------------------- * Bootstrap Italia (https://italia.github.io/bootstrap-italia/) * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE) * This a fork of Bootstrap: Initial license and original file name below * Bootstrap (v5.2.3): alert.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * -------------------------------------------------------------------------- */ import EventHandler from './dom/event-handler' import BaseComponent from './base-component' import { enableDismissTrigger } from './util/component-functions' /** * Constants */ const NAME = 'alert' const DATA_KEY = 'bs.alert' const EVENT_KEY = `.${DATA_KEY}` const EVENT_CLOSE = `close${EVENT_KEY}` const EVENT_CLOSED = `closed${EVENT_KEY}` const CLASS_NAME_FADE = 'fade' const CLASS_NAME_SHOW = 'show' /** * Class definition */ class Alert extends BaseComponent { // Getters static get NAME() { return NAME } // Public close() { const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE) if (closeEvent.defaultPrevented) { return } this._element.classList.remove(CLASS_NAME_SHOW) const isAnimated = this._element.classList.contains(CLASS_NAME_FADE) this._queueCallback(() => this._destroyElement(), this._element, isAnimated) } // Private _destroyElement() { this._element.remove() EventHandler.trigger(this._element, EVENT_CLOSED) this.dispose() } } /** * Data API implementation */ if (typeof window !== 'undefined' && typeof document !== 'undefined') { enableDismissTrigger(Alert, 'close') } export default Alert