MediaWiki:Gadget-ScrollUpButton.js:修订间差异
删除的内容 添加的内容
小 中医百科移动页面MediaWiki:Gadget-ScrollUpButton.js至MediaWiki:Gadget-scrollUpButton.js,不留重定向 |
// Edit via Wikiplus 标签:手工回退 |
||
(未显示同一用户的1个中间版本) | |||
第1行: | 第1行: | ||
/** |
/** |
||
* SPDX-License-Identifier: GPL-3.0-or-later |
|||
* Copyright (c) 2021-present, 安忆. |
|||
* _addText: '{{Gadget Header|license=GPL-3.0-or-later}}' |
|||
* |
* |
||
* @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/ScrollUpButton} |
|||
* @author 安忆 [[zh:U:安忆]] |
|||
* @ |
* @author 安忆 <i@anyi.in> |
||
* @license GPL |
* @license GPL-3.0-or-later {@link https://www.qiuwenbaike.cn/wiki/H:GPL-3.0} |
||
*/ |
*/ |
||
$(function scrollUpButton() { |
|||
/** |
|||
var $window = $(window); |
|||
* Copyright (C) 安忆 |
|||
var scrollButtonIcon = '//zybkcn.com/images/f/f0/Scroll-button.svg'; |
|||
* |
|||
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) { |
|||
* This program is free software: you can redistribute it and/or modify |
|||
scrollButtonIcon = '//zybkcn.com/images/thumb/f/f0/Scroll-button.svg/32px-Scroll-button.svg.png'; |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>. |
|||
*/ |
|||
/** |
|||
* +------------------------------------------------------------+ |
|||
* | === WARNING: GLOBAL GADGET FILE === | |
|||
* +------------------------------------------------------------+ |
|||
* | All changes should be made in the repository, | |
|||
* | otherwise they will be lost. | |
|||
* +------------------------------------------------------------+ |
|||
* | Changes to this page may affect many users. | |
|||
* | Please discuss changes by opening an issue before editing. | |
|||
* +------------------------------------------------------------+ |
|||
*/ |
|||
/* <nowiki> */ |
|||
(() => { |
|||
"use strict"; |
|||
// dist/ScrollUpButton/ScrollUpButton.js |
|||
function _createForOfIteratorHelper(r, e) { |
|||
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; |
|||
if (!t) { |
|||
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { |
|||
t && (r = t); |
|||
var n = 0, F = function() { |
|||
}; |
|||
return { s: F, n: function() { |
|||
return n >= r.length ? { done: true } : { done: false, value: r[n++] }; |
|||
}, e: function(r2) { |
|||
throw r2; |
|||
}, f: F }; |
|||
} |
|||
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); |
|||
} |
} |
||
var o, a = true, u = false; |
|||
var changeOpacity = function changeOpacity(event) { |
|||
return { s: function() { |
|||
event.currentTarget.style.opacity = event.type === 'mouseenter' ? '1' : '0.7'; |
|||
t = t.call(r); |
|||
}, n: function() { |
|||
var r2 = t.next(); |
|||
return a = r2.done, r2; |
|||
}, e: function(r2) { |
|||
u = true, o = r2; |
|||
}, f: function() { |
|||
try { |
|||
a || null == t.return || t.return(); |
|||
} finally { |
|||
if (u) throw o; |
|||
} |
|||
} }; |
|||
} |
|||
function _unsupportedIterableToArray(r, a) { |
|||
if (r) { |
|||
if ("string" == typeof r) return _arrayLikeToArray(r, a); |
|||
var t = {}.toString.call(r).slice(8, -1); |
|||
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; |
|||
} |
|||
} |
|||
function _arrayLikeToArray(r, a) { |
|||
(null == a || a > r.length) && (a = r.length); |
|||
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; |
|||
return n; |
|||
} |
|||
var __create = Object.create; |
|||
var __defProp = Object.defineProperty; |
|||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
|||
var __getOwnPropNames = Object.getOwnPropertyNames; |
|||
var __getProtoOf = Object.getPrototypeOf; |
|||
var __hasOwnProp = Object.prototype.hasOwnProperty; |
|||
var __copyProps = (to, from, except, desc) => { |
|||
if (from && typeof from === "object" || typeof from === "function") { |
|||
var _iterator = _createForOfIteratorHelper(__getOwnPropNames(from)), _step; |
|||
try { |
|||
for (_iterator.s(); !(_step = _iterator.n()).done; ) { |
|||
let key = _step.value; |
|||
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { |
|||
get: () => from[key], |
|||
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable |
|||
}); |
|||
} |
|||
} catch (err) { |
|||
_iterator.e(err); |
|||
} finally { |
|||
_iterator.f(); |
|||
} |
|||
} |
|||
return to; |
|||
}; |
|||
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( |
|||
// If the importer is in node compatibility mode or this is not an ESM |
|||
// file that has been converted to a CommonJS file using a Babel- |
|||
// compatible transform (i.e. "__esModule" has not been set), then set |
|||
// "default" to the CommonJS "module.exports" for node compatibility. |
|||
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { |
|||
value: mod, |
|||
enumerable: true |
|||
}) : target, |
|||
mod |
|||
)); |
|||
//! src/ScrollUpButton/ScrollUpButton.ts |
|||
var import_ext_gadget6 = require("ext.gadget.Util"); |
|||
//! src/ScrollUpButton/modules/constant.ts |
|||
var CLASS_NAME = "gadget-scroll_up_button"; |
|||
var CLASS_NAME_DOWN = "".concat(CLASS_NAME, "-down"); |
|||
var CLASS_NAME_UP = "".concat(CLASS_NAME, "-up"); |
|||
//! src/ScrollUpButton/components/scrollButton.tsx |
|||
var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1); |
|||
//! src/ScrollUpButton/modules/i18n.ts |
|||
var import_ext_gadget = require("ext.gadget.i18n"); |
|||
var getI18nMessages = () => { |
|||
return { |
|||
ToBottom: (0, import_ext_gadget.localize)({ |
|||
en: "Scroll to the bottom", |
|||
"zh-hans": "滚动至页底", |
|||
"zh-hant": "滾動至頁底" |
|||
}), |
|||
ToTop: (0, import_ext_gadget.localize)({ |
|||
en: "Go back to the top", |
|||
"zh-hans": "滚动至页顶", |
|||
"zh-hant": "滾動至頁頂" |
|||
}) |
|||
}; |
}; |
||
}; |
|||
var scrollTop = function scrollTop(height) { |
|||
var i18nMessages = getI18nMessages(); |
|||
$('html, body').animate({ |
|||
var getMessage = (key) => { |
|||
scrollTop: height |
|||
return i18nMessages[key] || key; |
|||
}, 660); |
|||
}; |
|||
//! src/ScrollUpButton/components/scrollButton.tsx |
|||
var $scrollButton = $('<img>').addClass('noprint').attr({ |
|||
var import_ext_gadget3 = require("ext.gadget.Util"); |
|||
draggable: 'false', |
|||
function ScrollButton(props) { |
|||
src: scrollButtonIcon |
|||
const { |
|||
additionalClassName, |
|||
alt, |
|||
ariaLabel, |
|||
onClick, |
|||
onMouseEnter, |
|||
onMouseLeave |
|||
'-moz-user-select': 'none', |
|||
} = props; |
|||
'-webkit-user-select': 'none', |
|||
return /* @__PURE__ */ import_ext_gadget2.default.createElement("img", { |
|||
'user-select': 'none' |
|||
className: [CLASS_NAME, additionalClassName, "noprint"], |
|||
src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1'%3E%3C/svg%3E", |
|||
width: "32", |
|||
height: "32", |
|||
draggable: false, |
|||
alt, |
|||
"aria-label": ariaLabel, |
|||
onClick, |
|||
onMouseEnter, |
|||
onMouseLeave |
|||
}); |
}); |
||
} |
|||
var $scrollDownButton = $scrollButton.clone().attr('id', 'scrollDownButton-zhwiki').css('transform', 'rotate(180deg)').on('click', function () { |
|||
var TO_BOTTOM = getMessage("ToBottom"); |
|||
scrollTop(($(document).height() || 0) - ($window.height() || 0)); |
|||
var TO_TOP = getMessage("ToTop"); |
|||
}); |
|||
var ScrollDownButton = (onMouseEnterMouseLeave) => /* @__PURE__ */ import_ext_gadget2.default.createElement(ScrollButton, { |
|||
var $scrollUpButton = $scrollButton.clone().attr('id', 'scrollUpButton-zhwiki').on('click', function () { |
|||
additionalClassName: CLASS_NAME_DOWN, |
|||
scrollTop(0); |
|||
alt: TO_BOTTOM, |
|||
}); |
|||
ariaLabel: TO_BOTTOM, |
|||
var $elements = [$scrollDownButton, $scrollUpButton]; |
|||
onClick: () => { |
|||
$elements.forEach(function ($element) { |
|||
var _$$height, _$$height2; |
|||
$element.on('mouseenter mouseleave', changeOpacity).appendTo(document.body); |
|||
(0, import_ext_gadget3.scrollTop)(((_$$height = $(document).height()) !== null && _$$height !== void 0 ? _$$height : 0) - ((_$$height2 = $(window).height()) !== null && _$$height2 !== void 0 ? _$$height2 : 0)); |
|||
}); |
|||
}, |
|||
var fadeIn = function fadeIn() { |
|||
onMouseEnter: onMouseEnterMouseLeave, |
|||
$elements.forEach(function ($element) { |
|||
onMouseLeave: onMouseEnterMouseLeave |
|||
$element.fadeIn('slow'); |
|||
}); |
|||
var ScrollUpButton = (onMouseEnterMouseLeave) => /* @__PURE__ */ import_ext_gadget2.default.createElement(ScrollButton, { |
|||
additionalClassName: CLASS_NAME_UP, |
|||
alt: TO_TOP, |
|||
ariaLabel: TO_TOP, |
|||
onClick: () => { |
|||
(0, import_ext_gadget3.scrollTop)(0); |
|||
}, |
|||
onMouseEnter: onMouseEnterMouseLeave, |
|||
onMouseLeave: onMouseEnterMouseLeave |
|||
}); |
|||
//! src/ScrollUpButton/modules/insertElementAndListener.ts |
|||
var import_ext_gadget4 = require("ext.gadget.Util"); |
|||
var import_ext_gadget5 = require("ext.gadget.Tippy"); |
|||
var insertElementandListener = ($body) => { |
|||
const onMouseEnterMouseLeave = (event) => { |
|||
(0, import_ext_gadget4.changeOpacityWhenMouseEnterOrLeave)(event); |
|||
}; |
}; |
||
const scrollDownButton = ScrollDownButton(onMouseEnterMouseLeave); |
|||
var fadeOut = function fadeOut() { |
|||
const scrollUpButton2 = ScrollUpButton(onMouseEnterMouseLeave); |
|||
$elements.forEach(function ($element) { |
|||
for (var _i = 0, _arr = [scrollDownButton, scrollUpButton2]; _i < _arr.length; _i++) { |
|||
$element.fadeOut('slow'); |
|||
const element = _arr[_i]; |
|||
$body.append(element); |
|||
(0, import_ext_gadget5.tippy)(element, { |
|||
arrow: true, |
|||
content: element.getAttribute("alt"), |
|||
placement: "left" |
|||
}); |
}); |
||
}; |
|||
var left = function left(px) { |
|||
$elements.forEach(function ($element) { |
|||
$element.css('left', px ? px + 'px' : 'unset'); |
|||
}); |
|||
}; |
|||
var right = function right(px) { |
|||
$elements.forEach(function ($element) { |
|||
$element.css('right', px ? px + 'px' : 'unset'); |
|||
}); |
|||
}; |
|||
var mediaQueryList = window.matchMedia('(min-width: 1400px)'); |
|||
var isVector2022Match = false; |
|||
if (mw.config.get('skin') === 'vector-2022') { |
|||
var mediaQueryHandler = function mediaQueryHandler(event) { |
|||
if (event.matches) { |
|||
isVector2022Match = true; |
|||
right(8); |
|||
} else { |
|||
isVector2022Match = false; |
|||
right(18); |
|||
} |
|||
}; |
|||
// Check mediaQueryList as Safari doesn't have support for mediaQueryList.addEventListener |
|||
try { |
|||
mediaQueryList.addEventListener('change', mediaQueryHandler); |
|||
} catch (e) { |
|||
mediaQueryList.addListener(mediaQueryHandler); |
|||
} |
|||
if (mediaQueryList.matches) { |
|||
isVector2022Match = true; |
|||
right(8); |
|||
} |
|||
} |
} |
||
const scrollListener = () => { |
|||
var scrollButtonTimer; |
|||
let downButtonButtom; |
|||
$window.on('scroll selectionchange', function () { |
|||
let upButtonButtom; |
|||
var dingHeight = $('#bluedeck_ding>div').height() || 0; |
|||
if (document.querySelector("#proveit") || document.querySelector(".gadget-cat_a_lot-container") || document.querySelector("#gadget-word_count-tip")) { |
|||
var vector2022Height = isVector2022Match ? 24 : 0; |
|||
downButtonButtom = "85px"; |
|||
$scrollDownButton.css('bottom', dingHeight + vector2022Height + 24 + 'px'); |
|||
upButtonButtom = "127px"; |
|||
$scrollUpButton.css('bottom', dingHeight + vector2022Height + 65 + 'px'); |
|||
if (mw.config.get('wgGEHelpPanelEnabled') && $('#mw-ge-help-panel-cta-button').length || $('#cat_a_lot').length || $('#proveit').length || $('.wordcount').length) { |
|||
left(10); |
|||
} else { |
} else { |
||
downButtonButtom = "45px"; |
|||
upButtonButtom = "85px"; |
|||
} |
} |
||
scrollDownButton.style.bottom = downButtonButtom; |
|||
var windowScrollTop = $window.scrollTop() || 0; |
|||
scrollUpButton2.style.bottom = upButtonButtom; |
|||
if (windowScrollTop > 60) { |
|||
}; |
|||
fadeIn(); |
|||
const scrollListenerWithThrottle = mw.util.throttle(scrollListener, 200); |
|||
} else { |
|||
$(window).on("scroll selectionchange", scrollListenerWithThrottle); |
|||
fadeOut(); |
|||
}; |
|||
} |
|||
//! src/ScrollUpButton/ScrollUpButton.ts |
|||
clearTimeout(scrollButtonTimer); |
|||
void (0, import_ext_gadget6.getBody)().then(function scrollUpButton($body) { |
|||
scrollButtonTimer = setTimeout(fadeOut, 2000); |
|||
insertElementandListener($body); |
|||
}); |
|||
$elements.forEach(function ($element) { |
|||
$element.on('mouseenter', function () { |
|||
clearTimeout(scrollButtonTimer); |
|||
}); |
|||
}); |
|||
}); |
}); |
||
})(); |
2024年9月17日 (二) 22:22的最新版本
/**
* SPDX-License-Identifier: GPL-3.0-or-later
* _addText: '{{Gadget Header|license=GPL-3.0-or-later}}'
*
* @source {@link https://git.qiuwen.net.cn/InterfaceAdmin/QiuwenGadgets/src/branch/master/src/ScrollUpButton}
* @author 安忆 <i@anyi.in>
* @license GPL-3.0-or-later {@link https://www.qiuwenbaike.cn/wiki/H:GPL-3.0}
*/
/**
* Copyright (C) 安忆
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* +------------------------------------------------------------+
* | === WARNING: GLOBAL GADGET FILE === |
* +------------------------------------------------------------+
* | All changes should be made in the repository, |
* | otherwise they will be lost. |
* +------------------------------------------------------------+
* | Changes to this page may affect many users. |
* | Please discuss changes by opening an issue before editing. |
* +------------------------------------------------------------+
*/
/* <nowiki> */
(() => {
"use strict";
// dist/ScrollUpButton/ScrollUpButton.js
function _createForOfIteratorHelper(r, e) {
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
if (!t) {
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
t && (r = t);
var n = 0, F = function() {
};
return { s: F, n: function() {
return n >= r.length ? { done: true } : { done: false, value: r[n++] };
}, e: function(r2) {
throw r2;
}, f: F };
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var o, a = true, u = false;
return { s: function() {
t = t.call(r);
}, n: function() {
var r2 = t.next();
return a = r2.done, r2;
}, e: function(r2) {
u = true, o = r2;
}, f: function() {
try {
a || null == t.return || t.return();
} finally {
if (u) throw o;
}
} };
}
function _unsupportedIterableToArray(r, a) {
if (r) {
if ("string" == typeof r) return _arrayLikeToArray(r, a);
var t = {}.toString.call(r).slice(8, -1);
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
}
}
function _arrayLikeToArray(r, a) {
(null == a || a > r.length) && (a = r.length);
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
return n;
}
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
var _iterator = _createForOfIteratorHelper(__getOwnPropNames(from)), _step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done; ) {
let key = _step.value;
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
value: mod,
enumerable: true
}) : target,
mod
));
//! src/ScrollUpButton/ScrollUpButton.ts
var import_ext_gadget6 = require("ext.gadget.Util");
//! src/ScrollUpButton/modules/constant.ts
var CLASS_NAME = "gadget-scroll_up_button";
var CLASS_NAME_DOWN = "".concat(CLASS_NAME, "-down");
var CLASS_NAME_UP = "".concat(CLASS_NAME, "-up");
//! src/ScrollUpButton/components/scrollButton.tsx
var import_ext_gadget2 = __toESM(require("ext.gadget.React"), 1);
//! src/ScrollUpButton/modules/i18n.ts
var import_ext_gadget = require("ext.gadget.i18n");
var getI18nMessages = () => {
return {
ToBottom: (0, import_ext_gadget.localize)({
en: "Scroll to the bottom",
"zh-hans": "滚动至页底",
"zh-hant": "滾動至頁底"
}),
ToTop: (0, import_ext_gadget.localize)({
en: "Go back to the top",
"zh-hans": "滚动至页顶",
"zh-hant": "滾動至頁頂"
})
};
};
var i18nMessages = getI18nMessages();
var getMessage = (key) => {
return i18nMessages[key] || key;
};
//! src/ScrollUpButton/components/scrollButton.tsx
var import_ext_gadget3 = require("ext.gadget.Util");
function ScrollButton(props) {
const {
additionalClassName,
alt,
ariaLabel,
onClick,
onMouseEnter,
onMouseLeave
} = props;
return /* @__PURE__ */ import_ext_gadget2.default.createElement("img", {
className: [CLASS_NAME, additionalClassName, "noprint"],
src: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1' height='1'%3E%3C/svg%3E",
width: "32",
height: "32",
draggable: false,
alt,
"aria-label": ariaLabel,
onClick,
onMouseEnter,
onMouseLeave
});
}
var TO_BOTTOM = getMessage("ToBottom");
var TO_TOP = getMessage("ToTop");
var ScrollDownButton = (onMouseEnterMouseLeave) => /* @__PURE__ */ import_ext_gadget2.default.createElement(ScrollButton, {
additionalClassName: CLASS_NAME_DOWN,
alt: TO_BOTTOM,
ariaLabel: TO_BOTTOM,
onClick: () => {
var _$$height, _$$height2;
(0, import_ext_gadget3.scrollTop)(((_$$height = $(document).height()) !== null && _$$height !== void 0 ? _$$height : 0) - ((_$$height2 = $(window).height()) !== null && _$$height2 !== void 0 ? _$$height2 : 0));
},
onMouseEnter: onMouseEnterMouseLeave,
onMouseLeave: onMouseEnterMouseLeave
});
var ScrollUpButton = (onMouseEnterMouseLeave) => /* @__PURE__ */ import_ext_gadget2.default.createElement(ScrollButton, {
additionalClassName: CLASS_NAME_UP,
alt: TO_TOP,
ariaLabel: TO_TOP,
onClick: () => {
(0, import_ext_gadget3.scrollTop)(0);
},
onMouseEnter: onMouseEnterMouseLeave,
onMouseLeave: onMouseEnterMouseLeave
});
//! src/ScrollUpButton/modules/insertElementAndListener.ts
var import_ext_gadget4 = require("ext.gadget.Util");
var import_ext_gadget5 = require("ext.gadget.Tippy");
var insertElementandListener = ($body) => {
const onMouseEnterMouseLeave = (event) => {
(0, import_ext_gadget4.changeOpacityWhenMouseEnterOrLeave)(event);
};
const scrollDownButton = ScrollDownButton(onMouseEnterMouseLeave);
const scrollUpButton2 = ScrollUpButton(onMouseEnterMouseLeave);
for (var _i = 0, _arr = [scrollDownButton, scrollUpButton2]; _i < _arr.length; _i++) {
const element = _arr[_i];
$body.append(element);
(0, import_ext_gadget5.tippy)(element, {
arrow: true,
content: element.getAttribute("alt"),
placement: "left"
});
}
const scrollListener = () => {
let downButtonButtom;
let upButtonButtom;
if (document.querySelector("#proveit") || document.querySelector(".gadget-cat_a_lot-container") || document.querySelector("#gadget-word_count-tip")) {
downButtonButtom = "85px";
upButtonButtom = "127px";
} else {
downButtonButtom = "45px";
upButtonButtom = "85px";
}
scrollDownButton.style.bottom = downButtonButtom;
scrollUpButton2.style.bottom = upButtonButtom;
};
const scrollListenerWithThrottle = mw.util.throttle(scrollListener, 200);
$(window).on("scroll selectionchange", scrollListenerWithThrottle);
};
//! src/ScrollUpButton/ScrollUpButton.ts
void (0, import_ext_gadget6.getBody)().then(function scrollUpButton($body) {
insertElementandListener($body);
});
})();