Files
MikaltoResort/ManagementApp/wwwroot/js/ext_libs/js-AOverScroll.js
2025-06-04 14:17:32 +07:00

663 lines
28 KiB
JavaScript

export default class AOverScroll {
constructor() {
window.Scrollbar.use(this.e(window.Scrollbar));
}
e(t) {
return function (t) {
var e = {};
function o(i) {
if (e[i])
return e[i].exports;
var r = e[i] = {
i: i,
l: !1,
exports: {}
};
return t[i].call(r.exports, r, r.exports, o),
r.l = !0,
r.exports
}
return o.m = t,
o.c = e,
o.d = function (t, e, i) {
o.o(t, e) || Object.defineProperty(t, e, {
enumerable: !0,
get: i
})
}
,
o.r = function (t) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
value: "Module"
}),
Object.defineProperty(t, "__esModule", {
value: !0
})
}
,
o.t = function (t, e) {
if (1 & e && (t = o(t)),
8 & e)
return t;
if (4 & e && "object" == typeof t && t && t.__esModule)
return t;
var i = Object.create(null);
if (o.r(i),
Object.defineProperty(i, "default", {
enumerable: !0,
value: t
}),
2 & e && "string" != typeof t)
for (var r in t)
o.d(i, r, function (e) {
return t[e]
}
.bind(null, r));
return i
}
,
o.n = function (t) {
var e = t && t.__esModule ? function () {
return t.default
}
: function () {
return t
}
;
return o.d(e, "a", e),
e
}
,
o.o = function (t, e) {
return Object.prototype.hasOwnProperty.call(t, e)
}
,
o.p = "",
o(o.s = 1)
}([function (e, o) {
e.exports = t
}
, function (t, e, o) {
t.exports = o(2)
}
, function (t, e, o) {
"use strict";
o.r(e);
var i = function (t, e) {
return (i = Object.setPrototypeOf || {
__proto__: []
} instanceof Array && function (t, e) {
t.__proto__ = e
}
|| function (t, e) {
for (var o in e)
e.hasOwnProperty(o) && (t[o] = e[o])
}
)
}
, r = function () {
return (r = Object.assign || function (t) {
for (var e, o = 1, i = arguments.length; o < i; o++)
for (var r in e = arguments[o])
Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[r]);
return t
}
).apply(this, arguments)
};
function n(t) {
var e = function (t) {
return t.touches ? t.touches[t.touches.length - 1] : t
}(t);
return {
x: e.clientX,
y: e.clientY
}
}
new WeakMap;
var s = ["webkit", "moz", "ms", "o"]
, c = new RegExp("^-(?!(?:" + s.join("|") + ")-)");
function a(t, e) {
e = function (t) {
var e = {};
return Object.keys(t).forEach((function (o) {
if (c.test(o)) {
var i = t[o];
o = o.replace(/^-/, ""),
e[o] = i,
s.forEach((function (t) {
e["-" + t + "-" + o] = i
}
))
} else
e[o] = t[o]
}
)),
e
}(e),
Object.keys(e).forEach((function (o) {
var i = o.replace(/^-/, "").replace(/-([a-z])/g, (function (t, e) {
return e.toUpperCase()
}
));
t.style[i] = e[o]
}
))
}
var l = function () {
function t(t) {
this.velocityMultiplier = window.devicePixelRatio,
this.updateTime = Date.now(),
this.delta = {
x: 0,
y: 0
},
this.velocity = {
x: 0,
y: 0
},
this.lastPosition = {
x: 0,
y: 0
},
this.lastPosition = n(t)
}
return t.prototype.update = function (t) {
var e = this.velocity
, o = this.updateTime
, i = this.lastPosition
, r = Date.now()
, s = n(t)
, c = {
x: -(s.x - i.x),
y: -(s.y - i.y)
}
, a = r - o || 16.7
, l = c.x / a * 16.7
, h = c.y / a * 16.7;
e.x = l * this.velocityMultiplier,
e.y = h * this.velocityMultiplier,
this.delta = c,
this.updateTime = r,
this.lastPosition = s
}
,
t
}();
function h(t, e, o) {
return Math.max(e, Math.min(o, t))
}
!function () {
function t() {
this._touchList = {}
}
Object.defineProperty(t.prototype, "_primitiveValue", {
get: function () {
return {
x: 0,
y: 0
}
},
enumerable: !0,
configurable: !0
}),
t.prototype.isActive = function () {
return void 0 !== this._activeTouchID
}
,
t.prototype.getDelta = function () {
var t = this._getActiveTracker();
return t ? r({}, t.delta) : this._primitiveValue
}
,
t.prototype.getVelocity = function () {
var t = this._getActiveTracker();
return t ? r({}, t.velocity) : this._primitiveValue
}
,
t.prototype.getEasingDistance = function (t) {
var e = 1 - t
, o = {
x: 0,
y: 0
}
, i = this.getVelocity();
return Object.keys(i).forEach((function (t) {
for (var r = Math.abs(i[t]) <= 10 ? 0 : i[t]; 0 !== r;)
o[t] += r,
r = r * e | 0
}
)),
o
}
,
t.prototype.track = function (t) {
var e = this
, o = t.targetTouches;
return Array.from(o).forEach((function (t) {
e._add(t)
}
)),
this._touchList
}
,
t.prototype.update = function (t) {
var e = this
, o = t.touches
, i = t.changedTouches;
return Array.from(o).forEach((function (t) {
e._renew(t)
}
)),
this._setActiveID(i),
this._touchList
}
,
t.prototype.release = function (t) {
var e = this;
delete this._activeTouchID,
Array.from(t.changedTouches).forEach((function (t) {
e._delete(t)
}
))
}
,
t.prototype._add = function (t) {
this._has(t) && this._delete(t);
var e = new l(t);
this._touchList[t.identifier] = e
}
,
t.prototype._renew = function (t) {
this._has(t) && this._touchList[t.identifier].update(t)
}
,
t.prototype._delete = function (t) {
delete this._touchList[t.identifier]
}
,
t.prototype._has = function (t) {
return this._touchList.hasOwnProperty(t.identifier)
}
,
t.prototype._setActiveID = function (t) {
this._activeTouchID = t[t.length - 1].identifier
}
,
t.prototype._getActiveTracker = function () {
return this._touchList[this._activeTouchID]
}
}();
var u, p = o(0), f = function () {
function t(t) {
this._scrollbar = t
}
return t.prototype.render = function (t) {
var e = t.x
, o = void 0 === e ? 0 : e
, i = t.y
, r = void 0 === i ? 0 : i
, n = this._scrollbar
, s = n.size
, c = n.track
, l = n.offset;
if (a(n.contentEl, {
"-transform": "translate3d(" + -(l.x + o) + "px, " + -(l.y + r) + "px, 0)"
}),
o) {
c.xAxis.show();
var h = s.container.width / (s.container.width + Math.abs(o));
a(c.xAxis.thumb.element, {
"-transform": "translate3d(" + c.xAxis.thumb.offset + "px, 0, 0) scale3d(" + h + ", 1, 1)",
"-transform-origin": o < 0 ? "left" : "right"
})
}
r && (c.yAxis.show(),
h = s.container.height / (s.container.height + Math.abs(r)),
a(c.yAxis.thumb.element, {
"-transform": "translate3d(0, " + c.yAxis.thumb.offset + "px, 0) scale3d(1, " + h + ", 1)",
"-transform-origin": r < 0 ? "top" : "bottom"
})),
c.autoHideOnIdle()
}
,
t
}(), _ = function () {
function t(t) {
this._scrollbar = t,
this._canvas = document.createElement("canvas"),
this._ctx = this._canvas.getContext("2d"),
a(this._canvas, {
position: "absolute",
top: 0,
left: 0,
width: "100%",
height: "100%",
display: "none"
})
}
return t.prototype.mount = function () {
this._scrollbar.containerEl.appendChild(this._canvas)
}
,
t.prototype.unmount = function () {
this._canvas.parentNode && this._canvas.parentNode.removeChild(this._canvas)
}
,
t.prototype.adjust = function () {
var t = this._scrollbar.size
, e = window.devicePixelRatio || 1
, o = t.container.width * e
, i = t.container.height * e;
o === this._canvas.width && i === this._canvas.height || (this._canvas.width = o,
this._canvas.height = i,
this._ctx.scale(e, e))
}
,
t.prototype.recordTouch = function (t) {
var e = t.touches[t.touches.length - 1];
this._touchX = e.clientX,
this._touchY = e.clientY
}
,
t.prototype.render = function (t, e) {
var o = t.x
, i = void 0 === o ? 0 : o
, r = t.y
, n = void 0 === r ? 0 : r;
if (i || n) {
a(this._canvas, {
display: "block"
});
var s = this._scrollbar.size;
this._ctx.clearRect(0, 0, s.container.width, s.container.height),
this._ctx.fillStyle = e,
this._renderX(i),
this._renderY(n)
} else
a(this._canvas, {
display: "none"
})
}
,
t.prototype._getMaxOverscroll = function () {
var t = this._scrollbar.options.plugins.overscroll;
return t && t.maxOverscroll ? t.maxOverscroll : 150
}
,
t.prototype._renderX = function (t) {
var e = this._scrollbar.size
, o = this._getMaxOverscroll()
, i = e.container
, r = i.width
, n = i.height
, s = this._ctx;
s.save(),
t > 0 && s.transform(-1, 0, 0, 1, r, 0);
var c = h(Math.abs(t) / o, 0, .75)
, a = h(c, 0, .25) * r
, l = Math.abs(t)
, u = this._touchY || n / 2;
s.globalAlpha = c,
s.beginPath(),
s.moveTo(0, -a),
s.quadraticCurveTo(l, u, 0, n + a),
s.fill(),
s.closePath(),
s.restore()
}
,
t.prototype._renderY = function (t) {
var e = this._scrollbar.size
, o = this._getMaxOverscroll()
, i = e.container
, r = i.width
, n = i.height
, s = this._ctx;
s.save(),
t > 0 && s.transform(1, 0, 0, -1, 0, n);
var c = h(Math.abs(t) / o, 0, .75)
, a = h(c, 0, .25) * r
, l = this._touchX || r / 2
, u = Math.abs(t);
s.globalAlpha = c,
s.beginPath(),
s.moveTo(-a, 0),
s.quadraticCurveTo(l, u, r + a, 0),
s.fill(),
s.closePath(),
s.restore()
}
,
t
}();
o.d(e, "OverscrollEffect", (function () {
return u
}
)),
function (t) {
t.BOUNCE = "bounce",
t.GLOW = "glow"
}(u || (u = {}));
var d = /wheel|touch/
, y = function (t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e._glow = new _(e.scrollbar),
e._bounce = new f(e.scrollbar),
e._wheelScrollBack = {
x: !1,
y: !1
},
e._lockWheel = {
x: !1,
y: !1
},
e._touching = !1,
e._amplitude = {
x: 0,
y: 0
},
e._position = {
x: 0,
y: 0
},
e._releaseWheel = function (t, e, o) {
var i;
void 0 === e && (e = 0);
return function () {
for (var o = this, r = [], n = 0; n < arguments.length; n++)
r[n] = arguments[n];
clearTimeout(i),
i = setTimeout((function () {
t.apply(o, r)
}
), e)
}
}((function () {
e._lockWheel.x = !1,
e._lockWheel.y = !1
}
), 30),
e
}
return function (t, e) {
function o() {
this.constructor = t
};
i(t, e),
t.prototype = null === e ? Object.create(e) : (o.prototype = e.prototype,
new o)
}(e, t),
Object.defineProperty(e.prototype, "_isWheelLocked", {
get: function () {
return this._lockWheel.x || this._lockWheel.y
},
enumerable: !0,
configurable: !0
}),
Object.defineProperty(e.prototype, "_enabled", {
get: function () {
return !!this.options.effect
},
enumerable: !0,
configurable: !0
}),
e.prototype.onInit = function () {
var t = this._glow
, e = this.options
, o = this.scrollbar
, i = e.effect;
Object.defineProperty(e, "effect", {
get: function () {
return i
},
set: function (e) {
if (e) {
if (e !== u.BOUNCE && e !== u.GLOW)
throw new TypeError("unknow overscroll effect: " + e);
i = e,
o.options.continuousScrolling = !1,
e === u.GLOW ? (t.mount(),
t.adjust()) : t.unmount()
} else
i = void 0
}
}),
e.effect = i
}
,
e.prototype.onUpdate = function () {
this.options.effect === u.GLOW && this._glow.adjust()
}
,
e.prototype.onRender = function (t) {
if (this._enabled) {
this.scrollbar.options.continuousScrolling && (this.scrollbar.options.continuousScrolling = !1);
var e = t.x
, o = t.y;
!this._amplitude.x && this._willOverscroll("x", t.x) && (e = 0,
this._absorbMomentum("x", t.x)),
!this._amplitude.y && this._willOverscroll("y", t.y) && (o = 0,
this._absorbMomentum("y", t.y)),
this.scrollbar.setMomentum(e, o),
this._render()
}
}
,
e.prototype.transformDelta = function (t, e) {
if (this._lastEventType = e.type,
!this._enabled || !d.test(e.type))
return t;
this._isWheelLocked && /wheel/.test(e.type) && (this._releaseWheel(),
this._willOverscroll("x", t.x) && (t.x = 0),
this._willOverscroll("y", t.y) && (t.y = 0));
var o = t.x
, i = t.y;
switch (this._willOverscroll("x", t.x) && (o = 0,
this._addAmplitude("x", t.x)),
this._willOverscroll("y", t.y) && (i = 0,
this._addAmplitude("y", t.y)),
e.type) {
case "touchstart":
case "touchmove":
this._touching = !0,
this._glow.recordTouch(e);
break;
case "touchcancel":
case "touchend":
this._touching = !1
}
return {
x: o,
y: i
}
}
,
e.prototype._willOverscroll = function (t, e) {
if (!e)
return !1;
if (this._position[t])
return !0;
var o = this.scrollbar.offset[t]
, i = this.scrollbar.limit[t];
return 0 !== i && h(o + e, 0, i) === o && (0 === o || o === i)
}
,
e.prototype._absorbMomentum = function (t, e) {
var o = this.options
, i = this._lastEventType
, r = this._amplitude;
d.test(i) && (r[t] = h(e, -o.maxOverscroll, o.maxOverscroll))
}
,
e.prototype._addAmplitude = function (t, e) {
var o = this.options
, i = this.scrollbar
, r = this._amplitude
, n = this._position
, s = r[t]
, c = e * s < 0
, a = s + e * (1 - (c ? 0 : this._wheelScrollBack[t] ? 1 : Math.abs(s / o.maxOverscroll)));
r[t] = 0 === i.offset[t] ? h(a, -o.maxOverscroll, 0) : h(a, 0, o.maxOverscroll),
c && (n[t] = r[t])
}
,
e.prototype._render = function () {
var t = this.options
, e = this._amplitude
, o = this._position;
if (this._enabled && (e.x || e.y || o.x || o.y)) {
var i = this._nextAmp("x")
, n = this._nextAmp("y");
switch (e.x = i.amplitude,
o.x = i.position,
e.y = n.amplitude,
o.y = n.position,
t.effect) {
case u.BOUNCE:
this._bounce.render(o);
break;
case u.GLOW:
this._glow.render(o, this.options.glowColor)
}
"function" == typeof t.onScroll && t.onScroll.call(this, r({}, o))
}
}
,
e.prototype._nextAmp = function (t) {
var e = this.options
, o = this._amplitude
, i = this._position
, r = 1 - e.damping
, n = o[t]
, s = i[t]
, c = this._touching ? n : n * r | 0
, a = c - s
, l = s + a - (a * r | 0);
return !this._touching && Math.abs(l) < Math.abs(s) && (this._wheelScrollBack[t] = !0),
this._wheelScrollBack[t] && Math.abs(l) <= 1 && (this._wheelScrollBack[t] = !1,
this._lockWheel[t] = !0),
{
amplitude: c,
position: l
}
}
,
e.pluginName = "overscroll",
e.defaultOptions = {
effect: u.BOUNCE,
onScroll: void 0,
damping: .2,
maxOverscroll: 150,
glowColor: "#87ceeb"
},
e
}(p.ScrollbarPlugin);
e.default = y
}
]).default
}
}