Add webpack
This commit is contained in:
128
build/js/PushMenu.js
Normal file
128
build/js/PushMenu.js
Normal file
@@ -0,0 +1,128 @@
|
||||
/**
|
||||
* --------------------------------------------
|
||||
* AdminLTE PushMenu.js
|
||||
* License MIT
|
||||
* --------------------------------------------
|
||||
*/
|
||||
|
||||
const PushMenu = (($) => {
|
||||
|
||||
/**
|
||||
* Constants
|
||||
* ====================================================
|
||||
*/
|
||||
|
||||
const NAME = 'PushMenu'
|
||||
const DATA_KEY = 'lte.pushmenu'
|
||||
const EVENT_KEY = `.${DATA_KEY}`
|
||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||
|
||||
const Event = {
|
||||
COLLAPSED: `collapsed${EVENT_KEY}`,
|
||||
SHOWN: `shown${EVENT_KEY}`
|
||||
}
|
||||
|
||||
const Selector = {
|
||||
COLLAPSED: 'sidebar-collapse',
|
||||
TOGGLE_BUTTON: '[data-widget="pushmenu"]'
|
||||
}
|
||||
|
||||
/**
|
||||
* Class Definition
|
||||
* ====================================================
|
||||
*/
|
||||
|
||||
class PushMenu {
|
||||
|
||||
constructor(element) {
|
||||
this._element = element
|
||||
this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')
|
||||
}
|
||||
|
||||
// Public
|
||||
|
||||
show() {
|
||||
$('body').addClass('sidebar-open')
|
||||
.removeClass(Selector.COLLAPSED)
|
||||
|
||||
this._isShown = true
|
||||
|
||||
const shownEvent = $.Event(Event.SHOWN)
|
||||
$(this._element).trigger(shownEvent)
|
||||
}
|
||||
|
||||
collapse() {
|
||||
$('body').removeClass('sidebar-open')
|
||||
.addClass(Selector.COLLAPSED)
|
||||
|
||||
this._isShown = false
|
||||
|
||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||
$(this._element).trigger(collapsedEvent)
|
||||
}
|
||||
|
||||
toggle() {
|
||||
|
||||
if (typeof this._isShown === 'undefined') {
|
||||
this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')
|
||||
}
|
||||
|
||||
if (this._isShown) {
|
||||
this.collapse()
|
||||
} else {
|
||||
this.show()
|
||||
}
|
||||
}
|
||||
|
||||
// Static
|
||||
|
||||
static _jQueryInterface(operation) {
|
||||
return this.each(function () {
|
||||
let data = $(this).data(DATA_KEY)
|
||||
|
||||
if (!data) {
|
||||
data = new PushMenu(this)
|
||||
$(this).data(DATA_KEY, data)
|
||||
}
|
||||
|
||||
if (operation) {
|
||||
data[operation]()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Data API
|
||||
* ====================================================
|
||||
*/
|
||||
|
||||
$(document).on('click', Selector.TOGGLE_BUTTON, (event) => {
|
||||
event.preventDefault()
|
||||
|
||||
let button = event.currentTarget
|
||||
|
||||
if ($(button).data('widget') !== 'pushmenu') {
|
||||
button = $(button).closest(Selector.TOGGLE_BUTTON)
|
||||
}
|
||||
|
||||
PushMenu._jQueryInterface.call($(button), 'toggle')
|
||||
})
|
||||
|
||||
/**
|
||||
* jQuery API
|
||||
* ====================================================
|
||||
*/
|
||||
|
||||
$.fn[NAME] = PushMenu._jQueryInterface
|
||||
$.fn[NAME].Constructor = PushMenu
|
||||
$.fn[NAME].noConflict = function () {
|
||||
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||
return PushMenu._jQueryInterface
|
||||
}
|
||||
|
||||
return PushMenu
|
||||
|
||||
})(jQuery)
|
||||
|
||||
export default PushMenu
|
||||
Reference in New Issue
Block a user