| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 | 
							- /**
 
-  * --------------------------------------------
 
-  * AdminLTE CardWidget.js
 
-  * License MIT
 
-  * --------------------------------------------
 
-  */
 
- import $ from 'jquery'
 
- /**
 
-  * Constants
 
-  * ====================================================
 
-  */
 
- const NAME = 'CardWidget'
 
- const DATA_KEY = 'lte.cardwidget'
 
- const EVENT_KEY = `.${DATA_KEY}`
 
- const JQUERY_NO_CONFLICT = $.fn[NAME]
 
- const EVENT_EXPANDED = `expanded${EVENT_KEY}`
 
- const EVENT_COLLAPSED = `collapsed${EVENT_KEY}`
 
- const EVENT_MAXIMIZED = `maximized${EVENT_KEY}`
 
- const EVENT_MINIMIZED = `minimized${EVENT_KEY}`
 
- const EVENT_REMOVED = `removed${EVENT_KEY}`
 
- const CLASS_NAME_CARD = 'card'
 
- const CLASS_NAME_COLLAPSED = 'collapsed-card'
 
- const CLASS_NAME_COLLAPSING = 'collapsing-card'
 
- const CLASS_NAME_EXPANDING = 'expanding-card'
 
- const CLASS_NAME_WAS_COLLAPSED = 'was-collapsed'
 
- const CLASS_NAME_MAXIMIZED = 'maximized-card'
 
- const SELECTOR_DATA_REMOVE = '[data-card-widget="remove"]'
 
- const SELECTOR_DATA_COLLAPSE = '[data-card-widget="collapse"]'
 
- const SELECTOR_DATA_MAXIMIZE = '[data-card-widget="maximize"]'
 
- const SELECTOR_CARD = `.${CLASS_NAME_CARD}`
 
- const SELECTOR_CARD_HEADER = '.card-header'
 
- const SELECTOR_CARD_BODY = '.card-body'
 
- const SELECTOR_CARD_FOOTER = '.card-footer'
 
- const Default = {
 
-   animationSpeed: 'normal',
 
-   collapseTrigger: SELECTOR_DATA_COLLAPSE,
 
-   removeTrigger: SELECTOR_DATA_REMOVE,
 
-   maximizeTrigger: SELECTOR_DATA_MAXIMIZE,
 
-   collapseIcon: 'fa-minus',
 
-   expandIcon: 'fa-plus',
 
-   maximizeIcon: 'fa-expand',
 
-   minimizeIcon: 'fa-compress'
 
- }
 
- class CardWidget {
 
-   constructor(element, settings) {
 
-     this._element = element
 
-     this._parent = element.parents(SELECTOR_CARD).first()
 
-     if (element.hasClass(CLASS_NAME_CARD)) {
 
-       this._parent = element
 
-     }
 
-     this._settings = $.extend({}, Default, settings)
 
-   }
 
-   collapse() {
 
-     this._parent.addClass(CLASS_NAME_COLLAPSING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)
 
-       .slideUp(this._settings.animationSpeed, () => {
 
-         this._parent.addClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_COLLAPSING)
 
-       })
 
-     this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.collapseIcon}`)
 
-       .addClass(this._settings.expandIcon)
 
-       .removeClass(this._settings.collapseIcon)
 
-     this._element.trigger($.Event(EVENT_COLLAPSED), this._parent)
 
-   }
 
-   expand() {
 
-     this._parent.addClass(CLASS_NAME_EXPANDING).children(`${SELECTOR_CARD_BODY}, ${SELECTOR_CARD_FOOTER}`)
 
-       .slideDown(this._settings.animationSpeed, () => {
 
-         this._parent.removeClass(CLASS_NAME_COLLAPSED).removeClass(CLASS_NAME_EXPANDING)
 
-       })
 
-     this._parent.find(`> ${SELECTOR_CARD_HEADER} ${this._settings.collapseTrigger} .${this._settings.expandIcon}`)
 
-       .addClass(this._settings.collapseIcon)
 
-       .removeClass(this._settings.expandIcon)
 
-     this._element.trigger($.Event(EVENT_EXPANDED), this._parent)
 
-   }
 
-   remove() {
 
-     this._parent.slideUp()
 
-     this._element.trigger($.Event(EVENT_REMOVED), this._parent)
 
-   }
 
-   toggle() {
 
-     if (this._parent.hasClass(CLASS_NAME_COLLAPSED)) {
 
-       this.expand()
 
-       return
 
-     }
 
-     this.collapse()
 
-   }
 
-   maximize() {
 
-     this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.maximizeIcon}`)
 
