webpack-bootstrap-ui-kit/src/js_old/_events.router.js

69 lines
1.2 KiB
JavaScript
Raw Normal View History

2022-05-03 20:50:57 +02:00
'use strict'
2020-12-24 23:42:33 +01:00
2022-05-03 20:50:57 +02:00
import $ from 'jquery'
2020-12-24 23:42:33 +01:00
2020-09-10 01:55:27 +02:00
/**
* Route side-wide events
*/
const EventsUI = (($) => {
2022-05-03 20:50:57 +02:00
const on = $.fn.on
const off = $.fn.off
2020-09-10 01:55:27 +02:00
// Constants
2022-05-03 20:50:57 +02:00
const W = window
const $W = $(W)
const D = document
const $Body = $('body')
2020-09-10 01:55:27 +02:00
2022-05-03 20:50:57 +02:00
const NAME = 'EventsUI'
2020-09-10 01:55:27 +02:00
class EventsUI {
2022-05-03 20:50:57 +02:00
static process (el, args) {
let modEl = el
const eventName = args[0]
const tagName = typeof el !== undefined ? $(el).prop('tagName') : null
2020-09-10 01:55:27 +02:00
switch (tagName) {
2022-05-03 20:50:57 +02:00
case 'HTML':
case 'BODY':
modEl = $W
break
2020-09-10 01:55:27 +02:00
}
2022-05-03 20:50:57 +02:00
return [modEl, args]
2020-09-10 01:55:27 +02:00
}
}
// rewrite jQuery functions
$.fn.on = function () {
2022-05-03 20:50:57 +02:00
const result = EventsUI.process(this, arguments)
return on.apply(...result)
}
2020-09-10 01:55:27 +02:00
$.fn.off = function () {
2022-05-03 20:50:57 +02:00
const result = EventsUI.process(this, arguments)
return off.apply(...result)
}
2020-09-10 01:55:27 +02:00
2022-05-03 20:50:57 +02:00
const scrollTop = $.fn.scrollTop
2020-09-10 01:55:27 +02:00
// rewrite scrollTop
$.fn.scrollTop = function () {
2022-05-03 20:50:57 +02:00
let el = this
const args = arguments
2020-09-10 01:55:27 +02:00
2022-05-03 20:50:57 +02:00
const tagName = typeof el !== undefined ? $(el).prop('tagName') : null
2020-09-10 01:55:27 +02:00
switch (tagName) {
2022-05-03 20:50:57 +02:00
case 'HTML':
case 'BODY':
el = $W
break
2020-09-10 01:55:27 +02:00
}
2022-05-03 20:50:57 +02:00
return scrollTop.apply(el, args)
}
})($)
2020-09-10 01:55:27 +02:00
2022-05-03 20:50:57 +02:00
export default EventsUI