admin-lte
Version:
Responsive open source admin dashboard and control panel.
55 lines (45 loc) • 1.26 kB
text/typescript
/**
* --------------------------------------------
* @file AdminLTE layout.ts
* @description Layout for AdminLTE.
* @license MIT
* --------------------------------------------
*/
import {
onDOMContentLoaded
} from './util/index'
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
const CLASS_NAME_HOLD_TRANSITIONS = 'hold-transition'
const CLASS_NAME_APP_LOADED = 'app-loaded'
/**
* Class Definition
* ====================================================
*/
class Layout {
_element: HTMLElement
constructor(element: HTMLElement) {
this._element = element
}
holdTransition(): void {
let resizeTimer: ReturnType<typeof setTimeout>
window.addEventListener('resize', () => {
document.body.classList.add(CLASS_NAME_HOLD_TRANSITIONS)
clearTimeout(resizeTimer)
resizeTimer = setTimeout(() => {
document.body.classList.remove(CLASS_NAME_HOLD_TRANSITIONS)
}, 400)
})
}
}
onDOMContentLoaded(() => {
const data = new Layout(document.body)
data.holdTransition()
setTimeout(() => {
document.body.classList.add(CLASS_NAME_APP_LOADED)
}, 400)
})
export default Layout