-       .addClass(this._settings.minimizeIcon)
 
-       .removeClass(this._settings.maximizeIcon)
 
-     this._parent.css({
 
-       height: this._parent.height(),
 
-       width: this._parent.width(),
 
-       transition: 'all .15s'
 
-     }).delay(150).queue(function () {
 
-       const $element = $(this)
 
-       $element.addClass(CLASS_NAME_MAXIMIZED)
 
-       $('html').addClass(CLASS_NAME_MAXIMIZED)
 
-       if ($element.hasClass(CLASS_NAME_COLLAPSED)) {
 
-         $element.addClass(CLASS_NAME_WAS_COLLAPSED)
 
-       }
 
-       $element.dequeue()
 
-     })
 
-     this._element.trigger($.Event(EVENT_MAXIMIZED), this._parent)
 
-   }
 
-   minimize() {
 
-     this._parent.find(`${this._settings.maximizeTrigger} .${this._settings.minimizeIcon}`)
 
-       .addClass(this._settings.maximizeIcon)
 
-       .removeClass(this._settings.minimizeIcon)
 
-     this._parent.css('cssText', `height: ${this._parent[0].style.height} !important; width: ${this._parent[0].style.width} !important; transition: all .15s;`
 
-     ).delay(10).queue(function () {
 
-       const $element = $(this)
 
-       $element.removeClass(CLASS_NAME_MAXIMIZED)
 
-       $('html').removeClass(CLASS_NAME_MAXIMIZED)
 
-       $element.css({
 
-         height: 'inherit',
 
-         width: 'inherit'
 
-       })
 
-       if ($element.hasClass(CLASS_NAME_WAS_COLLAPSED)) {
 
-         $element.removeClass(CLASS_NAME_WAS_COLLAPSED)
 
-       }
 
-       $element.dequeue()
 
-     })
 
-     this._element.trigger($.Event(EVENT_MINIMIZED), this._parent)
 
-   }
 
-   toggleMaximize() {
 
-     if (this._parent.hasClass(CLASS_NAME_MAXIMIZED)) {
 
-       this.minimize()
 
-       return
 
-     }
 
-     this.maximize()
 
-   }
 
-   // Private
 
-   _init(card) {
 
-     this._parent = card
 
-     $(this).find(this._settings.collapseTrigger).click(() => {
 
-       this.toggle()
 
-     })
 
-     $(this).find(this._settings.maximizeTrigger).click(() => {
 
-       this.toggleMaximize()
 
-     })
 
-     $(this).find(this._settings.removeTrigger).click(() => {
 
-       this.remove()
 
-     })
 
-   }
 
-   // Static
 
-   static _jQueryInterface(config) {
 
-     let data = $(this).data(DATA_KEY)
 
-     const _options = $.extend({}, Default, $(this).data())
 
-     if (!data) {
 
-       data = new CardWidget($(this), _options)
 
-       $(this).data(DATA_KEY, typeof config === 'string' ? data : config)
 
-     }
 
-     if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)) {
 
-       data[config]()
 
-     } else if (typeof config === 'object') {
 
-       data._init($(this))
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Data API
 
-  * ====================================================
 
-  */
 
- $(document).on('click', SELECTOR_DATA_COLLAPSE, function (event) {
 
-   if (event) {
 
-     event.preventDefault()
 
-   }
 
-   CardWidget._jQueryInterface.call($(this), 'toggle')
 
- })
 
- $(document).on('click', SELECTOR_DATA_REMOVE, function (event) {
 
-   if (event) {
 
-     event.preventDefault()
 
-   }
 
-   CardWidget._jQueryInterface.call($(this), 'remove')
 
- })
 
- $(document).on('click', SELECTOR_DATA_MAXIMIZE, function (event) {
 
-   if (event) {
 
-     event.preventDefault()
 
-   }
 
-   CardWidget._jQueryInterface.call($(this), 'toggleMaximize')
 
- })
 
- /**
 
-  * jQuery API
 
-  * ====================================================
 
-  */
 
- $.fn[NAME] = CardWidget._jQueryInterface
 
- $.fn[NAME].Constructor = CardWidget
 
- $.fn[NAME].noConflict = function () {
 
-   $.fn[NAME] = JQUERY_NO_CONFLICT
 
-   return CardWidget._jQueryInterface
 
- }
 
- export default CardWidget
 
 
  |