| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 | 
							- /**
 
-  * --------------------------------------------
 
-  * AdminLTE Toasts.js
 
-  * License MIT
 
-  * --------------------------------------------
 
-  */
 
- import $ from 'jquery'
 
- /**
 
-  * Constants
 
-  * ====================================================
 
-  */
 
- const NAME = 'Toasts'
 
- const DATA_KEY = 'lte.toasts'
 
- const EVENT_KEY = `.${DATA_KEY}`
 
- const JQUERY_NO_CONFLICT = $.fn[NAME]
 
- const EVENT_INIT = `init${EVENT_KEY}`
 
- const EVENT_CREATED = `created${EVENT_KEY}`
 
- const EVENT_REMOVED = `removed${EVENT_KEY}`
 
- const SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'
 
- const SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'
 
- const SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'
 
- const SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'
 
- const CLASS_NAME_TOP_RIGHT = 'toasts-top-right'
 
- const CLASS_NAME_TOP_LEFT = 'toasts-top-left'
 
- const CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'
 
- const CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'
 
- const POSITION_TOP_RIGHT = 'topRight'
 
- const POSITION_TOP_LEFT = 'topLeft'
 
- const POSITION_BOTTOM_RIGHT = 'bottomRight'
 
- const POSITION_BOTTOM_LEFT = 'bottomLeft'
 
- const Default = {
 
-   position: POSITION_TOP_RIGHT,
 
-   fixed: true,
 
-   autohide: false,
 
-   autoremove: true,
 
-   delay: 1000,
 
-   fade: true,
 
-   icon: null,
 
-   image: null,
 
-   imageAlt: null,
 
-   imageHeight: '25px',
 
-   title: null,
 
-   subtitle: null,
 
-   close: true,
 
-   body: null,
 
-   class: null
 
- }
 
- /**
 
-  * Class Definition
 
-  * ====================================================
 
-  */
 
- class Toasts {
 
-   constructor(element, config) {
 
-     this._config = config
 
-     this._prepareContainer()
 
-     $('body').trigger($.Event(EVENT_INIT))
 
-   }
 
-   // Public
 
-   create() {
 
-     const toast = $('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>')
 
-     toast.data('autohide', this._config.autohide)
 
-     toast.data('animation', this._config.fade)
 
-     if (this._config.class) {
 
-       toast.addClass(this._config.class)
 
-     }
 
-     if (this._config.delay && this._config.delay != 500) {
 
-       toast.data('delay', this._config.delay)
 
-     }
 
-     const toastHeader = $('<div class="toast-header">')
 
-     if (this._config.image != null) {
 
-       const toastImage = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)
 
-       if (this._config.imageHeight != null) {
 
-         toastImage.height(this._config.imageHeight).width('auto')
 
-       }
 
-       toastHeader.append(toastImage)
 
-     }
 
-     if (this._config.icon != null) {
 
-       toastHeader.append($('<i />').addClass('mr-2').addClass(this._config.icon))
 
-     }
 
-     if (this._config.title != null) {
 
-       toastHeader.append($('<strong />').addClass('mr-auto').html(this._config.title))
 
-     }
 
-     if (this._config.subtitle != null) {
 
-       toastHeader.append($('<small />').html(this._config.subtitle))
 
-     }
 
-     if (this._config.close == true) {
 
-       const toastClose = $('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">×</span>')
 
-       if (this._config.title == null) {
 
-         toastClose.toggleClass('ml-2 ml-auto')
 
-       }
 
-       toastHeader.append(toastClose)
 
-     }
 
-     toast.append(toastHeader)
 
-     if (this._config.body != null) {
 
-       toast.append($('<div class="toast-body" />').html(this._config.body))
 
-     }
 
-     $(this._getContainerId()).prepend(toast)
 
-     const $body = $('body')
 
-     $body.trigger($.Event(EVENT_CREATED))
 
-     toast.toast('show')
 
-     if (this._config.autoremove) {
 
-       toast.on('hidden.bs.toast', function () {
 
-         $(this).delay(200).remove()
 
-         $body.trigger($.Event(EVENT_REMOVED))
 
-       })
 
-     }
 
-   }
 
-   // Static
 
-   _getContainerId() {
 
-     if (this._config.position == POSITION_TOP_RIGHT) {
 
-       return SELECTOR_CONTAINER_TOP_RIGHT
 
-     }
 
-     if (this._config.position == POSITION_TOP_LEFT) {
 
-       return SELECTOR_CONTAINER_TOP_LEFT
 
-     }
 
-     if (this._config.position == POSITION_BOTTOM_RIGHT) {
 
-       return SELECTOR_CONTAINER_BOTTOM_RIGHT
 
-     }
 
-     if (this._config.position == POSITION_BOTTOM_LEFT) {
 
-       return SELECTOR_CONTAINER_BOTTOM_LEFT
 
-     }
 
-   }
 
-   _prepareContainer() {
 
-     if ($(this._getContainerId()).length === 0) {
 
-       const container = $('<div />').attr('id', this._getContainerId().replace('#', ''))
 
-       if (this._config.position == POSITION_TOP_RIGHT) {
 
-         container.addClass(CLASS_NAME_TOP_RIGHT)
 
-       } else if (this._config.position == POSITION_TOP_LEFT) {
 
-         container.addClass(CLASS_NAME_TOP_LEFT)
 
-       } else if (this._config.position == POSITION_BOTTOM_RIGHT) {
 
-         container.addClass(CLASS_NAME_BOTTOM_RIGHT)
 
-       } else if (this._config.position == POSITION_BOTTOM_LEFT) {
 
-         container.addClass(CLASS_NAME_BOTTOM_LEFT)
 
-       }
 
-       $('body').append(container)
 
-     }
 
-     if (this._config.fixed) {
 
-       $(this._getContainerId()).addClass('fixed')
 
-     } else {
 
-       $(this._getContainerId()).removeClass('fixed')
 
-     }
 
-   }
 
-   // Static
 
-   static _jQueryInterface(option, config) {
 
-     return this.each(function () {
 
-       const _options = $.extend({}, Default, config)
 
-       const toast = new Toasts($(this), _options)
 
-       if (option === 'create') {
 
-         toast[option]()
 
-       }
 
-     })
 
-   }
 
- }
 
- /**
 
-  * jQuery API
 
-  * ====================================================
 
-  */
 
- $.fn[NAME] = Toasts._jQueryInterface
 
- $.fn[NAME].Constructor = Toasts
 
- $.fn[NAME].noConflict = function () {
 
-   $.fn[NAME] = JQUERY_NO_CONFLICT
 
-   return Toasts._jQueryInterface
 
- }
 
- export default Toasts
 
 
  |