// ==UserScript==
// @name larger thumbnails v2
// @name:zh-CN 封面大图v2
// @namespace https://github.com/kygo233/tkjs/tree/v2
// @version 2025.06.01
// @author kygo233
// @description Show larger thumbnails on javbus and javdb. 123av,jable,and missav can get magnet from javbus
// @description:zh-CN javbus和javdb显示大图封面; 123av,jable,missav获取javbus的磁力
// @license MIT
// @homepage https://greasyfork.org/zh-CN/scripts/537891-larger-thumbnails-v2
// @include /^https?:\/\/.*(javbus|busjav|busfan|fanbus|buscdn|cdnbus|dmmsee|seedmm|busdmm|dmmbus|javsee|seejav)\..*$/
// @include /^https?:\/\/.*(javdb)[0-9]*\..*$/
// @include /^https?:\/\/.*(missav)\.(ws|ai).*$/
// @include /^https?:\/\/.*(123av\.com|123av\.ws|1av\.to).*$/
// @include /^https?:\/\/.*(jable\.tv).*$/
// @connect javbus.com
// @connect javfree.me
// @connect blogjav.net
// @connect missav.ws
// @connect *
// @grant GM_addStyle
// @grant GM_download
// @grant GM_getValue
// @grant GM_setClipboard
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// ==/UserScript==
(e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const t=document.createElement("style");t.textContent=e,document.head.append(t)})(" .hidden-b{display:none!important}.alert-zdy{position:fixed;white-space:nowrap;top:50%;left:50%;padding:10px;font-size:20px;color:#fff;background-color:#000000bf;border-radius:5px;z-index:1051;transform:translate(-50%,-50%)}.alert-close{display:inline-block;padding:0 0 0 10px;color:gray;cursor:pointer}.btn-copy{display:block;margin:auto;border:none;color:#fff;white-space:nowrap;background-color:#dc3545;padding:.375rem .75rem;border-radius:.25rem}[data-theme=dark] body[javdb] #grid-b a.box-b{color:#d1d1d1;background-color:#222}[data-theme=dark] body[javdb] .alert-zdy{color:#000;background-color:#ffffffe5}[data-theme=light] body[javdb] #myModal .modal-content-b[id^=magnet]{background-color:#ffffffe5}body[javdb] #myModal #modal-div article.message{margin-bottom:0}body[javdb] .max-width-100{max-width:100%!important}body[missav] #myModal,body[missav] .alert-zdy,body[missav] .menu-b{z-index:2147483648!important}body[missav] div.scroll-status{color:#dbdbdb}body[jable] #myModal,body[jable] .alert-zdy{z-index:1901}.menu-b.svelte-1tay3fy{position:fixed;z-index:1030;left:0;top:0;display:flex;flex-direction:column}.menu-b.svelte-1tay3fy .menu-tool:where(.svelte-1tay3fy){width:30px;height:30px;cursor:pointer;font-size:20px;opacity:0}.menu-b.svelte-1tay3fy .menu-tool:where(.svelte-1tay3fy):hover{opacity:1}.menu-b.svelte-1tay3fy .menu-tool:where(.svelte-1tay3fy).menu-tool-opacity{opacity:1}.menu-list.svelte-1tay3fy{padding:5px;background:linear-gradient(to left top,#f3fef4,#fbfbfb);color:#000;border-radius:5px;font-size:large;font-weight:550;box-shadow:0 10px 20px #0000007f;animation:fadeInUp .2s ease-out;max-height:calc(99vh - 30px);overflow-y:auto}.menu-list.svelte-1tay3fy>div:where(.svelte-1tay3fy){display:flex;align-items:center;padding:5px;border-radius:5px}.menu-list.svelte-1tay3fy>div:where(.svelte-1tay3fy):hover{background-color:#39563637}.menu-list.svelte-1tay3fy input:where(.svelte-1tay3fy){margin:0;padding:0}.menu-list.svelte-1tay3fy label:where(.svelte-1tay3fy){margin:0;padding:0 5px}.menu-list.svelte-1tay3fy .checkbox-div:where(.svelte-1tay3fy) label:where(.svelte-1tay3fy){flex-grow:1}.menu-list.svelte-1tay3fy .range-div:where(.svelte-1tay3fy) input:where(.svelte-1tay3fy){width:250px}.menu-list.svelte-1tay3fy .range-div:where(.svelte-1tay3fy) input:where(.svelte-1tay3fy):disabled+span:where(.svelte-1tay3fy){opacity:.5}.menu-list.svelte-1tay3fy .input-div:where(.svelte-1tay3fy) input:where(.svelte-1tay3fy){border-radius:3px;border:1px solid rgb(0,0,0,.5);padding:3px;font-size:medium;flex-grow:1;outline:none}.menu-list.svelte-1tay3fy .radio-div:where(.svelte-1tay3fy) label:where(.svelte-1tay3fy){font-weight:initial}.scroll-status.svelte-3t0pvd{display:flex;align-items:center;justify-content:center;height:15px;font-size:20px}.scroll-status.svelte-3t0pvd .scroll-load:where(.svelte-3t0pvd){width:100px;height:5px;border-radius:10px;background:currentColor;opacity:.5}.preview-panel.svelte-1i4knad{min-height:100vh}.preview-panel.svelte-1i4knad ul.preview-title-ul:where(.svelte-1i4knad){margin:0;padding:10px 10px 10px 40px;list-style-type:disc}.preview-panel.svelte-1i4knad .preview-dwonload:where(.svelte-1i4knad){position:absolute;border-radius:3px;padding:3px;right:0;z-index:2;cursor:pointer;background-color:#3333338d;color:#f0f8ff}.preview-panel.svelte-1i4knad .preview-dwonload:where(.svelte-1i4knad)>svg{width:25px;height:25px;vertical-align:middle}.preview-panel.svelte-1i4knad .preview-dwonload:where(.svelte-1i4knad).span-loading{animation:span-loading 1s infinite}.preview-panel.svelte-1i4knad .preview-title:where(.svelte-1i4knad){color:#ffffff7f;font-size:20px;cursor:pointer}.preview-panel.svelte-1i4knad .preview-title-current:where(.svelte-1i4knad){color:#fff}.preview-panel.svelte-1i4knad .preview-title-loading:where(.svelte-1i4knad){animation:svelte-1i4knad-changeTextColor 1s ease-in infinite}.preview-panel.svelte-1i4knad .img-none:where(.svelte-1i4knad){color:#fff;font-size:30px;margin-left:20px}.preview-panel.svelte-1i4knad .preview-img:where(.svelte-1i4knad){width:100%;cursor:zoom-in}.preview-panel.svelte-1i4knad .preview-img:where(.svelte-1i4knad).img-zoom{max-width:120%;width:120%;margin:0 -10%;cursor:zoom-out}@keyframes svelte-1i4knad-changeTextColor{0%,to{color:#fff}50%{color:#ffffff80}}#myModal.svelte-196dhj1{overflow-x:hidden;overflow-y:auto;position:fixed;top:0;left:0;right:0;bottom:0;z-index:1050;background-color:#000000bf;display:flex;justify-content:center;align-items:center}#modal-div.svelte-196dhj1{position:relative;width:80%;max-width:1400px;animation:svelte-196dhj1-fadeInDown .5s ease-out;max-height:100vh}#modal-div.svelte-196dhj1 .modal-content-b{background-color:#00000080;border-radius:5px}#modal-div.svelte-196dhj1 .sample-box-zdy,#modal-div.svelte-196dhj1 .avatar-box-zdy{display:inline-block;border-radius:5px;background-color:#fff;text-align:center;margin:0 5px 5px 0;width:130px}#modal-div.svelte-196dhj1 .sample-box-zdy .photo-frame{overflow:hidden;margin:5px}#modal-div.svelte-196dhj1 .sample-box-zdy img{height:90px}#modal-div.svelte-196dhj1 .avatar-box-zdy .photo-frame{overflow:hidden;height:120px;margin:5px}#modal-div.svelte-196dhj1 .avatar-box-zdy img{height:120px}#modal-div.svelte-196dhj1 .avatar-box-zdy span{font-weight:700;word-wrap:break-word;padding:5px;line-height:22px;color:#333}#modal-div.svelte-196dhj1 .javbus-table{width:100%;background-color:#fff;border-radius:5px;overflow:hidden}#modal-div.svelte-196dhj1 .javbus-table tr td:first-child{padding-left:10px}#modal-div.svelte-196dhj1 .javbus-table tr:hover{background-color:#d4d4d4!important}#modal-div.svelte-196dhj1 .javbus-table a.btn{color:#fff;padding:1px 3px;white-space:nowrap;border-radius:.25rem;opacity:.65}#modal-div.svelte-196dhj1 .javbus-table a.btn.btn-primary{background-color:#265a88}#modal-div.svelte-196dhj1 .javbus-table a.btn.btn-warning{background-color:#eb9316}@keyframes svelte-196dhj1-fadeInDown{0%{transform:translate3d(0,-50%,0);opacity:0}to{transform:none;opacity:1}}#grid-b.svelte-1ljjefi{display:flex;flex-wrap:wrap}#grid-b.svelte-1ljjefi .item-b:where(.svelte-1ljjefi){padding:5px;transition:width .5s;animation:fadeInUp .5s ease-out}#grid-b.svelte-1ljjefi .item-b:where(.svelte-1ljjefi) .avatar-box{display:flex;flex-direction:column;border-radius:5px;align-items:center;width:100%;margin:0}#grid-b.svelte-1ljjefi .item-b:where(.svelte-1ljjefi) .avatar-box .photo-frame{margin:5px}#grid-b.svelte-1ljjefi .item-b:where(.svelte-1ljjefi) .avatar-box p{margin:0!important}#grid-b.svelte-1ljjefi .box-b:where(.svelte-1ljjefi){display:block;border-radius:5px;background-color:#fff;border:1px solid rgba(0,0,0,.2);box-shadow:0 2px 3px #0000001a;overflow:hidden;color:#000}#grid-b.svelte-1ljjefi .box-b:where(.svelte-1ljjefi):visited .detail-title:where(.svelte-1ljjefi){color:gray}#grid-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi){position:relative}#grid-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi) img:where(.svelte-1ljjefi){position:absolute;bottom:0;left:0;width:100%;height:100%;object-fit:cover}#grid-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi) img:where(.svelte-1ljjefi):not([src]){visibility:hidden}#grid-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi) img.lazy.error{width:auto}#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi){padding:6px 8px}#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi) .info-bottom:where(.svelte-1ljjefi){display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi) .detail-title:where(.svelte-1ljjefi):hover,#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi) .detail-avid:where(.svelte-1ljjefi):hover{text-decoration:underline}#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi) .detail-avid:where(.svelte-1ljjefi){font-size:18px}#grid-b.svelte-1ljjefi .detail-b:where(.svelte-1ljjefi) .titleNowrap:where(.svelte-1ljjefi){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#grid-b.full-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi){padding-top:67.25%}#grid-b.half-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi){padding-top:142.57%}#grid-b.half-b.svelte-1ljjefi .cover-b:where(.svelte-1ljjefi) img:where(.svelte-1ljjefi){object-position:right}.toolbar-b.svelte-1ljjefi{display:flex}.cover-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi{position:absolute;bottom:0;right:0;padding:16px 6px 6px 16px;opacity:0}.cover-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi:hover{opacity:1;animation:fadeInUp .5s ease-out}.cover-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi:has(span.span-loading:where(.svelte-1ljjefi)){opacity:1}.cover-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi){margin:2px;padding:4px;color:#0ff;background-color:#383838e6}.detail-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi){opacity:.6;padding:0 2px}.detail-b:where(.svelte-1ljjefi) .toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi):hover{opacity:1}.toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi){display:flex;border-radius:5px}.toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi) svg{width:24px;height:24px}.toolbar-b.svelte-1ljjefi span:where(.svelte-1ljjefi).span-loading{animation:span-loading 1s infinite}@keyframes span-loading{0%,to{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}50%{transform:translateY(-15%);animation-timing-function:cubic-bezier(.8,0,1,1)}}@keyframes fadeInUp{0%{transform:translate3d(0,5%,0);opacity:.5}to{transform:none;opacity:1}}.magnet-grid.svelte-zo3rh{opacity:0;border-radius:5px;color:#e5e9f0;padding:5px;cursor:pointer}.magnet-grid.svelte-zo3rh svg{width:22px;height:22px}.magnet-grid.svelte-zo3rh:hover{opacity:1}body[missav] .magnet-grid.svelte-zo3rh{width:initial;height:initial;bottom:initial;left:initial;right:5px;top:5px;background-color:#1f2937bf}body[av123] .magnet-grid.svelte-zo3rh{position:absolute;right:10px;top:10px;background-color:#0006}body[jable] .magnet-grid.svelte-zo3rh{position:absolute;right:15px;top:5px;z-index:100;background-color:#00000080}.magnet-video.svelte-zo3rh{color:#eceff4;cursor:pointer}body[av123] .magnet-video.svelte-zo3rh{margin-left:10px}span.span-loading.svelte-zo3rh{opacity:1;animation:span-loading 1s infinite} ");
(function () {
'use strict';
var _a, _b;
const [JAVBUS, JAVDB, MISSAV, AV123, JABLE, JAVFREE, BLOGJAV] = ["javbus", "javdb", "missav", "av123", "jable", "javfree", "blogjav"];
const [GRID, VIDEO] = ["grid", "video"];
const id = () => Math.random().toString(16).slice(2);
const siteList = [
{
name: JAVBUS,
domainReg: /^https?:\/\/.*(javbus|busjav|busfan|fanbus|buscdn|cdnbus|dmmsee|seedmm|busdmm|dmmbus|javsee|seejav)\..*$/,
excludePages: ["/actresses", "mdl=favor&sort=1", "mdl=favor&sort=2", "mdl=favor&sort=3", "mdl=favor&sort=4", "searchstar"],
halfImgBlockPages: ["/uncensored", "mod=uc", "javbus.hair"],
gridSelector: "div#waterfall",
itemSelector: "div#waterfall>div.item",
pageNext: "a#next",
getAvItem: function(elem) {
var _a2, _b2, _c, _d;
let AVID = (_a2 = elem.querySelector("date")) == null ? void 0 : _a2.textContent;
if (!AVID) return { html: elem.innerHTML };
let href = (_b2 = elem.querySelector("a")) == null ? void 0 : _b2.href;
let img = elem.querySelector("div.photo-frame>img");
let src = img == null ? void 0 : img.src;
if (src.match(/pics.dmm.co.jp/)) {
src = src.replace(/ps.jpg/, "pl.jpg");
} else if (src.match(/image.mgstage.com/)) {
src = src.replace(/pf_o1_|pb_p_/, "pb_e_");
} else {
src = src.replace(/thumbs/, "cover").replace(/thumb/, "cover").replace(/.jpg/, "_b.jpg");
}
let title = img == null ? void 0 : img.title;
let date = (_c = elem.querySelectorAll("date")[1]) == null ? void 0 : _c.textContent;
let itemTag = (_d = elem.querySelector("div.photo-info div:first-of-type")) == null ? void 0 : _d.innerHTML;
return { id: id(), AVID, href, src, title, date, itemTag, score: "" };
}
},
{
name: JAVDB,
domainReg: /^https?:\/\/.*(javdb)[0-9]*\..*$/,
excludePages: ["/users/"],
halfImgBlockPages: ["/uncensored", "/western", "/video_uncensored", "/video_western"],
itemSelector: "div.movie-list.h>div.item",
pageNext: "a.pagination-next",
getAvItem: function(elem) {
var _a2, _b2, _c, _d, _e, _f, _g;
let href = (_a2 = elem.querySelector("a")) == null ? void 0 : _a2.href;
let src = (_b2 = elem.querySelector("div.cover > img")) == null ? void 0 : _b2.src;
let title = (_c = elem.querySelector("a")) == null ? void 0 : _c.title;
let AVID = (_d = elem.querySelector("div.video-title>strong")) == null ? void 0 : _d.textContent;
let date = (_e = elem.querySelector("div.meta")) == null ? void 0 : _e.textContent;
let score = (_f = elem.querySelector("div.score")) == null ? void 0 : _f.innerHTML;
let itemTag = (_g = elem.querySelector(".tags.has-addons")) == null ? void 0 : _g.innerHTML;
return { id: id(), AVID, href, src, title, date, itemTag, score };
}
},
{
name: MISSAV,
domainReg: /^https?:\/\/.*(missav)\.(ws|ai).*$/,
itemSelectorObj: {
[GRID]: "div.grid[x-init]>div",
[VIDEO]: `button[\\@click\\.prevent="togglePanel('share')"]`
},
pageNext: "a[rel=next]"
},
{
name: AV123,
domainReg: /^https?:\/\/.*(123av\.com|123av\.ws|1av\.to).*$/,
itemSelectorObj: {
[GRID]: "#page-list .box-item-list>div",
[VIDEO]: "button.btn.favourite"
},
pageNext: ".pagination .active + li a"
},
{
name: JABLE,
domainReg: /^https?:\/\/.*(jable\.tv).*$/,
itemSelectorObj: {
[GRID]: "div[id^=list_videos_] div.row>div",
[VIDEO]: ".video-info .my-3 button"
}
}
];
const DEV = false;
var is_array = Array.isArray;
var index_of = Array.prototype.indexOf;
var array_from = Array.from;
var define_property = Object.defineProperty;
var get_descriptor = Object.getOwnPropertyDescriptor;
var get_descriptors = Object.getOwnPropertyDescriptors;
var object_prototype = Object.prototype;
var array_prototype = Array.prototype;
var get_prototype_of = Object.getPrototypeOf;
var is_extensible = Object.isExtensible;
const noop = () => {
};
function run(fn) {
return fn();
}
function run_all(arr) {
for (var i2 = 0; i2 < arr.length; i2++) {
arr[i2]();
}
}
const DERIVED = 1 << 1;
const EFFECT = 1 << 2;
const RENDER_EFFECT = 1 << 3;
const BLOCK_EFFECT = 1 << 4;
const BRANCH_EFFECT = 1 << 5;
const ROOT_EFFECT = 1 << 6;
const BOUNDARY_EFFECT = 1 << 7;
const UNOWNED = 1 << 8;
const DISCONNECTED = 1 << 9;
const CLEAN = 1 << 10;
const DIRTY = 1 << 11;
const MAYBE_DIRTY = 1 << 12;
const INERT = 1 << 13;
const DESTROYED = 1 << 14;
const EFFECT_RAN = 1 << 15;
const EFFECT_TRANSPARENT = 1 << 16;
const LEGACY_DERIVED_PROP = 1 << 17;
const HEAD_EFFECT = 1 << 19;
const EFFECT_HAS_DERIVED = 1 << 20;
const EFFECT_IS_UPDATING = 1 << 21;
const STATE_SYMBOL = Symbol("$state");
const LEGACY_PROPS = Symbol("legacy props");
const LOADING_ATTR_SYMBOL = Symbol("");
function equals(value) {
return value === this.v;
}
function safe_not_equal(a2, b2) {
return a2 != a2 ? b2 == b2 : a2 !== b2 || a2 !== null && typeof a2 === "object" || typeof a2 === "function";
}
function safe_equals(value) {
return !safe_not_equal(value, this.v);
}
function effect_in_teardown(rune) {
{
throw new Error(`https://svelte.dev/e/effect_in_teardown`);
}
}
function effect_in_unowned_derived() {
{
throw new Error(`https://svelte.dev/e/effect_in_unowned_derived`);
}
}
function effect_orphan(rune) {
{
throw new Error(`https://svelte.dev/e/effect_orphan`);
}
}
function effect_update_depth_exceeded() {
{
throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);
}
}
function props_invalid_value(key) {
{
throw new Error(`https://svelte.dev/e/props_invalid_value`);
}
}
function state_descriptors_fixed() {
{
throw new Error(`https://svelte.dev/e/state_descriptors_fixed`);
}
}
function state_prototype_fixed() {
{
throw new Error(`https://svelte.dev/e/state_prototype_fixed`);
}
}
function state_unsafe_mutation() {
{
throw new Error(`https://svelte.dev/e/state_unsafe_mutation`);
}
}
let legacy_mode_flag = false;
let tracing_mode_flag = false;
function enable_legacy_mode_flag() {
legacy_mode_flag = true;
}
const EACH_ITEM_REACTIVE = 1;
const EACH_INDEX_REACTIVE = 1 << 1;
const EACH_IS_CONTROLLED = 1 << 2;
const EACH_IS_ANIMATED = 1 << 3;
const EACH_ITEM_IMMUTABLE = 1 << 4;
const PROPS_IS_IMMUTABLE = 1;
const PROPS_IS_RUNES = 1 << 1;
const PROPS_IS_UPDATED = 1 << 2;
const PROPS_IS_BINDABLE = 1 << 3;
const PROPS_IS_LAZY_INITIAL = 1 << 4;
const TEMPLATE_FRAGMENT = 1;
const TEMPLATE_USE_IMPORT_NODE = 1 << 1;
const UNINITIALIZED = Symbol();
const NAMESPACE_HTML = "http://www.w3.org/1999/xhtml";
function lifecycle_outside_component(name) {
{
throw new Error(`https://svelte.dev/e/lifecycle_outside_component`);
}
}
let component_context = null;
function set_component_context(context) {
component_context = context;
}
function push(props, runes = false, fn) {
var ctx = component_context = {
p: component_context,
c: null,
d: false,
e: null,
m: false,
s: props,
x: null,
l: null
};
if (legacy_mode_flag && !runes) {
component_context.l = {
s: null,
u: null,
r1: [],
r2: source(false)
};
}
teardown(() => {
ctx.d = true;
});
}
function pop(component) {
const context_stack_item = component_context;
if (context_stack_item !== null) {
if (component !== void 0) {
context_stack_item.x = component;
}
const component_effects = context_stack_item.e;
if (component_effects !== null) {
var previous_effect = active_effect;
var previous_reaction = active_reaction;
context_stack_item.e = null;
try {
for (var i2 = 0; i2 < component_effects.length; i2++) {
var component_effect = component_effects[i2];
set_active_effect(component_effect.effect);
set_active_reaction(component_effect.reaction);
effect(component_effect.fn);
}
} finally {
set_active_effect(previous_effect);
set_active_reaction(previous_reaction);
}
}
component_context = context_stack_item.p;
context_stack_item.m = true;
}
return component || /** @type {T} */
{};
}
function is_runes() {
return !legacy_mode_flag || component_context !== null && component_context.l === null;
}
function proxy(value) {
if (typeof value !== "object" || value === null || STATE_SYMBOL in value) {
return value;
}
const prototype = get_prototype_of(value);
if (prototype !== object_prototype && prototype !== array_prototype) {
return value;
}
var sources = /* @__PURE__ */ new Map();
var is_proxied_array = is_array(value);
var version = /* @__PURE__ */ state(0);
var reaction = active_reaction;
var with_parent = (fn) => {
var previous_reaction = active_reaction;
set_active_reaction(reaction);
var result = fn();
set_active_reaction(previous_reaction);
return result;
};
if (is_proxied_array) {
sources.set("length", /* @__PURE__ */ state(
/** @type {any[]} */
value.length
));
}
return new Proxy(
/** @type {any} */
value,
{
defineProperty(_2, prop2, descriptor) {
if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) {
state_descriptors_fixed();
}
var s2 = sources.get(prop2);
if (s2 === void 0) {
s2 = with_parent(() => /* @__PURE__ */ state(descriptor.value));
sources.set(prop2, s2);
} else {
set(
s2,
with_parent(() => proxy(descriptor.value))
);
}
return true;
},
deleteProperty(target, prop2) {
var s2 = sources.get(prop2);
if (s2 === void 0) {
if (prop2 in target) {
sources.set(
prop2,
with_parent(() => /* @__PURE__ */ state(UNINITIALIZED))
);
update_version(version);
}
} else {
if (is_proxied_array && typeof prop2 === "string") {
var ls = (
/** @type {Source<number>} */
sources.get("length")
);
var n2 = Number(prop2);
if (Number.isInteger(n2) && n2 < ls.v) {
set(ls, n2);
}
}
set(s2, UNINITIALIZED);
update_version(version);
}
return true;
},
get(target, prop2, receiver) {
var _a2;
if (prop2 === STATE_SYMBOL) {
return value;
}
var s2 = sources.get(prop2);
var exists = prop2 in target;
if (s2 === void 0 && (!exists || ((_a2 = get_descriptor(target, prop2)) == null ? void 0 : _a2.writable))) {
s2 = with_parent(() => /* @__PURE__ */ state(proxy(exists ? target[prop2] : UNINITIALIZED)));
sources.set(prop2, s2);
}
if (s2 !== void 0) {
var v2 = get(s2);
return v2 === UNINITIALIZED ? void 0 : v2;
}
return Reflect.get(target, prop2, receiver);
},
getOwnPropertyDescriptor(target, prop2) {
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop2);
if (descriptor && "value" in descriptor) {
var s2 = sources.get(prop2);
if (s2) descriptor.value = get(s2);
} else if (descriptor === void 0) {
var source2 = sources.get(prop2);
var value2 = source2 == null ? void 0 : source2.v;
if (source2 !== void 0 && value2 !== UNINITIALIZED) {
return {
enumerable: true,
configurable: true,
value: value2,
writable: true
};
}
}
return descriptor;
},
has(target, prop2) {
var _a2;
if (prop2 === STATE_SYMBOL) {
return true;
}
var s2 = sources.get(prop2);
var has = s2 !== void 0 && s2.v !== UNINITIALIZED || Reflect.has(target, prop2);
if (s2 !== void 0 || active_effect !== null && (!has || ((_a2 = get_descriptor(target, prop2)) == null ? void 0 : _a2.writable))) {
if (s2 === void 0) {
s2 = with_parent(() => /* @__PURE__ */ state(has ? proxy(target[prop2]) : UNINITIALIZED));
sources.set(prop2, s2);
}
var value2 = get(s2);
if (value2 === UNINITIALIZED) {
return false;
}
}
return has;
},
set(target, prop2, value2, receiver) {
var _a2;
var s2 = sources.get(prop2);
var has = prop2 in target;
if (is_proxied_array && prop2 === "length") {
for (var i2 = value2; i2 < /** @type {Source<number>} */
s2.v; i2 += 1) {
var other_s = sources.get(i2 + "");
if (other_s !== void 0) {
set(other_s, UNINITIALIZED);
} else if (i2 in target) {
other_s = with_parent(() => /* @__PURE__ */ state(UNINITIALIZED));
sources.set(i2 + "", other_s);
}
}
}
if (s2 === void 0) {
if (!has || ((_a2 = get_descriptor(target, prop2)) == null ? void 0 : _a2.writable)) {
s2 = with_parent(() => /* @__PURE__ */ state(void 0));
set(
s2,
with_parent(() => proxy(value2))
);
sources.set(prop2, s2);
}
} else {
has = s2.v !== UNINITIALIZED;
set(
s2,
with_parent(() => proxy(value2))
);
}
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop2);
if (descriptor == null ? void 0 : descriptor.set) {
descriptor.set.call(receiver, value2);
}
if (!has) {
if (is_proxied_array && typeof prop2 === "string") {
var ls = (
/** @type {Source<number>} */
sources.get("length")
);
var n2 = Number(prop2);
if (Number.isInteger(n2) && n2 >= ls.v) {
set(ls, n2 + 1);
}
}
update_version(version);
}
return true;
},
ownKeys(target) {
get(version);
var own_keys = Reflect.ownKeys(target).filter((key2) => {
var source3 = sources.get(key2);
return source3 === void 0 || source3.v !== UNINITIALIZED;
});
for (var [key, source2] of sources) {
if (source2.v !== UNINITIALIZED && !(key in target)) {
own_keys.push(key);
}
}
return own_keys;
},
setPrototypeOf() {
state_prototype_fixed();
}
}
);
}
function update_version(signal, d2 = 1) {
set(signal, signal.v + d2);
}
function get_proxied_value(value) {
try {
if (value !== null && typeof value === "object" && STATE_SYMBOL in value) {
return value[STATE_SYMBOL];
}
} catch {
}
return value;
}
function is(a2, b2) {
return Object.is(get_proxied_value(a2), get_proxied_value(b2));
}
// @__NO_SIDE_EFFECTS__
function derived(fn) {
var flags = DERIVED | DIRTY;
var parent_derived = active_reaction !== null && (active_reaction.f & DERIVED) !== 0 ? (
/** @type {Derived} */
active_reaction
) : null;
if (active_effect === null || parent_derived !== null && (parent_derived.f & UNOWNED) !== 0) {
flags |= UNOWNED;
} else {
active_effect.f |= EFFECT_HAS_DERIVED;
}
const signal = {
ctx: component_context,
deps: null,
effects: null,
equals,
f: flags,
fn,
reactions: null,
rv: 0,
v: (
/** @type {V} */
null
),
wv: 0,
parent: parent_derived ?? active_effect
};
return signal;
}
// @__NO_SIDE_EFFECTS__
function user_derived(fn) {
const d2 = /* @__PURE__ */ derived(fn);
push_reaction_value(d2);
return d2;
}
// @__NO_SIDE_EFFECTS__
function derived_safe_equal(fn) {
const signal = /* @__PURE__ */ derived(fn);
signal.equals = safe_equals;
return signal;
}
function destroy_derived_effects(derived2) {
var effects = derived2.effects;
if (effects !== null) {
derived2.effects = null;
for (var i2 = 0; i2 < effects.length; i2 += 1) {
destroy_effect(
/** @type {Effect} */
effects[i2]
);
}
}
}
function get_derived_parent_effect(derived2) {
var parent = derived2.parent;
while (parent !== null) {
if ((parent.f & DERIVED) === 0) {
return (
/** @type {Effect} */
parent
);
}
parent = parent.parent;
}
return null;
}
function execute_derived(derived2) {
var value;
var prev_active_effect = active_effect;
set_active_effect(get_derived_parent_effect(derived2));
{
try {
destroy_derived_effects(derived2);
value = update_reaction(derived2);
} finally {
set_active_effect(prev_active_effect);
}
}
return value;
}
function update_derived(derived2) {
var value = execute_derived(derived2);
if (!derived2.equals(value)) {
derived2.v = value;
derived2.wv = increment_write_version();
}
if (is_destroying_effect) return;
var status = (skip_reaction || (derived2.f & UNOWNED) !== 0) && derived2.deps !== null ? MAYBE_DIRTY : CLEAN;
set_signal_status(derived2, status);
}
const old_values = /* @__PURE__ */ new Map();
function source(v2, stack) {
var signal = {
f: 0,
// TODO ideally we could skip this altogether, but it causes type errors
v: v2,
reactions: null,
equals,
rv: 0,
wv: 0
};
return signal;
}
// @__NO_SIDE_EFFECTS__
function state(v2, stack) {
const s2 = source(v2);
push_reaction_value(s2);
return s2;
}
// @__NO_SIDE_EFFECTS__
function mutable_source(initial_value, immutable = false) {
var _a2;
const s2 = source(initial_value);
if (!immutable) {
s2.equals = safe_equals;
}
if (legacy_mode_flag && component_context !== null && component_context.l !== null) {
((_a2 = component_context.l).s ?? (_a2.s = [])).push(s2);
}
return s2;
}
function mutate(source2, value) {
set(
source2,
untrack(() => get(source2))
);
return value;
}
function set(source2, value, should_proxy = false) {
if (active_reaction !== null && !untracking && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT)) !== 0 && !(reaction_sources == null ? void 0 : reaction_sources.includes(source2))) {
state_unsafe_mutation();
}
let new_value = should_proxy ? proxy(value) : value;
return internal_set(source2, new_value);
}
function internal_set(source2, value) {
if (!source2.equals(value)) {
var old_value = source2.v;
if (is_destroying_effect) {
old_values.set(source2, value);
} else {
old_values.set(source2, old_value);
}
source2.v = value;
if ((source2.f & DERIVED) !== 0) {
if ((source2.f & DIRTY) !== 0) {
execute_derived(
/** @type {Derived} */
source2
);
}
set_signal_status(source2, (source2.f & UNOWNED) === 0 ? CLEAN : MAYBE_DIRTY);
}
source2.wv = increment_write_version();
mark_reactions(source2, DIRTY);
if (is_runes() && active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {
if (untracked_writes === null) {
set_untracked_writes([source2]);
} else {
untracked_writes.push(source2);
}
}
}
return value;
}
function mark_reactions(signal, status) {
var reactions = signal.reactions;
if (reactions === null) return;
var runes = is_runes();
var length = reactions.length;
for (var i2 = 0; i2 < length; i2++) {
var reaction = reactions[i2];
var flags = reaction.f;
if ((flags & DIRTY) !== 0) continue;
if (!runes && reaction === active_effect) continue;
set_signal_status(reaction, status);
if ((flags & (CLEAN | UNOWNED)) !== 0) {
if ((flags & DERIVED) !== 0) {
mark_reactions(
/** @type {Derived} */
reaction,
MAYBE_DIRTY
);
} else {
schedule_effect(
/** @type {Effect} */
reaction
);
}
}
}
}
let hydrating = false;
var $window;
var is_firefox;
var first_child_getter;
var next_sibling_getter;
function init_operations() {
if ($window !== void 0) {
return;
}
$window = window;
is_firefox = /Firefox/.test(navigator.userAgent);
var element_prototype = Element.prototype;
var node_prototype = Node.prototype;
var text_prototype = Text.prototype;
first_child_getter = get_descriptor(node_prototype, "firstChild").get;
next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get;
if (is_extensible(element_prototype)) {
element_prototype.__click = void 0;
element_prototype.__className = void 0;
element_prototype.__attributes = null;
element_prototype.__style = void 0;
element_prototype.__e = void 0;
}
if (is_extensible(text_prototype)) {
text_prototype.__t = void 0;
}
}
function create_text(value = "") {
return document.createTextNode(value);
}
// @__NO_SIDE_EFFECTS__
function get_first_child(node) {
return first_child_getter.call(node);
}
// @__NO_SIDE_EFFECTS__
function get_next_sibling(node) {
return next_sibling_getter.call(node);
}
function child(node, is_text) {
{
return /* @__PURE__ */ get_first_child(node);
}
}
function first_child(fragment, is_text) {
{
var first = (
/** @type {DocumentFragment} */
/* @__PURE__ */ get_first_child(
/** @type {Node} */
fragment
)
);
if (first instanceof Comment && first.data === "") return /* @__PURE__ */ get_next_sibling(first);
return first;
}
}
function sibling(node, count = 1, is_text = false) {
let next_sibling = node;
while (count--) {
next_sibling = /** @type {TemplateNode} */
/* @__PURE__ */ get_next_sibling(next_sibling);
}
{
return next_sibling;
}
}
function clear_text_content(node) {
node.textContent = "";
}
function validate_effect(rune) {
if (active_effect === null && active_reaction === null) {
effect_orphan();
}
if (active_reaction !== null && (active_reaction.f & UNOWNED) !== 0 && active_effect === null) {
effect_in_unowned_derived();
}
if (is_destroying_effect) {
effect_in_teardown();
}
}
function push_effect(effect2, parent_effect) {
var parent_last = parent_effect.last;
if (parent_last === null) {
parent_effect.last = parent_effect.first = effect2;
} else {
parent_last.next = effect2;
effect2.prev = parent_last;
parent_effect.last = effect2;
}
}
function create_effect(type, fn, sync, push2 = true) {
var parent = active_effect;
var effect2 = {
ctx: component_context,
deps: null,
nodes_start: null,
nodes_end: null,
f: type | DIRTY,
first: null,
fn,
last: null,
next: null,
parent,
prev: null,
teardown: null,
transitions: null,
wv: 0
};
if (sync) {
try {
update_effect(effect2);
effect2.f |= EFFECT_RAN;
} catch (e2) {
destroy_effect(effect2);
throw e2;
}
} else if (fn !== null) {
schedule_effect(effect2);
}
var inert = sync && effect2.deps === null && effect2.first === null && effect2.nodes_start === null && effect2.teardown === null && (effect2.f & (EFFECT_HAS_DERIVED | BOUNDARY_EFFECT)) === 0;
if (!inert && push2) {
if (parent !== null) {
push_effect(effect2, parent);
}
if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0) {
var derived2 = (
/** @type {Derived} */
active_reaction
);
(derived2.effects ?? (derived2.effects = [])).push(effect2);
}
}
return effect2;
}
function teardown(fn) {
const effect2 = create_effect(RENDER_EFFECT, null, false);
set_signal_status(effect2, CLEAN);
effect2.teardown = fn;
return effect2;
}
function user_effect(fn) {
validate_effect();
var defer = active_effect !== null && (active_effect.f & BRANCH_EFFECT) !== 0 && component_context !== null && !component_context.m;
if (defer) {
var context = (
/** @type {ComponentContext} */
component_context
);
(context.e ?? (context.e = [])).push({
fn,
effect: active_effect,
reaction: active_reaction
});
} else {
var signal = effect(fn);
return signal;
}
}
function user_pre_effect(fn) {
validate_effect();
return render_effect(fn);
}
function component_root(fn) {
const effect2 = create_effect(ROOT_EFFECT, fn, true);
return (options = {}) => {
return new Promise((fulfil) => {
if (options.outro) {
pause_effect(effect2, () => {
destroy_effect(effect2);
fulfil(void 0);
});
} else {
destroy_effect(effect2);
fulfil(void 0);
}
});
};
}
function effect(fn) {
return create_effect(EFFECT, fn, false);
}
function render_effect(fn) {
return create_effect(RENDER_EFFECT, fn, true);
}
function template_effect(fn, thunks = [], d2 = derived) {
const deriveds = thunks.map(d2);
const effect2 = () => fn(...deriveds.map(get));
return block(effect2);
}
function block(fn, flags = 0) {
return create_effect(RENDER_EFFECT | BLOCK_EFFECT | flags, fn, true);
}
function branch(fn, push2 = true) {
return create_effect(RENDER_EFFECT | BRANCH_EFFECT, fn, true, push2);
}
function execute_effect_teardown(effect2) {
var teardown2 = effect2.teardown;
if (teardown2 !== null) {
const previously_destroying_effect = is_destroying_effect;
const previous_reaction = active_reaction;
set_is_destroying_effect(true);
set_active_reaction(null);
try {
teardown2.call(null);
} finally {
set_is_destroying_effect(previously_destroying_effect);
set_active_reaction(previous_reaction);
}
}
}
function destroy_effect_children(signal, remove_dom = false) {
var effect2 = signal.first;
signal.first = signal.last = null;
while (effect2 !== null) {
var next = effect2.next;
if ((effect2.f & ROOT_EFFECT) !== 0) {
effect2.parent = null;
} else {
destroy_effect(effect2, remove_dom);
}
effect2 = next;
}
}
function destroy_block_effect_children(signal) {
var effect2 = signal.first;
while (effect2 !== null) {
var next = effect2.next;
if ((effect2.f & BRANCH_EFFECT) === 0) {
destroy_effect(effect2);
}
effect2 = next;
}
}
function destroy_effect(effect2, remove_dom = true) {
var removed = false;
if ((remove_dom || (effect2.f & HEAD_EFFECT) !== 0) && effect2.nodes_start !== null) {
remove_effect_dom(
effect2.nodes_start,
/** @type {TemplateNode} */
effect2.nodes_end
);
removed = true;
}
destroy_effect_children(effect2, remove_dom && !removed);
remove_reactions(effect2, 0);
set_signal_status(effect2, DESTROYED);
var transitions = effect2.transitions;
if (transitions !== null) {
for (const transition of transitions) {
transition.stop();
}
}
execute_effect_teardown(effect2);
var parent = effect2.parent;
if (parent !== null && parent.first !== null) {
unlink_effect(effect2);
}
effect2.next = effect2.prev = effect2.teardown = effect2.ctx = effect2.deps = effect2.fn = effect2.nodes_start = effect2.nodes_end = null;
}
function remove_effect_dom(node, end) {
while (node !== null) {
var next = node === end ? null : (
/** @type {TemplateNode} */
/* @__PURE__ */ get_next_sibling(node)
);
node.remove();
node = next;
}
}
function unlink_effect(effect2) {
var parent = effect2.parent;
var prev = effect2.prev;
var next = effect2.next;
if (prev !== null) prev.next = next;
if (next !== null) next.prev = prev;
if (parent !== null) {
if (parent.first === effect2) parent.first = next;
if (parent.last === effect2) parent.last = prev;
}
}
function pause_effect(effect2, callback) {
var transitions = [];
pause_children(effect2, transitions, true);
run_out_transitions(transitions, () => {
destroy_effect(effect2);
if (callback) callback();
});
}
function run_out_transitions(transitions, fn) {
var remaining = transitions.length;
if (remaining > 0) {
var check = () => --remaining || fn();
for (var transition of transitions) {
transition.out(check);
}
} else {
fn();
}
}
function pause_children(effect2, transitions, local) {
if ((effect2.f & INERT) !== 0) return;
effect2.f ^= INERT;
if (effect2.transitions !== null) {
for (const transition of effect2.transitions) {
if (transition.is_global || local) {
transitions.push(transition);
}
}
}
var child2 = effect2.first;
while (child2 !== null) {
var sibling2 = child2.next;
var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || (child2.f & BRANCH_EFFECT) !== 0;
pause_children(child2, transitions, transparent ? local : false);
child2 = sibling2;
}
}
function resume_effect(effect2) {
resume_children(effect2, true);
}
function resume_children(effect2, local) {
if ((effect2.f & INERT) === 0) return;
effect2.f ^= INERT;
if ((effect2.f & CLEAN) === 0) {
effect2.f ^= CLEAN;
}
if (check_dirtiness(effect2)) {
set_signal_status(effect2, DIRTY);
schedule_effect(effect2);
}
var child2 = effect2.first;
while (child2 !== null) {
var sibling2 = child2.next;
var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || (child2.f & BRANCH_EFFECT) !== 0;
resume_children(child2, transparent ? local : false);
child2 = sibling2;
}
if (effect2.transitions !== null) {
for (const transition of effect2.transitions) {
if (transition.is_global || local) {
transition.in();
}
}
}
}
let micro_tasks = [];
let idle_tasks = [];
function run_micro_tasks() {
var tasks = micro_tasks;
micro_tasks = [];
run_all(tasks);
}
function run_idle_tasks() {
var tasks = idle_tasks;
idle_tasks = [];
run_all(tasks);
}
function queue_micro_task(fn) {
if (micro_tasks.length === 0) {
queueMicrotask(run_micro_tasks);
}
micro_tasks.push(fn);
}
function flush_tasks() {
if (micro_tasks.length > 0) {
run_micro_tasks();
}
if (idle_tasks.length > 0) {
run_idle_tasks();
}
}
let is_throwing_error = false;
let is_flushing = false;
let last_scheduled_effect = null;
let is_updating_effect = false;
let is_destroying_effect = false;
function set_is_destroying_effect(value) {
is_destroying_effect = value;
}
let queued_root_effects = [];
let active_reaction = null;
let untracking = false;
function set_active_reaction(reaction) {
active_reaction = reaction;
}
let active_effect = null;
function set_active_effect(effect2) {
active_effect = effect2;
}
let reaction_sources = null;
function push_reaction_value(value) {
if (active_reaction !== null && active_reaction.f & EFFECT_IS_UPDATING) {
if (reaction_sources === null) {
reaction_sources = [value];
} else {
reaction_sources.push(value);
}
}
}
let new_deps = null;
let skipped_deps = 0;
let untracked_writes = null;
function set_untracked_writes(value) {
untracked_writes = value;
}
let write_version = 1;
let read_version = 0;
let skip_reaction = false;
function increment_write_version() {
return ++write_version;
}
function check_dirtiness(reaction) {
var _a2;
var flags = reaction.f;
if ((flags & DIRTY) !== 0) {
return true;
}
if ((flags & MAYBE_DIRTY) !== 0) {
var dependencies = reaction.deps;
var is_unowned = (flags & UNOWNED) !== 0;
if (dependencies !== null) {
var i2;
var dependency;
var is_disconnected = (flags & DISCONNECTED) !== 0;
var is_unowned_connected = is_unowned && active_effect !== null && !skip_reaction;
var length = dependencies.length;
if (is_disconnected || is_unowned_connected) {
var derived2 = (
/** @type {Derived} */
reaction
);
var parent = derived2.parent;
for (i2 = 0; i2 < length; i2++) {
dependency = dependencies[i2];
if (is_disconnected || !((_a2 = dependency == null ? void 0 : dependency.reactions) == null ? void 0 : _a2.includes(derived2))) {
(dependency.reactions ?? (dependency.reactions = [])).push(derived2);
}
}
if (is_disconnected) {
derived2.f ^= DISCONNECTED;
}
if (is_unowned_connected && parent !== null && (parent.f & UNOWNED) === 0) {
derived2.f ^= UNOWNED;
}
}
for (i2 = 0; i2 < length; i2++) {
dependency = dependencies[i2];
if (check_dirtiness(
/** @type {Derived} */
dependency
)) {
update_derived(
/** @type {Derived} */
dependency
);
}
if (dependency.wv > reaction.wv) {
return true;
}
}
}
if (!is_unowned || active_effect !== null && !skip_reaction) {
set_signal_status(reaction, CLEAN);
}
}
return false;
}
function propagate_error(error, effect2) {
var current = effect2;
while (current !== null) {
if ((current.f & BOUNDARY_EFFECT) !== 0) {
try {
current.fn(error);
return;
} catch {
current.f ^= BOUNDARY_EFFECT;
}
}
current = current.parent;
}
is_throwing_error = false;
throw error;
}
function should_rethrow_error(effect2) {
return (effect2.f & DESTROYED) === 0 && (effect2.parent === null || (effect2.parent.f & BOUNDARY_EFFECT) === 0);
}
function handle_error(error, effect2, previous_effect, component_context2) {
if (is_throwing_error) {
if (previous_effect === null) {
is_throwing_error = false;
}
if (should_rethrow_error(effect2)) {
throw error;
}
return;
}
if (previous_effect !== null) {
is_throwing_error = true;
}
propagate_error(error, effect2);
if (should_rethrow_error(effect2)) {
throw error;
}
}
function schedule_possible_effect_self_invalidation(signal, effect2, root2 = true) {
var reactions = signal.reactions;
if (reactions === null) return;
for (var i2 = 0; i2 < reactions.length; i2++) {
var reaction = reactions[i2];
if (reaction_sources == null ? void 0 : reaction_sources.includes(signal)) continue;
if ((reaction.f & DERIVED) !== 0) {
schedule_possible_effect_self_invalidation(
/** @type {Derived} */
reaction,
effect2,
false
);
} else if (effect2 === reaction) {
if (root2) {
set_signal_status(reaction, DIRTY);
} else if ((reaction.f & CLEAN) !== 0) {
set_signal_status(reaction, MAYBE_DIRTY);
}
schedule_effect(
/** @type {Effect} */
reaction
);
}
}
}
function update_reaction(reaction) {
var _a2;
var previous_deps = new_deps;
var previous_skipped_deps = skipped_deps;
var previous_untracked_writes = untracked_writes;
var previous_reaction = active_reaction;
var previous_skip_reaction = skip_reaction;
var previous_reaction_sources = reaction_sources;
var previous_component_context = component_context;
var previous_untracking = untracking;
var flags = reaction.f;
new_deps = /** @type {null | Value[]} */
null;
skipped_deps = 0;
untracked_writes = null;
skip_reaction = (flags & UNOWNED) !== 0 && (untracking || !is_updating_effect || active_reaction === null);
active_reaction = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;
reaction_sources = null;
set_component_context(reaction.ctx);
untracking = false;
read_version++;
reaction.f |= EFFECT_IS_UPDATING;
try {
var result = (
/** @type {Function} */
(0, reaction.fn)()
);
var deps = reaction.deps;
if (new_deps !== null) {
var i2;
remove_reactions(reaction, skipped_deps);
if (deps !== null && skipped_deps > 0) {
deps.length = skipped_deps + new_deps.length;
for (i2 = 0; i2 < new_deps.length; i2++) {
deps[skipped_deps + i2] = new_deps[i2];
}
} else {
reaction.deps = deps = new_deps;
}
if (!skip_reaction) {
for (i2 = skipped_deps; i2 < deps.length; i2++) {
((_a2 = deps[i2]).reactions ?? (_a2.reactions = [])).push(reaction);
}
}
} else if (deps !== null && skipped_deps < deps.length) {
remove_reactions(reaction, skipped_deps);
deps.length = skipped_deps;
}
if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) {
for (i2 = 0; i2 < /** @type {Source[]} */
untracked_writes.length; i2++) {
schedule_possible_effect_self_invalidation(
untracked_writes[i2],
/** @type {Effect} */
reaction
);
}
}
if (previous_reaction !== null && previous_reaction !== reaction) {
read_version++;
if (untracked_writes !== null) {
if (previous_untracked_writes === null) {
previous_untracked_writes = untracked_writes;
} else {
previous_untracked_writes.push(.../** @type {Source[]} */
untracked_writes);
}
}
}
return result;
} finally {
new_deps = previous_deps;
skipped_deps = previous_skipped_deps;
untracked_writes = previous_untracked_writes;
active_reaction = previous_reaction;
skip_reaction = previous_skip_reaction;
reaction_sources = previous_reaction_sources;
set_component_context(previous_component_context);
untracking = previous_untracking;
reaction.f ^= EFFECT_IS_UPDATING;
}
}
function remove_reaction(signal, dependency) {
let reactions = dependency.reactions;
if (reactions !== null) {
var index2 = index_of.call(reactions, signal);
if (index2 !== -1) {
var new_length = reactions.length - 1;
if (new_length === 0) {
reactions = dependency.reactions = null;
} else {
reactions[index2] = reactions[new_length];
reactions.pop();
}
}
}
if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear
// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
// allows us to skip the expensive work of disconnecting and immediately reconnecting it
(new_deps === null || !new_deps.includes(dependency))) {
set_signal_status(dependency, MAYBE_DIRTY);
if ((dependency.f & (UNOWNED | DISCONNECTED)) === 0) {
dependency.f ^= DISCONNECTED;
}
destroy_derived_effects(
/** @type {Derived} **/
dependency
);
remove_reactions(
/** @type {Derived} **/
dependency,
0
);
}
}
function remove_reactions(signal, start_index) {
var dependencies = signal.deps;
if (dependencies === null) return;
for (var i2 = start_index; i2 < dependencies.length; i2++) {
remove_reaction(signal, dependencies[i2]);
}
}
function update_effect(effect2) {
var flags = effect2.f;
if ((flags & DESTROYED) !== 0) {
return;
}
set_signal_status(effect2, CLEAN);
var previous_effect = active_effect;
var previous_component_context = component_context;
var was_updating_effect = is_updating_effect;
active_effect = effect2;
is_updating_effect = true;
try {
if ((flags & BLOCK_EFFECT) !== 0) {
destroy_block_effect_children(effect2);
} else {
destroy_effect_children(effect2);
}
execute_effect_teardown(effect2);
var teardown2 = update_reaction(effect2);
effect2.teardown = typeof teardown2 === "function" ? teardown2 : null;
effect2.wv = write_version;
var deps = effect2.deps;
var dep;
if (DEV && tracing_mode_flag && (effect2.f & DIRTY) !== 0 && deps !== null) ;
if (DEV) ;
} catch (error) {
handle_error(error, effect2, previous_effect, previous_component_context || effect2.ctx);
} finally {
is_updating_effect = was_updating_effect;
active_effect = previous_effect;
}
}
function infinite_loop_guard() {
try {
effect_update_depth_exceeded();
} catch (error) {
if (last_scheduled_effect !== null) {
{
handle_error(error, last_scheduled_effect, null);
}
} else {
throw error;
}
}
}
function flush_queued_root_effects() {
var was_updating_effect = is_updating_effect;
try {
var flush_count = 0;
is_updating_effect = true;
while (queued_root_effects.length > 0) {
if (flush_count++ > 1e3) {
infinite_loop_guard();
}
var root_effects = queued_root_effects;
var length = root_effects.length;
queued_root_effects = [];
for (var i2 = 0; i2 < length; i2++) {
var collected_effects = process_effects(root_effects[i2]);
flush_queued_effects(collected_effects);
}
old_values.clear();
}
} finally {
is_flushing = false;
is_updating_effect = was_updating_effect;
last_scheduled_effect = null;
}
}
function flush_queued_effects(effects) {
var length = effects.length;
if (length === 0) return;
for (var i2 = 0; i2 < length; i2++) {
var effect2 = effects[i2];
if ((effect2.f & (DESTROYED | INERT)) === 0) {
try {
if (check_dirtiness(effect2)) {
update_effect(effect2);
if (effect2.deps === null && effect2.first === null && effect2.nodes_start === null) {
if (effect2.teardown === null) {
unlink_effect(effect2);
} else {
effect2.fn = null;
}
}
}
} catch (error) {
handle_error(error, effect2, null, effect2.ctx);
}
}
}
}
function schedule_effect(signal) {
if (!is_flushing) {
is_flushing = true;
queueMicrotask(flush_queued_root_effects);
}
var effect2 = last_scheduled_effect = signal;
while (effect2.parent !== null) {
effect2 = effect2.parent;
var flags = effect2.f;
if ((flags & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
if ((flags & CLEAN) === 0) return;
effect2.f ^= CLEAN;
}
}
queued_root_effects.push(effect2);
}
function process_effects(root2) {
var effects = [];
var effect2 = root2;
while (effect2 !== null) {
var flags = effect2.f;
var is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
var is_skippable_branch = is_branch && (flags & CLEAN) !== 0;
if (!is_skippable_branch && (flags & INERT) === 0) {
if ((flags & EFFECT) !== 0) {
effects.push(effect2);
} else if (is_branch) {
effect2.f ^= CLEAN;
} else {
try {
if (check_dirtiness(effect2)) {
update_effect(effect2);
}
} catch (error) {
handle_error(error, effect2, null, effect2.ctx);
}
}
var child2 = effect2.first;
if (child2 !== null) {
effect2 = child2;
continue;
}
}
var parent = effect2.parent;
effect2 = effect2.next;
while (effect2 === null && parent !== null) {
effect2 = parent.next;
parent = parent.parent;
}
}
return effects;
}
function flushSync(fn) {
var result;
while (true) {
flush_tasks();
if (queued_root_effects.length === 0) {
return (
/** @type {T} */
result
);
}
is_flushing = true;
flush_queued_root_effects();
}
}
async function tick() {
await Promise.resolve();
flushSync();
}
function get(signal) {
var flags = signal.f;
var is_derived = (flags & DERIVED) !== 0;
if (active_reaction !== null && !untracking) {
if (!(reaction_sources == null ? void 0 : reaction_sources.includes(signal))) {
var deps = active_reaction.deps;
if (signal.rv < read_version) {
signal.rv = read_version;
if (new_deps === null && deps !== null && deps[skipped_deps] === signal) {
skipped_deps++;
} else if (new_deps === null) {
new_deps = [signal];
} else if (!skip_reaction || !new_deps.includes(signal)) {
new_deps.push(signal);
}
}
}
} else if (is_derived && /** @type {Derived} */
signal.deps === null && /** @type {Derived} */
signal.effects === null) {
var derived2 = (
/** @type {Derived} */
signal
);
var parent = derived2.parent;
if (parent !== null && (parent.f & UNOWNED) === 0) {
derived2.f ^= UNOWNED;
}
}
if (is_derived) {
derived2 = /** @type {Derived} */
signal;
if (check_dirtiness(derived2)) {
update_derived(derived2);
}
}
if (is_destroying_effect && old_values.has(signal)) {
return old_values.get(signal);
}
return signal.v;
}
function untrack(fn) {
var previous_untracking = untracking;
try {
untracking = true;
return fn();
} finally {
untracking = previous_untracking;
}
}
const STATUS_MASK = -7169;
function set_signal_status(signal, status) {
signal.f = signal.f & STATUS_MASK | status;
}
function deep_read_state(value) {
if (typeof value !== "object" || !value || value instanceof EventTarget) {
return;
}
if (STATE_SYMBOL in value) {
deep_read(value);
} else if (!Array.isArray(value)) {
for (let key in value) {
const prop2 = value[key];
if (typeof prop2 === "object" && prop2 && STATE_SYMBOL in prop2) {
deep_read(prop2);
}
}
}
}
function deep_read(value, visited = /* @__PURE__ */ new Set()) {
if (typeof value === "object" && value !== null && // We don't want to traverse DOM elements
!(value instanceof EventTarget) && !visited.has(value)) {
visited.add(value);
if (value instanceof Date) {
value.getTime();
}
for (let key in value) {
try {
deep_read(value[key], visited);
} catch (e2) {
}
}
const proto = get_prototype_of(value);
if (proto !== Object.prototype && proto !== Array.prototype && proto !== Map.prototype && proto !== Set.prototype && proto !== Date.prototype) {
const descriptors = get_descriptors(proto);
for (let key in descriptors) {
const get2 = descriptors[key].get;
if (get2) {
try {
get2.call(value);
} catch (e2) {
}
}
}
}
}
}
const PASSIVE_EVENTS = ["touchstart", "touchmove"];
function is_passive_event(name) {
return PASSIVE_EVENTS.includes(name);
}
let listening_to_form_reset = false;
function add_form_reset_listener() {
if (!listening_to_form_reset) {
listening_to_form_reset = true;
document.addEventListener(
"reset",
(evt) => {
Promise.resolve().then(() => {
var _a2;
if (!evt.defaultPrevented) {
for (
const e2 of
/**@type {HTMLFormElement} */
evt.target.elements
) {
(_a2 = e2.__on_r) == null ? void 0 : _a2.call(e2);
}
}
});
},
// In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)
{ capture: true }
);
}
}
function without_reactive_context(fn) {
var previous_reaction = active_reaction;
var previous_effect = active_effect;
set_active_reaction(null);
set_active_effect(null);
try {
return fn();
} finally {
set_active_reaction(previous_reaction);
set_active_effect(previous_effect);
}
}
function listen_to_event_and_reset_event(element, event, handler, on_reset = handler) {
element.addEventListener(event, () => without_reactive_context(handler));
const prev = element.__on_r;
if (prev) {
element.__on_r = () => {
prev();
on_reset(true);
};
} else {
element.__on_r = () => on_reset(true);
}
add_form_reset_listener();
}
const all_registered_events = /* @__PURE__ */ new Set();
const root_event_handles = /* @__PURE__ */ new Set();
function delegate(events) {
for (var i2 = 0; i2 < events.length; i2++) {
all_registered_events.add(events[i2]);
}
for (var fn of root_event_handles) {
fn(events);
}
}
function handle_event_propagation(event) {
var _a2;
var handler_element = this;
var owner_document = (
/** @type {Node} */
handler_element.ownerDocument
);
var event_name = event.type;
var path = ((_a2 = event.composedPath) == null ? void 0 : _a2.call(event)) || [];
var current_target = (
/** @type {null | Element} */
path[0] || event.target
);
var path_idx = 0;
var handled_at = event.__root;
if (handled_at) {
var at_idx = path.indexOf(handled_at);
if (at_idx !== -1 && (handler_element === document || handler_element === /** @type {any} */
window)) {
event.__root = handler_element;
return;
}
var handler_idx = path.indexOf(handler_element);
if (handler_idx === -1) {
return;
}
if (at_idx <= handler_idx) {
path_idx = at_idx;
}
}
current_target = /** @type {Element} */
path[path_idx] || event.target;
if (current_target === handler_element) return;
define_property(event, "currentTarget", {
configurable: true,
get() {
return current_target || owner_document;
}
});
var previous_reaction = active_reaction;
var previous_effect = active_effect;
set_active_reaction(null);
set_active_effect(null);
try {
var throw_error;
var other_errors = [];
while (current_target !== null) {
var parent_element = current_target.assignedSlot || current_target.parentNode || /** @type {any} */
current_target.host || null;
try {
var delegated = current_target["__" + event_name];
if (delegated != null && (!/** @type {any} */
current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well
// -> the target could not have been disabled because it emits the event in the first place
event.target === current_target)) {
if (is_array(delegated)) {
var [fn, ...data] = delegated;
fn.apply(current_target, [event, ...data]);
} else {
delegated.call(current_target, event);
}
}
} catch (error) {
if (throw_error) {
other_errors.push(error);
} else {
throw_error = error;
}
}
if (event.cancelBubble || parent_element === handler_element || parent_element === null) {
break;
}
current_target = parent_element;
}
if (throw_error) {
for (let error of other_errors) {
queueMicrotask(() => {
throw error;
});
}
throw throw_error;
}
} finally {
event.__root = handler_element;
delete event.currentTarget;
set_active_reaction(previous_reaction);
set_active_effect(previous_effect);
}
}
function create_fragment_from_html(html2) {
var elem = document.createElement("template");
elem.innerHTML = html2.replaceAll("<!>", "<!---->");
return elem.content;
}
function assign_nodes(start, end) {
var effect2 = (
/** @type {Effect} */
active_effect
);
if (effect2.nodes_start === null) {
effect2.nodes_start = start;
effect2.nodes_end = end;
}
}
// @__NO_SIDE_EFFECTS__
function from_html(content, flags) {
var is_fragment = (flags & TEMPLATE_FRAGMENT) !== 0;
var use_import_node = (flags & TEMPLATE_USE_IMPORT_NODE) !== 0;
var node;
var has_start = !content.startsWith("<!>");
return () => {
if (node === void 0) {
node = create_fragment_from_html(has_start ? content : "<!>" + content);
if (!is_fragment) node = /** @type {Node} */
/* @__PURE__ */ get_first_child(node);
}
var clone = (
/** @type {TemplateNode} */
use_import_node || is_firefox ? document.importNode(node, true) : node.cloneNode(true)
);
if (is_fragment) {
var start = (
/** @type {TemplateNode} */
/* @__PURE__ */ get_first_child(clone)
);
var end = (
/** @type {TemplateNode} */
clone.lastChild
);
assign_nodes(start, end);
} else {
assign_nodes(clone, clone);
}
return clone;
};
}
function comment() {
var frag = document.createDocumentFragment();
var start = document.createComment("");
var anchor = create_text();
frag.append(start, anchor);
assign_nodes(start, anchor);
return frag;
}
function append(anchor, dom) {
if (anchor === null) {
return;
}
anchor.before(
/** @type {Node} */
dom
);
}
function set_text(text, value) {
var str = value == null ? "" : typeof value === "object" ? value + "" : value;
if (str !== (text.__t ?? (text.__t = text.nodeValue))) {
text.__t = str;
text.nodeValue = str + "";
}
}
function mount(component, options) {
return _mount(component, options);
}
const document_listeners = /* @__PURE__ */ new Map();
function _mount(Component, { target, anchor, props = {}, events, context, intro = true }) {
init_operations();
var registered_events = /* @__PURE__ */ new Set();
var event_handle = (events2) => {
for (var i2 = 0; i2 < events2.length; i2++) {
var event_name = events2[i2];
if (registered_events.has(event_name)) continue;
registered_events.add(event_name);
var passive = is_passive_event(event_name);
target.addEventListener(event_name, handle_event_propagation, { passive });
var n2 = document_listeners.get(event_name);
if (n2 === void 0) {
document.addEventListener(event_name, handle_event_propagation, { passive });
document_listeners.set(event_name, 1);
} else {
document_listeners.set(event_name, n2 + 1);
}
}
};
event_handle(array_from(all_registered_events));
root_event_handles.add(event_handle);
var component = void 0;
var unmount = component_root(() => {
var anchor_node = anchor ?? target.appendChild(create_text());
branch(() => {
if (context) {
push({});
var ctx = (
/** @type {ComponentContext} */
component_context
);
ctx.c = context;
}
if (events) {
props.$$events = events;
}
component = Component(anchor_node, props) || {};
if (context) {
pop();
}
});
return () => {
var _a2;
for (var event_name of registered_events) {
target.removeEventListener(event_name, handle_event_propagation);
var n2 = (
/** @type {number} */
document_listeners.get(event_name)
);
if (--n2 === 0) {
document.removeEventListener(event_name, handle_event_propagation);
document_listeners.delete(event_name);
} else {
document_listeners.set(event_name, n2);
}
}
root_event_handles.delete(event_handle);
if (anchor_node !== anchor) {
(_a2 = anchor_node.parentNode) == null ? void 0 : _a2.removeChild(anchor_node);
}
};
});
mounted_components.set(component, unmount);
return component;
}
let mounted_components = /* @__PURE__ */ new WeakMap();
function if_block(node, fn, [root_index, hydrate_index] = [0, 0]) {
var anchor = node;
var consequent_effect = null;
var alternate_effect = null;
var condition = UNINITIALIZED;
var flags = root_index > 0 ? EFFECT_TRANSPARENT : 0;
var has_branch = false;
const set_branch = (fn2, flag = true) => {
has_branch = true;
update_branch(flag, fn2);
};
const update_branch = (new_condition, fn2) => {
if (condition === (condition = new_condition)) return;
if (condition) {
if (consequent_effect) {
resume_effect(consequent_effect);
} else if (fn2) {
consequent_effect = branch(() => fn2(anchor));
}
if (alternate_effect) {
pause_effect(alternate_effect, () => {
alternate_effect = null;
});
}
} else {
if (alternate_effect) {
resume_effect(alternate_effect);
} else if (fn2) {
alternate_effect = branch(() => fn2(anchor, [root_index + 1, hydrate_index]));
}
if (consequent_effect) {
pause_effect(consequent_effect, () => {
consequent_effect = null;
});
}
}
};
block(() => {
has_branch = false;
fn(set_branch);
if (!has_branch) {
update_branch(null, null);
}
}, flags);
}
function index(_2, i2) {
return i2;
}
function pause_effects(state2, items, controlled_anchor, items_map) {
var transitions = [];
var length = items.length;
for (var i2 = 0; i2 < length; i2++) {
pause_children(items[i2].e, transitions, true);
}
var is_controlled = length > 0 && transitions.length === 0 && controlled_anchor !== null;
if (is_controlled) {
var parent_node = (
/** @type {Element} */
/** @type {Element} */
controlled_anchor.parentNode
);
clear_text_content(parent_node);
parent_node.append(
/** @type {Element} */
controlled_anchor
);
items_map.clear();
link(state2, items[0].prev, items[length - 1].next);
}
run_out_transitions(transitions, () => {
for (var i3 = 0; i3 < length; i3++) {
var item = items[i3];
if (!is_controlled) {
items_map.delete(item.k);
link(state2, item.prev, item.next);
}
destroy_effect(item.e, !is_controlled);
}
});
}
function each(node, flags, get_collection, get_key, render_fn, fallback_fn = null) {
var anchor = node;
var state2 = { flags, items: /* @__PURE__ */ new Map(), first: null };
var is_controlled = (flags & EACH_IS_CONTROLLED) !== 0;
if (is_controlled) {
var parent_node = (
/** @type {Element} */
node
);
anchor = parent_node.appendChild(create_text());
}
var fallback = null;
var was_empty = false;
var each_array = /* @__PURE__ */ derived_safe_equal(() => {
var collection = get_collection();
return is_array(collection) ? collection : collection == null ? [] : array_from(collection);
});
block(() => {
var array = get(each_array);
var length = array.length;
if (was_empty && length === 0) {
return;
}
was_empty = length === 0;
{
reconcile(array, state2, anchor, render_fn, flags, get_key, get_collection);
}
if (fallback_fn !== null) {
if (length === 0) {
if (fallback) {
resume_effect(fallback);
} else {
fallback = branch(() => fallback_fn(anchor));
}
} else if (fallback !== null) {
pause_effect(fallback, () => {
fallback = null;
});
}
}
get(each_array);
});
}
function reconcile(array, state2, anchor, render_fn, flags, get_key, get_collection) {
var _a2, _b2, _c, _d;
var is_animated = (flags & EACH_IS_ANIMATED) !== 0;
var should_update = (flags & (EACH_ITEM_REACTIVE | EACH_INDEX_REACTIVE)) !== 0;
var length = array.length;
var items = state2.items;
var first = state2.first;
var current = first;
var seen;
var prev = null;
var to_animate;
var matched = [];
var stashed = [];
var value;
var key;
var item;
var i2;
if (is_animated) {
for (i2 = 0; i2 < length; i2 += 1) {
value = array[i2];
key = get_key(value, i2);
item = items.get(key);
if (item !== void 0) {
(_a2 = item.a) == null ? void 0 : _a2.measure();
(to_animate ?? (to_animate = /* @__PURE__ */ new Set())).add(item);
}
}
}
for (i2 = 0; i2 < length; i2 += 1) {
value = array[i2];
key = get_key(value, i2);
item = items.get(key);
if (item === void 0) {
var child_anchor = current ? (
/** @type {TemplateNode} */
current.e.nodes_start
) : anchor;
prev = create_item(
child_anchor,
state2,
prev,
prev === null ? state2.first : prev.next,
value,
key,
i2,
render_fn,
flags,
get_collection
);
items.set(key, prev);
matched = [];
stashed = [];
current = prev.next;
continue;
}
if (should_update) {
update_item(item, value, i2, flags);
}
if ((item.e.f & INERT) !== 0) {
resume_effect(item.e);
if (is_animated) {
(_b2 = item.a) == null ? void 0 : _b2.unfix();
(to_animate ?? (to_animate = /* @__PURE__ */ new Set())).delete(item);
}
}
if (item !== current) {
if (seen !== void 0 && seen.has(item)) {
if (matched.length < stashed.length) {
var start = stashed[0];
var j2;
prev = start.prev;
var a2 = matched[0];
var b2 = matched[matched.length - 1];
for (j2 = 0; j2 < matched.length; j2 += 1) {
move(matched[j2], start, anchor);
}
for (j2 = 0; j2 < stashed.length; j2 += 1) {
seen.delete(stashed[j2]);
}
link(state2, a2.prev, b2.next);
link(state2, prev, a2);
link(state2, b2, start);
current = start;
prev = b2;
i2 -= 1;
matched = [];
stashed = [];
} else {
seen.delete(item);
move(item, current, anchor);
link(state2, item.prev, item.next);
link(state2, item, prev === null ? state2.first : prev.next);
link(state2, prev, item);
prev = item;
}
continue;
}
matched = [];
stashed = [];
while (current !== null && current.k !== key) {
if ((current.e.f & INERT) === 0) {
(seen ?? (seen = /* @__PURE__ */ new Set())).add(current);
}
stashed.push(current);
current = current.next;
}
if (current === null) {
continue;
}
item = current;
}
matched.push(item);
prev = item;
current = item.next;
}
if (current !== null || seen !== void 0) {
var to_destroy = seen === void 0 ? [] : array_from(seen);
while (current !== null) {
if ((current.e.f & INERT) === 0) {
to_destroy.push(current);
}
current = current.next;
}
var destroy_length = to_destroy.length;
if (destroy_length > 0) {
var controlled_anchor = (flags & EACH_IS_CONTROLLED) !== 0 && length === 0 ? anchor : null;
if (is_animated) {
for (i2 = 0; i2 < destroy_length; i2 += 1) {
(_c = to_destroy[i2].a) == null ? void 0 : _c.measure();
}
for (i2 = 0; i2 < destroy_length; i2 += 1) {
(_d = to_destroy[i2].a) == null ? void 0 : _d.fix();
}
}
pause_effects(state2, to_destroy, controlled_anchor, items);
}
}
if (is_animated) {
queue_micro_task(() => {
var _a3;
if (to_animate === void 0) return;
for (item of to_animate) {
(_a3 = item.a) == null ? void 0 : _a3.apply();
}
});
}
active_effect.first = state2.first && state2.first.e;
active_effect.last = prev && prev.e;
}
function update_item(item, value, index2, type) {
if ((type & EACH_ITEM_REACTIVE) !== 0) {
internal_set(item.v, value);
}
if ((type & EACH_INDEX_REACTIVE) !== 0) {
internal_set(
/** @type {Value<number>} */
item.i,
index2
);
} else {
item.i = index2;
}
}
function create_item(anchor, state2, prev, next, value, key, index2, render_fn, flags, get_collection) {
var reactive = (flags & EACH_ITEM_REACTIVE) !== 0;
var mutable = (flags & EACH_ITEM_IMMUTABLE) === 0;
var v2 = reactive ? mutable ? /* @__PURE__ */ mutable_source(value) : source(value) : value;
var i2 = (flags & EACH_INDEX_REACTIVE) === 0 ? index2 : source(index2);
var item = {
i: i2,
v: v2,
k: key,
a: null,
// @ts-expect-error
e: null,
prev,
next
};
try {
item.e = branch(() => render_fn(anchor, v2, i2, get_collection), hydrating);
item.e.prev = prev && prev.e;
item.e.next = next && next.e;
if (prev === null) {
state2.first = item;
} else {
prev.next = item;
prev.e.next = item.e;
}
if (next !== null) {
next.prev = item;
next.e.prev = item.e;
}
return item;
} finally {
}
}
function move(item, next, anchor) {
var end = item.next ? (
/** @type {TemplateNode} */
item.next.e.nodes_start
) : anchor;
var dest = next ? (
/** @type {TemplateNode} */
next.e.nodes_start
) : anchor;
var node = (
/** @type {TemplateNode} */
item.e.nodes_start
);
while (node !== end) {
var next_node = (
/** @type {TemplateNode} */
/* @__PURE__ */ get_next_sibling(node)
);
dest.before(node);
node = next_node;
}
}
function link(state2, prev, next) {
if (prev === null) {
state2.first = next;
} else {
prev.next = next;
prev.e.next = next && next.e;
}
if (next !== null) {
next.prev = prev;
next.e.prev = prev && prev.e;
}
}
function html(node, get_value, svg = false, mathml = false, skip_warning = false) {
var anchor = node;
var value = "";
template_effect(() => {
var effect2 = (
/** @type {Effect} */
active_effect
);
if (value === (value = get_value() ?? "")) {
return;
}
if (effect2.nodes_start !== null) {
remove_effect_dom(
effect2.nodes_start,
/** @type {TemplateNode} */
effect2.nodes_end
);
effect2.nodes_start = effect2.nodes_end = null;
}
if (value === "") return;
var html2 = value + "";
if (svg) html2 = `<svg>${html2}</svg>`;
else if (mathml) html2 = `<math>${html2}</math>`;
var node2 = create_fragment_from_html(html2);
if (svg || mathml) {
node2 = /** @type {Element} */
/* @__PURE__ */ get_first_child(node2);
}
assign_nodes(
/** @type {TemplateNode} */
/* @__PURE__ */ get_first_child(node2),
/** @type {TemplateNode} */
node2.lastChild
);
if (svg || mathml) {
while (/* @__PURE__ */ get_first_child(node2)) {
anchor.before(
/** @type {Node} */
/* @__PURE__ */ get_first_child(node2)
);
}
} else {
anchor.before(node2);
}
});
}
function r$6(e2) {
var t2, f2, n2 = "";
if ("string" == typeof e2 || "number" == typeof e2) n2 += e2;
else if ("object" == typeof e2) if (Array.isArray(e2)) {
var o2 = e2.length;
for (t2 = 0; t2 < o2; t2++) e2[t2] && (f2 = r$6(e2[t2])) && (n2 && (n2 += " "), n2 += f2);
} else for (f2 in e2) e2[f2] && (n2 && (n2 += " "), n2 += f2);
return n2;
}
function clsx$1() {
for (var e2, t2, f2 = 0, n2 = "", o2 = arguments.length; f2 < o2; f2++) (e2 = arguments[f2]) && (t2 = r$6(e2)) && (n2 && (n2 += " "), n2 += t2);
return n2;
}
function clsx(value) {
if (typeof value === "object") {
return clsx$1(value);
} else {
return value ?? "";
}
}
function to_class(value, hash, directives) {
var classname = value == null ? "" : "" + value;
if (hash) {
classname = classname ? classname + " " + hash : hash;
}
return classname === "" ? null : classname;
}
function set_class(dom, is_html, value, hash, prev_classes, next_classes) {
var prev = dom.__className;
if (prev !== value || prev === void 0) {
var next_class_name = to_class(value, hash);
{
if (next_class_name == null) {
dom.removeAttribute("class");
} else {
dom.className = next_class_name;
}
}
dom.__className = value;
}
return next_classes;
}
const IS_CUSTOM_ELEMENT = Symbol("is custom element");
const IS_HTML = Symbol("is html");
function set_attribute(element, attribute, value, skip_warning) {
var attributes = get_attributes(element);
if (attributes[attribute] === (attributes[attribute] = value)) return;
if (attribute === "loading") {
element[LOADING_ATTR_SYMBOL] = value;
}
if (value == null) {
element.removeAttribute(attribute);
} else if (typeof value !== "string" && get_setters(element).includes(attribute)) {
element[attribute] = value;
} else {
element.setAttribute(attribute, value);
}
}
function get_attributes(element) {
return (
/** @type {Record<string | symbol, unknown>} **/
// @ts-expect-error
element.__attributes ?? (element.__attributes = {
[IS_CUSTOM_ELEMENT]: element.nodeName.includes("-"),
[IS_HTML]: element.namespaceURI === NAMESPACE_HTML
})
);
}
var setters_cache = /* @__PURE__ */ new Map();
function get_setters(element) {
var setters = setters_cache.get(element.nodeName);
if (setters) return setters;
setters_cache.set(element.nodeName, setters = []);
var descriptors;
var proto = element;
var element_proto = Element.prototype;
while (element_proto !== proto) {
descriptors = get_descriptors(proto);
for (var key in descriptors) {
if (descriptors[key].set) {
setters.push(key);
}
}
proto = get_prototype_of(proto);
}
return setters;
}
function bind_value(input, get2, set2 = get2) {
var runes = is_runes();
listen_to_event_and_reset_event(input, "input", (is_reset) => {
var value = is_reset ? input.defaultValue : input.value;
value = is_numberlike_input(input) ? to_number(value) : value;
set2(value);
if (runes && value !== (value = get2())) {
var start = input.selectionStart;
var end = input.selectionEnd;
input.value = value ?? "";
if (end !== null) {
input.selectionStart = start;
input.selectionEnd = Math.min(end, input.value.length);
}
}
});
if (
// If we are hydrating and the value has since changed,
// then use the updated value from the input instead.
// If defaultValue is set, then value == defaultValue
// TODO Svelte 6: remove input.value check and set to empty string?
untrack(get2) == null && input.value
) {
set2(is_numberlike_input(input) ? to_number(input.value) : input.value);
}
render_effect(() => {
var value = get2();
if (is_numberlike_input(input) && value === to_number(input.value)) {
return;
}
if (input.type === "date" && !value && !input.value) {
return;
}
if (value !== input.value) {
input.value = value ?? "";
}
});
}
const pending = /* @__PURE__ */ new Set();
function bind_group(inputs, group_index, input, get2, set2 = get2) {
var is_checkbox = input.getAttribute("type") === "checkbox";
var binding_group = inputs;
if (group_index !== null) {
for (var index2 of group_index) {
binding_group = binding_group[index2] ?? (binding_group[index2] = []);
}
}
binding_group.push(input);
listen_to_event_and_reset_event(
input,
"change",
() => {
var value = input.__value;
if (is_checkbox) {
value = get_binding_group_value(binding_group, value, input.checked);
}
set2(value);
},
// TODO better default value handling
() => set2(is_checkbox ? [] : null)
);
render_effect(() => {
var value = get2();
if (is_checkbox) {
value = value || [];
input.checked = value.includes(input.__value);
} else {
input.checked = is(input.__value, value);
}
});
teardown(() => {
var index3 = binding_group.indexOf(input);
if (index3 !== -1) {
binding_group.splice(index3, 1);
}
});
if (!pending.has(binding_group)) {
pending.add(binding_group);
queue_micro_task(() => {
binding_group.sort((a2, b2) => a2.compareDocumentPosition(b2) === 4 ? -1 : 1);
pending.delete(binding_group);
});
}
queue_micro_task(() => {
});
}
function bind_checked(input, get2, set2 = get2) {
listen_to_event_and_reset_event(input, "change", (is_reset) => {
var value = is_reset ? input.defaultChecked : input.checked;
set2(value);
});
if (
// If we are hydrating and the value has since changed,
// then use the update value from the input instead.
// If defaultChecked is set, then checked == defaultChecked
untrack(get2) == null
) {
set2(input.checked);
}
render_effect(() => {
var value = get2();
input.checked = Boolean(value);
});
}
function get_binding_group_value(group, __value, checked) {
var value = /* @__PURE__ */ new Set();
for (var i2 = 0; i2 < group.length; i2 += 1) {
if (group[i2].checked) {
value.add(group[i2].__value);
}
}
if (!checked) {
value.delete(__value);
}
return Array.from(value);
}
function is_numberlike_input(input) {
var type = input.type;
return type === "number" || type === "range";
}
function to_number(value) {
return value === "" ? null : +value;
}
function bind_prop(props, prop2, value) {
var desc = get_descriptor(props, prop2);
if (desc && desc.set) {
props[prop2] = value;
teardown(() => {
props[prop2] = null;
});
}
}
function is_bound_this(bound_value, element_or_component) {
return bound_value === element_or_component || (bound_value == null ? void 0 : bound_value[STATE_SYMBOL]) === element_or_component;
}
function bind_this(element_or_component = {}, update, get_value, get_parts) {
effect(() => {
var old_parts;
var parts;
render_effect(() => {
old_parts = parts;
parts = [];
untrack(() => {
if (element_or_component !== get_value(...parts)) {
update(element_or_component, ...parts);
if (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {
update(null, ...old_parts);
}
}
});
});
return () => {
queue_micro_task(() => {
if (parts && is_bound_this(get_value(...parts), element_or_component)) {
update(null, ...parts);
}
});
};
});
return element_or_component;
}
function init(immutable = false) {
const context = (
/** @type {ComponentContextLegacy} */
component_context
);
const callbacks = context.l.u;
if (!callbacks) return;
let props = () => deep_read_state(context.s);
if (immutable) {
let version = 0;
let prev = (
/** @type {Record<string, any>} */
{}
);
const d2 = /* @__PURE__ */ derived(() => {
let changed = false;
const props2 = context.s;
for (const key in props2) {
if (props2[key] !== prev[key]) {
prev[key] = props2[key];
changed = true;
}
}
if (changed) version++;
return version;
});
props = () => get(d2);
}
if (callbacks.b.length) {
user_pre_effect(() => {
observe_all(context, props);
run_all(callbacks.b);
});
}
user_effect(() => {
const fns = untrack(() => callbacks.m.map(run));
return () => {
for (const fn of fns) {
if (typeof fn === "function") {
fn();
}
}
};
});
if (callbacks.a.length) {
user_effect(() => {
observe_all(context, props);
run_all(callbacks.a);
});
}
}
function observe_all(context, props) {
if (context.l.s) {
for (const signal of context.l.s) get(signal);
}
props();
}
let is_store_binding = false;
function capture_store_binding(fn) {
var previous_is_store_binding = is_store_binding;
try {
is_store_binding = false;
return [fn(), is_store_binding];
} finally {
is_store_binding = previous_is_store_binding;
}
}
function has_destroyed_component_ctx(current_value) {
var _a2;
return ((_a2 = current_value.ctx) == null ? void 0 : _a2.d) ?? false;
}
function prop(props, key, flags, fallback) {
var _a2;
var immutable = (flags & PROPS_IS_IMMUTABLE) !== 0;
var runes = !legacy_mode_flag || (flags & PROPS_IS_RUNES) !== 0;
var bindable = (flags & PROPS_IS_BINDABLE) !== 0;
var lazy = (flags & PROPS_IS_LAZY_INITIAL) !== 0;
var is_store_sub = false;
var prop_value;
if (bindable) {
[prop_value, is_store_sub] = capture_store_binding(() => (
/** @type {V} */
props[key]
));
} else {
prop_value = /** @type {V} */
props[key];
}
var is_entry_props = STATE_SYMBOL in props || LEGACY_PROPS in props;
var setter = bindable && (((_a2 = get_descriptor(props, key)) == null ? void 0 : _a2.set) ?? (is_entry_props && key in props && ((v2) => props[key] = v2))) || void 0;
var fallback_value = (
/** @type {V} */
fallback
);
var fallback_dirty = true;
var fallback_used = false;
var get_fallback = () => {
fallback_used = true;
if (fallback_dirty) {
fallback_dirty = false;
if (lazy) {
fallback_value = untrack(
/** @type {() => V} */
fallback
);
} else {
fallback_value = /** @type {V} */
fallback;
}
}
return fallback_value;
};
if (prop_value === void 0 && fallback !== void 0) {
if (setter && runes) {
props_invalid_value();
}
prop_value = get_fallback();
if (setter) setter(prop_value);
}
var getter;
if (runes) {
getter = () => {
var value = (
/** @type {V} */
props[key]
);
if (value === void 0) return get_fallback();
fallback_dirty = true;
fallback_used = false;
return value;
};
} else {
var derived_getter = (immutable ? derived : derived_safe_equal)(
() => (
/** @type {V} */
props[key]
)
);
derived_getter.f |= LEGACY_DERIVED_PROP;
getter = () => {
var value = get(derived_getter);
if (value !== void 0) fallback_value = /** @type {V} */
void 0;
return value === void 0 ? fallback_value : value;
};
}
if ((flags & PROPS_IS_UPDATED) === 0) {
return getter;
}
if (setter) {
var legacy_parent = props.$$legacy;
return function(value, mutation) {
if (arguments.length > 0) {
if (!runes || !mutation || legacy_parent || is_store_sub) {
setter(mutation ? getter() : value);
}
return value;
} else {
return getter();
}
};
}
var from_child = false;
var inner_current_value = /* @__PURE__ */ mutable_source(prop_value);
var current_value = /* @__PURE__ */ derived(() => {
var parent_value = getter();
var child_value = get(inner_current_value);
if (from_child) {
from_child = false;
return child_value;
}
return inner_current_value.v = parent_value;
});
if (bindable) {
get(current_value);
}
if (!immutable) current_value.equals = safe_equals;
return function(value, mutation) {
if (arguments.length > 0) {
const new_value = mutation ? get(current_value) : runes && bindable ? proxy(value) : value;
if (!current_value.equals(new_value)) {
from_child = true;
set(inner_current_value, new_value);
if (fallback_used && fallback_value !== void 0) {
fallback_value = new_value;
}
if (has_destroyed_component_ctx(current_value)) {
return value;
}
untrack(() => get(current_value));
}
return value;
}
if (has_destroyed_component_ctx(current_value)) {
return current_value.v;
}
return get(current_value);
};
}
function onMount(fn) {
if (component_context === null) {
lifecycle_outside_component();
}
if (legacy_mode_flag && component_context.l !== null) {
init_update_callbacks(component_context).m.push(fn);
} else {
user_effect(() => {
const cleanup = untrack(fn);
if (typeof cleanup === "function") return (
/** @type {() => void} */
cleanup
);
});
}
}
function onDestroy(fn) {
if (component_context === null) {
lifecycle_outside_component();
}
onMount(() => () => untrack(fn));
}
function init_update_callbacks(context) {
var l2 = (
/** @type {ComponentContextLegacy} */
context.l
);
return l2.u ?? (l2.u = { a: [], b: [], m: [] });
}
const PUBLIC_VERSION = "5";
if (typeof window !== "undefined") {
((_a = window.__svelte ?? (window.__svelte = {})).v ?? (_a.v = /* @__PURE__ */ new Set())).add(PUBLIC_VERSION);
}
var _GM_addStyle = /* @__PURE__ */ (() => typeof GM_addStyle != "undefined" ? GM_addStyle : void 0)();
var _GM_download = /* @__PURE__ */ (() => typeof GM_download != "undefined" ? GM_download : void 0)();
var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
var _GM_setClipboard = /* @__PURE__ */ (() => typeof GM_setClipboard != "undefined" ? GM_setClipboard : void 0)();
var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
const Page = siteList.find((v2) => v2.domainReg.test(location.href));
if (!Page) {
throw new Error(`domain not matched`);
}
if ((_b = Page.excludePages) == null ? void 0 : _b.find((page) => location.pathname.includes(page))) {
throw new Error(`excluded Page`);
}
let rawItemsEl;
if (Page.itemSelector) {
rawItemsEl = document.body.querySelectorAll(Page.itemSelector);
} else if (Page.itemSelectorObj) {
for (const [pageType, itemSelector] of Object.entries(Page.itemSelectorObj)) {
rawItemsEl = document.body.querySelectorAll(itemSelector);
if (rawItemsEl.length > 0) {
Page.pageType = pageType;
Page.itemSelector = itemSelector;
break;
}
}
}
if (!rawItemsEl || rawItemsEl.length < 1) {
throw new Error("No items found");
}
Page.rawItemsEl = rawItemsEl;
if (Page.gridSelector) {
Page.rawGridEl = document.body.querySelector(Page.gridSelector);
} else {
Page.rawGridEl = Page.rawItemsEl[0].parentElement;
}
document.body.setAttribute(Page.name, "");
function isMobile() {
return /Mobi|Android|iPhone|iPad|iPod/i.test(navigator.userAgent) || "ontouchstart" in window || navigator.maxTouchPoints > 0;
}
const defaultConfig = {
autoPage: false,
pageHistory: false,
toolbar: true,
autoHide: !isMobile(),
previewSite: JAVFREE,
linkUrl: "https://missav.ws/",
avInfo: false,
newWindow: true,
halfImg: false,
fullTitle: false,
clickToCopy: true,
autoColumn: true,
columnNumFull: 3,
columnNumHalf: 4
};
const missav = {
autoPage: false,
pageHistory: false,
toolbar: true,
uncensoredFilter: false
};
const av123 = {
autoPage: false,
pageHistory: false,
toolbar: true
};
const configValueName = "config";
if (Page.name == MISSAV) {
Page.defaultConfig = missav;
Page.configValueName = configValueName + "-" + Page.name;
} else if (Page.name == AV123) {
Page.defaultConfig = av123;
Page.configValueName = configValueName + "-" + Page.name;
} else {
if (Page.name == JAVDB) {
defaultConfig.maxWidth = true;
}
Page.defaultConfig = defaultConfig;
Page.configValueName = configValueName;
}
function merge(target, source2) {
const result = {};
for (const key in target) {
result[key] = source2.hasOwnProperty(key) ? source2[key] : target[key];
}
return result;
}
let obj = merge(Page.defaultConfig, _GM_getValue(Page.configValueName, {}));
const config = proxy(obj);
const e$6 = "undefined" != typeof window, i$6 = e$6 && !("onscroll" in window) || "undefined" != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent), n$7 = e$6 && window.devicePixelRatio > 1;
const a$7 = { elements_selector: ".lazy", container: i$6 || e$6 ? document : null, threshold: 300, thresholds: null, data_src: "src", data_srcset: "srcset", data_sizes: "sizes", data_bg: "bg", data_bg_hidpi: "bg-hidpi", data_bg_multi: "bg-multi", data_bg_multi_hidpi: "bg-multi-hidpi", data_bg_set: "bg-set", data_poster: "poster", class_applied: "applied", class_loading: "loading", class_loaded: "loaded", class_error: "error", class_entered: "entered", class_exited: "exited", unobserve_completed: true, unobserve_entered: false, cancel_on_exit: true, callback_enter: null, callback_exit: null, callback_applied: null, callback_loading: null, callback_loaded: null, callback_error: null, callback_finish: null, callback_cancel: null, use_native: false, restore_on_error: false }, t$8 = (l2) => Object.assign({}, a$7, l2);
const t$7 = function(t2, e2) {
let n2;
const i2 = "LazyLoad::Initialized", o2 = new t2(e2);
try {
n2 = new CustomEvent(i2, { detail: { instance: o2 } });
} catch (t3) {
n2 = document.createEvent("CustomEvent"), n2.initCustomEvent(i2, false, false, { instance: o2 });
}
window.dispatchEvent(n2);
}, e$5 = (e2, n2) => {
if (n2) if (n2.length) for (let i2, o2 = 0; i2 = n2[o2]; o2 += 1) t$7(e2, i2);
else t$7(e2, n2);
};
const s$4 = "src", t$6 = "srcset", r$5 = "sizes", e$4 = "poster", a$6 = "llOriginalAttrs", c$3 = "data";
const e$3 = "loading", d$3 = "loaded", o$5 = "applied", r$4 = "entered", a$5 = "error", n$6 = "native";
const r$3 = "data-", s$3 = "ll-status", o$4 = (t2, e2) => t2.getAttribute(r$3 + e2), i$5 = (t2, e2, l2) => {
const u2 = r$3 + e2;
null !== l2 ? t2.setAttribute(u2, l2) : t2.removeAttribute(u2);
}, a$4 = (t2) => o$4(t2, s$3), m$4 = (t2, e2) => i$5(t2, s$3, e2), b$2 = (t2) => m$4(t2, null), A$1 = (t2) => null === a$4(t2), c$2 = (t2) => a$4(t2) === e$3, d$2 = (t2) => a$4(t2) === a$5, f$2 = (e2) => a$4(e2) === n$6, p$1 = [e$3, d$3, o$5, a$5], x$2 = (t2) => p$1.indexOf(a$4(t2)) >= 0;
const o$3 = (o2, t2, i2, n2) => {
o2 && "function" == typeof o2 && (void 0 === n2 ? void 0 === i2 ? o2(t2) : o2(t2, i2) : o2(t2, i2, n2));
};
const o$2 = (o2, t2) => {
e$6 && "" !== t2 && o2.classList.add(t2);
}, t$5 = (o2, t2) => {
e$6 && "" !== t2 && o2.classList.remove(t2);
};
const e$2 = (e2) => {
e2.llTempImage = document.createElement("IMG");
}, l$2 = (e2) => {
delete e2.llTempImage;
}, m$3 = (e2) => e2.llTempImage;
const e$1 = (e2, n2) => {
if (!n2) return;
const r2 = n2._observer;
r2 && r2.unobserve(e2);
}, n$5 = (e2) => {
e2.disconnect();
}, r$2 = (n2, r2, o2) => {
r2.unobserve_entered && e$1(n2, o2);
};
const o$1 = (o2, t2) => {
o2 && (o2.loadingCount += t2);
}, t$4 = (o2) => {
o2 && (o2.toLoadCount -= 1);
}, n$4 = (o2, t2) => {
o2 && (o2.toLoadCount = t2);
}, a$3 = (o2) => o2.loadingCount > 0, d$1 = (o2) => o2.toLoadCount > 0;
const e = (e2) => {
let t2 = [];
for (let r2, a2 = 0; r2 = e2.children[a2]; a2 += 1) "SOURCE" === r2.tagName && t2.push(r2);
return t2;
}, t$3 = (t2, r2) => {
const a2 = t2.parentNode;
a2 && "PICTURE" === a2.tagName && e(a2).forEach(r2);
}, r$1 = (t2, r2) => {
e(t2).forEach(r2);
};
const c$1 = [s$4], s$2 = [s$4, e$4], u$1 = [s$4, t$6, r$5], g$3 = [c$3], b$1 = (e2) => !!e2[a$6], i$4 = (e2) => e2[a$6], m$2 = (e2) => delete e2[a$6], f$1 = (e2, r2) => {
if (b$1(e2)) return;
const o2 = {};
r2.forEach((t2) => {
o2[t2] = e2.getAttribute(t2);
}), e2[a$6] = o2;
}, d = (e2) => {
b$1(e2) || (e2[a$6] = { backgroundImage: e2.style.backgroundImage });
}, k$1 = (t2, e2) => {
if (!b$1(t2)) return;
const r2 = i$4(t2);
e2.forEach((e3) => {
((t3, e4, r3) => {
r3 ? t3.setAttribute(e4, r3) : t3.removeAttribute(e4);
})(t2, e3, r2[e3]);
});
}, I$2 = (t2) => {
if (!b$1(t2)) return;
const e2 = i$4(t2);
t2.style.backgroundImage = e2.backgroundImage;
};
const E$1 = (t2, a2, s2) => {
o$2(t2, a2.class_applied), m$4(t2, o$5), s2 && (a2.unobserve_completed && e$1(t2, a2), o$3(a2.callback_applied, t2, s2));
}, h = (t2, a2, s2) => {
o$2(t2, a2.class_loading), m$4(t2, e$3), s2 && (o$1(s2, 1), o$3(a2.callback_loading, t2, s2));
}, v = (t2, a2, s2) => {
s2 && t2.setAttribute(a2, s2);
}, y = (a2, s2) => {
v(a2, r$5, o$4(a2, s2.data_sizes)), v(a2, t$6, o$4(a2, s2.data_srcset)), v(a2, s$4, o$4(a2, s2.data_src));
}, M = (t2, a2) => {
t$3(t2, (t3) => {
f$1(t3, u$1), y(t3, a2);
}), f$1(t2, u$1), y(t2, a2);
}, N = (a2, s2) => {
f$1(a2, c$1), v(a2, s$4, o$4(a2, s2.data_src));
}, O$1 = (s2, o2) => {
r$1(s2, (a2) => {
f$1(a2, c$1), v(a2, s$4, o$4(a2, o2.data_src));
}), f$1(s2, s$2), v(s2, e$4, o$4(s2, o2.data_poster)), v(s2, s$4, o$4(s2, o2.data_src)), s2.load();
}, S = (t2, a2) => {
f$1(t2, g$3), v(t2, c$3, o$4(t2, a2.data_src));
}, $ = (a2, s2, o2) => {
const r2 = o$4(a2, s2.data_bg), m2 = o$4(a2, s2.data_bg_hidpi), i2 = n$7 && m2 ? m2 : r2;
i2 && (a2.style.backgroundImage = `url("${i2}")`, m$3(a2).setAttribute(s$4, i2), h(a2, s2, o2));
}, x$1 = (t2, a2, s2) => {
const o2 = o$4(t2, a2.data_bg_multi), r2 = o$4(t2, a2.data_bg_multi_hidpi), m2 = n$7 && r2 ? r2 : o2;
m2 && (t2.style.backgroundImage = m2, E$1(t2, a2, s2));
}, z = (t2, a2, s2) => {
const o2 = o$4(t2, a2.data_bg_set);
if (!o2) return;
let r2 = o2.split("|").map((t3) => `image-set(${t3})`);
t2.style.backgroundImage = r2.join(), E$1(t2, a2, s2);
}, B = { IMG: M, IFRAME: N, VIDEO: O$1, OBJECT: S }, C = (t2, a2) => {
const s2 = B[t2.tagName];
s2 && s2(t2, a2);
}, D$1 = (t2, a2, s2) => {
const o2 = B[t2.tagName];
o2 && (o2(t2, a2), h(t2, a2, s2));
};
const _ = ["IMG", "IFRAME", "VIDEO", "OBJECT"], j$1 = (r2) => _.indexOf(r2.tagName) > -1, b = (r2, o2) => {
!o2 || a$3(o2) || d$1(o2) || o$3(r2.callback_finish, o2);
}, L = (r2, o2, s2) => {
r2.addEventListener(o2, s2), r2.llEvLisnrs[o2] = s2;
}, u = (r2, o2, s2) => {
r2.removeEventListener(o2, s2);
}, g$2 = (r2) => !!r2.llEvLisnrs, I$1 = (r2, o2, s2) => {
g$2(r2) || (r2.llEvLisnrs = {});
const e2 = "VIDEO" === r2.tagName ? "loadeddata" : "load";
L(r2, e2, o2), L(r2, "error", s2);
}, k = (r2) => {
if (!g$2(r2)) return;
const o2 = r2.llEvLisnrs;
for (let s2 in o2) {
const e2 = o2[s2];
u(r2, s2, e2);
}
delete r2.llEvLisnrs;
}, O = (r2, s2, e2) => {
l$2(r2), o$1(e2, -1), t$4(e2), t$5(r2, s2.class_loading), s2.unobserve_completed && e$1(r2, e2);
}, x = (o2, a2, n2, i2) => {
const m2 = f$2(a2);
O(a2, n2, i2), o$2(a2, n2.class_loaded), m$4(a2, d$3), o$3(n2.callback_loaded, a2, i2), m2 || b(n2, i2);
}, A = (o2, l2, n2, i2) => {
const m2 = f$2(l2);
O(l2, n2, i2), o$2(l2, n2.class_error), m$4(l2, a$5), o$3(n2.callback_error, l2, i2), n2.restore_on_error && k$1(l2, u$1), m2 || b(n2, i2);
}, D = (r2, o2, s2) => {
const e2 = m$3(r2) || r2;
g$2(e2) || I$1(e2, (t2) => {
x(0, r2, o2, s2), k(e2);
}, (t2) => {
A(0, r2, o2, s2), k(e2);
});
};
const n$3 = (e2, i2, a2) => {
j$1(e2) ? ((t2, o2, r2) => {
D(t2, o2, r2), D$1(t2, o2, r2);
})(e2, i2, a2) : ((m2, e3, i3) => {
e$2(m2), D(m2, e3, i3), d(m2), $(m2, e3, i3), x$1(m2, e3, i3), z(m2, e3, i3);
})(e2, i2, a2);
}, l$1 = (t2, o2, r2) => {
t2.setAttribute("loading", "lazy"), D(t2, o2, r2), C(t2, o2), m$4(t2, n$6);
};
const m$1 = (e2) => {
e2.removeAttribute(s$4), e2.removeAttribute(t$6), e2.removeAttribute(r$5);
}, i$3 = (t2) => {
t$3(t2, (t3) => {
m$1(t3);
}), m$1(t2);
};
const f = (s2) => {
t$3(s2, (s3) => {
k$1(s3, u$1);
}), k$1(s2, u$1);
}, n$2 = (s2) => {
r$1(s2, (s3) => {
k$1(s3, c$1);
}), k$1(s2, s$2), s2.load();
}, j = (s2) => {
k$1(s2, c$1);
}, E = (s2) => {
k$1(s2, g$3);
}, g$1 = { IMG: f, IFRAME: j, VIDEO: n$2, OBJECT: E }, I = (t2, e2) => {
((s2) => {
const o2 = g$1[s2.tagName];
o2 ? o2(s2) : I$2(s2);
})(t2), ((o2, t3) => {
A$1(o2) || f$2(o2) || (t$5(o2, t3.class_entered), t$5(o2, t3.class_exited), t$5(o2, t3.class_applied), t$5(o2, t3.class_loading), t$5(o2, t3.class_loaded), t$5(o2, t3.class_error));
})(t2, e2), b$2(t2), m$2(t2);
};
const i$2 = (i2, l2, p2, f$12) => {
p2.cancel_on_exit && c$2(i2) && "IMG" === i2.tagName && (k(i2), i$3(i2), f(i2), t$5(i2, p2.class_loading), o$1(f$12, -1), b$2(i2), o$3(p2.callback_cancel, i2, l2, f$12));
};
const n$1 = (e2, a2, n2, p2) => {
const f2 = x$2(e2);
m$4(e2, r$4), o$2(e2, n2.class_entered), t$5(e2, n2.class_exited), r$2(e2, n2, p2), o$3(n2.callback_enter, e2, a2, p2), f2 || n$3(e2, n2, p2);
}, p = (o2, s2, r2, m2) => {
A$1(o2) || (o$2(o2, r2.class_exited), i$2(o2, s2, r2, m2), o$3(r2.callback_exit, o2, s2, m2));
};
const t$2 = ["IMG", "IFRAME", "VIDEO"], r = (o2) => o2.use_native && "loading" in HTMLImageElement.prototype, a$2 = (r2, a2, m2) => {
r2.forEach((e2) => {
-1 !== t$2.indexOf(e2.tagName) && l$1(e2, a2, m2);
}), n$4(m2, 0);
};
const n = (r2) => r2.isIntersecting || r2.intersectionRatio > 0, s$1 = (r2, e2) => {
e2.forEach((e3) => {
r2.observe(e3);
});
}, i$1 = (r2, e2) => {
n$5(r2), s$1(r2, e2);
}, a$1 = (t2, s2) => {
r(t2) || (s2._observer = new IntersectionObserver((o2) => {
((o3, t3, s3) => {
o3.forEach((o4) => n(o4) ? n$1(o4.target, o4, t3, s3) : p(o4.target, o4, t3, s3));
})(o2, t2, s2);
}, ((r2) => ({ root: r2.container === document ? null : r2.container, rootMargin: r2.thresholds || r2.threshold + "px" }))(t2)));
};
const t$1 = (e2) => Array.prototype.slice.call(e2), l = (e2) => e2.container.querySelectorAll(e2.elements_selector), o = (r2) => t$1(r2).filter(A$1), c = (e2) => d$2(e2), a = (e2) => t$1(e2).filter(c), i = (e2, r2) => o(e2 || l(r2));
const t = (n2, t2) => {
a(l(n2)).forEach((r2) => {
t$5(r2, n2.class_error), b$2(r2);
}), t2.update();
}, m = (o2, e2) => {
e$6 && (e2._onlineHandler = () => {
t(o2, e2);
}, window.addEventListener("online", e2._onlineHandler));
}, s = (o2) => {
e$6 && window.removeEventListener("online", o2._onlineHandler);
};
const g = function(o2, s2) {
const e2 = t$8(o2);
this._settings = e2, this.loadingCount = 0, a$1(e2, this), m(e2, this), this.update(s2);
};
g.prototype = { update: function(t2) {
const o2 = this._settings, s2 = i(t2, o2);
n$4(this, s2.length), i$6 ? this.loadAll(s2) : r(o2) ? a$2(s2, o2, this) : i$1(this._observer, s2);
}, destroy: function() {
this._observer && this._observer.disconnect(), s(this), l(this._settings).forEach((t2) => {
m$2(t2);
}), delete this._observer, delete this._settings, delete this._onlineHandler, delete this.loadingCount, delete this.toLoadCount;
}, loadAll: function(t2) {
const o2 = this._settings;
i(t2, o2).forEach((t3) => {
e$1(t3, this), n$3(t3, o2, this);
});
}, restoreAll: function() {
const t2 = this._settings;
l(t2).forEach((o2) => {
I(o2, t2);
});
} }, g.load = (o2, i2) => {
const e2 = t$8(i2);
n$3(o2, e2);
}, g.resetStatus = (t2) => {
b$2(t2);
}, e$6 && e$5(g, window.lazyLoadOptions);
const LOCALE = {
menu_autoPage: ["自动下一页", "Auto Next Page"],
menu_pageHistory: ["地址栏显示下一页", "Show the next page in the URL bar"],
menu_newWindow: ["新窗口打开详情页", "Open the details page in a new window"],
menu_toolbar: ["功能图标", "Tools icons"],
menu_autoHide: ["功能图标自动隐藏", "Tools icons auto hide"],
menu_avInfo: ["磁力弹窗中的演员和图片", "Actors and images in magnet pop-ups"],
menu_halfImg: ["竖图模式", "Vertical image mode"],
menu_fullTitle: ["标题全显", "Full title"],
menu_clickToCopy: ["标题和番号点击复制", "Click to copy title and code"],
menu_autoColumn: ["自适应列数", "Adaptive columns"],
menu_uncensoredFilter: ["去掉未经审查的泄露", "Remove uncensored leaks"],
menu_maxWidth: ["最大宽度", "Max width"],
menu_previewSite: ["预览图", "Video preview"],
menu_linkUrl: ["跳转到", "Jump to"],
copyButton: ["复制", "Copy"],
copySuccess: ["复制成功", "Copy successful"],
preview_none: ["未搜索到", "No results found"],
tip_magnet: ["磁力", "Magnet"],
tip_preview: ["预览图", "Video preview"],
tip_link: ["跳转", "jump to url"],
autoPage_end: ["完", "End"]
};
const language = navigator.language.toLowerCase().replace("_", "-").split("-")[0];
const LOCALE_INDEX = language === "zh" ? 0 : 1;
const LANG = {};
Object.entries(LOCALE).forEach(([key, value]) => LANG[key] = value[LOCALE_INDEX]);
var root_2$1 = /* @__PURE__ */ from_html(`<div class="range-div svelte-1tay3fy"><input type="range" min="1" max="8" step="1" class="svelte-1tay3fy"/> <span class="svelte-1tay3fy"> </span></div>`);
var root_3$3 = /* @__PURE__ */ from_html(`<div class="range-div svelte-1tay3fy"><input type="range" min="1" max="8" step="1" class="svelte-1tay3fy"/> <span class="svelte-1tay3fy"> </span></div>`);
var root_1$4 = /* @__PURE__ */ from_html(`<!> <div class="input-div svelte-1tay3fy"><span> </span> <input class="svelte-1tay3fy"/></div> <div class="radio-div svelte-1tay3fy"><span> </span> <input type="radio" class="svelte-1tay3fy"/> <label class="svelte-1tay3fy">javfree.me</label> <input type="radio" class="svelte-1tay3fy"/> <label class="svelte-1tay3fy">blogjav.net</label></div>`, 1);
var on_click$3 = (_2, isVisible) => set(isVisible, !get(isVisible));
var root_4$2 = /* @__PURE__ */ from_html(`<div class="checkbox-div svelte-1tay3fy"><input type="checkbox" class="svelte-1tay3fy"/> <label class="svelte-1tay3fy"> </label></div>`);
var root$4 = /* @__PURE__ */ from_html(`<div class="menu-b svelte-1tay3fy"><div>🔨</div> <div><!> <!></div></div>`);
function Menu($$anchor, $$props) {
push($$props, true);
const binding_group = [];
const others = ($$anchor2) => {
var fragment = root_1$4();
var node = first_child(fragment);
{
var consequent = ($$anchor3) => {
var div = root_2$1();
var input = child(div);
var span = sibling(input, 2);
var text_1 = child(span);
template_effect(() => {
input.disabled = config2().autoColumn || isHalfImgBlock();
set_text(text_1, config2().columnNumHalf);
});
bind_value(input, () => config2().columnNumHalf, ($$value) => config2().columnNumHalf = $$value);
append($$anchor3, div);
};
var alternate = ($$anchor3) => {
var div_1 = root_3$3();
var input_1 = child(div_1);
var span_1 = sibling(input_1, 2);
var text_2 = child(span_1);
template_effect(() => {
input_1.disabled = config2().autoColumn;
set_text(text_2, config2().columnNumFull);
});
bind_value(input_1, () => config2().columnNumFull, ($$value) => config2().columnNumFull = $$value);
append($$anchor3, div_1);
};
if_block(node, ($$render) => {
if (config2().halfImg) $$render(consequent);
else $$render(alternate, false);
});
}
var div_2 = sibling(node, 2);
var span_2 = child(div_2);
var text_3 = child(span_2);
var input_2 = sibling(span_2, 2);
var div_3 = sibling(div_2, 2);
var span_3 = child(div_3);
var text_4 = child(span_3);
var input_3 = sibling(span_3, 2);
var input_3_value;
var label = sibling(input_3, 2);
var input_4 = sibling(label, 2);
var input_4_value;
var label_1 = sibling(input_4, 2);
template_effect(() => {
set_text(text_3, LANG.menu_linkUrl);
set_text(text_4, LANG.menu_previewSite);
set_attribute(input_3, "id", JAVFREE + "_radio");
if (input_3_value !== (input_3_value = JAVFREE)) {
input_3.value = (input_3.__value = JAVFREE) ?? "";
}
set_attribute(label, "for", JAVFREE + "_radio");
set_attribute(input_4, "id", BLOGJAV + "_radio");
if (input_4_value !== (input_4_value = BLOGJAV)) {
input_4.value = (input_4.__value = BLOGJAV) ?? "";
}
set_attribute(label_1, "for", BLOGJAV + "_radio");
});
bind_value(input_2, () => config2().linkUrl, ($$value) => config2().linkUrl = $$value);
bind_group(
binding_group,
[],
input_3,
() => {
return config2().previewSite;
},
($$value) => config2().previewSite = $$value
);
bind_group(
binding_group,
[],
input_4,
() => {
return config2().previewSite;
},
($$value) => config2().previewSite = $$value
);
append($$anchor2, fragment);
};
let config2 = prop($$props, "config", 7), isHalfImgBlock = prop($$props, "isHalfImgBlock", 3, false);
let isVisible = /* @__PURE__ */ state(false);
let checkboxList = proxy([]);
for (const [key, value] of Object.entries(Page.defaultConfig)) {
if (typeof value === "boolean") {
checkboxList.push({
key,
text: LANG[`menu_${key}`],
disabled: key === "halfImg" && isHalfImgBlock()
});
}
}
user_effect(() => {
_GM_setValue(Page.configValueName, config2());
});
var div_4 = root$4();
var div_5 = child(div_4);
div_5.__click = [on_click$3, isVisible];
var div_6 = sibling(div_5, 2);
var node_1 = child(div_6);
each(node_1, 17, () => checkboxList, index, ($$anchor2, $$item) => {
let key = () => get($$item).key;
let text = () => get($$item).text;
let disabled = () => get($$item).disabled;
var div_7 = root_4$2();
var input_5 = child(div_7);
var label_2 = sibling(input_5, 2);
var text_5 = child(label_2);
template_effect(() => {
input_5.disabled = disabled();
set_attribute(input_5, "id", key() + "_checkbox");
set_attribute(label_2, "for", key() + "_checkbox");
set_text(text_5, text());
});
bind_checked(input_5, () => config2()[key()], ($$value) => config2()[key()] = $$value);
append($$anchor2, div_7);
});
var node_2 = sibling(node_1, 2);
{
var consequent_1 = ($$anchor2) => {
others($$anchor2);
};
if_block(node_2, ($$render) => {
if (Page.name == JAVBUS || Page.name == JAVDB) $$render(consequent_1);
});
}
template_effect(() => {
set_class(
div_5,
1,
clsx([
"menu-tool",
get(isVisible) && "menu-tool-opacity"
]),
"svelte-1tay3fy"
);
set_class(
div_6,
1,
clsx([
"menu-list",
!get(isVisible) && "hidden-b"
]),
"svelte-1tay3fy"
);
});
append($$anchor, div_4);
pop();
}
delegate(["click"]);
const asyncWithLoading = async (fn, item, loadingProp = "isLoading") => {
try {
item[loadingProp] = true;
await fn();
} catch (error) {
console.error(error);
Tips.show(error.message ?? error, Tips.TYPE.ERROR);
} finally {
item[loadingProp] = false;
}
};
async function safeFetch(url, init2) {
const response = await fetch(url, init2);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.text();
}
function getRequest(url, params) {
console.log(url);
return new Promise((resolve, reject) => {
_GM_xmlhttpRequest(
Object.assign(
{
method: "GET",
url,
timeout: 1e4,
headers: { Referer: url },
onload: (r2) => {
r2.status >= 200 && r2.status < 300 ? resolve(r2) : reject(`HTTP error! status: ${r2.status}`);
},
onerror: () => reject(`error错误`),
ontimeout: () => reject(`timeout超时`)
},
params
)
);
});
}
function getDownload(url, name) {
return new Promise((resolve, reject) => {
_GM_download({
url,
name: url.split("/").pop(),
headers: { Referer: url },
onload: () => resolve("success"),
onerror: () => reject(`error错误`),
ontimeout: () => reject(`timeout超时`)
});
});
}
const Tips = {
TYPE: {
SUCCESS: "✅",
ERROR: "❌"
},
show: (msg, type, close) => {
const alert = document.createElement("div");
alert.className = "alert-zdy";
alert.innerHTML = (type ?? "") + msg;
if (close) {
const closeButton = document.createElement("div");
closeButton.className = "alert-close";
closeButton.innerHTML = "✕";
closeButton.addEventListener("click", () => alert.style.display = "none");
alert.appendChild(closeButton);
}
document.body.appendChild(alert);
if (!close) {
setTimeout(() => {
alert.style.display = "none";
}, 3e3);
}
}
};
const downloadSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M.5 9.9a.5.5 0 0 1 .5.5v2.5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-2.5a.5.5 0 0 1 1 0v2.5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-2.5a.5.5 0 0 1 .5-.5"/><path d="M7.646 11.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 10.293V1.5a.5.5 0 0 0-1 0v8.793L5.354 8.146a.5.5 0 1 0-.708.708z"/></svg>`;
const pictureSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="m6,5.5a1.5,1.5 0 1 1 -3,0a1.5,1.5 0 0 1 3,0"/><path d="m2,1a2,2.14 0 0 0 -2,2.14l0,10.71a2,2.14 0 0 0 2,2.14l12,0a2,2.14 0 0 0 2,-2.14l0,-10.71a2,2.14 0 0 0 -2,-2.14l-12,0zm12,1.07a1,1.07 0 0 1 1,1.07l0,10.18l-3.78,-3.75a0.5,0.54 0 0 0 -0.57,0l-3.71,3.21l-2.66,-1.52a0.5,0.54 0 0 0 -0.63,0.07l-2.65,2.52l0,-10.71a1,1.07 0 0 1 1,-1.07l12,0z"/></svg>`;
const magnetSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M8 1a7 7 0 0 0-7 7v3h4V8a3 3 0 0 1 6 0v3h4V8a7 7 0 0 0-7-7m7 11h-4v3h4zM5 12H1v3h4zM0 8a8 8 0 1 1 16 0v8h-6V8a2 2 0 1 0-4 0v8H0z"/></svg>`;
const linkSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16"><path d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576zm6.787-8.201L1.591 6.602l4.339 2.76z"/></svg>`;
const clickToCopy = (event) => {
event.preventDefault();
_GM_setClipboard(event.target.textContent, "text");
Tips.show(LANG.copySuccess, Tips.TYPE.SUCCESS);
};
async function getMagnetFromJavbus(avid) {
const originUrl = "https://www.javbus.com";
avid = avid.replace(/(-uncensored-leak|-uncensored-leaked|-chinese-subtitle|-c)$/, "");
const url = `${originUrl}/${avid}`;
const response = await getRequest(url);
const [gid, uc_code] = getGid(response.responseText);
const magnetUrl = `${originUrl}/ajax/uncledatoolsbyajax.php?gid=${gid}&lang=zh&img=&uc=${uc_code}&floor=` + Math.floor(Math.random() * 1e3 + 1);
const magnetDoc = await getRequest(magnetUrl).then((r2) => r2.responseText);
const table = getMagnetTable(magnetDoc);
return [table];
}
const getGid = (doc) => {
const str = /var\s+gid\s+=\s+(\d{1,})/.exec(doc);
const uc = /var\s+uc\s+=\s+(0|1)/.exec(doc);
if (!str || !uc) {
throw new Error("getGid error");
}
return [str[1], uc[1]];
};
const getMagnetTable = (doc) => {
const table = document.createElement("table");
table.classList.add("javbus-table");
table.innerHTML = doc.substring(0, doc.indexOf("<script")).trim();
addCopybutton(table);
return table;
};
const addCopybutton = (table) => {
table.querySelectorAll("tr").forEach((tr) => {
var _a2;
const a2 = tr.querySelector("a");
if (!a2) return;
const magent = a2.href;
const td = document.createElement("td");
const button = document.createElement("button");
button.className = "btn-copy";
button.textContent = LANG.copyButton;
button.addEventListener("click", function() {
_GM_setClipboard(magent, "text");
Tips.show(LANG.copySuccess, Tips.TYPE.SUCCESS);
});
td.appendChild(button);
(_a2 = tr.firstElementChild) == null ? void 0 : _a2.after(td);
});
};
const getMagnet = {
[JAVBUS]: async (item) => {
const doc = await safeFetch(item.href);
const [gid, uc_code] = getGid(doc);
const resultEl = [];
if (config.avInfo) {
const docParsed = new DOMParser().parseFromString(doc, "text/html");
const sample = docParsed.querySelector("#sample-waterfall");
const avatar = docParsed.querySelector("#avatar-waterfall");
if (avatar) {
avatar.id = "";
avatar.querySelectorAll("a.avatar-box").forEach((a2) => {
a2.setAttribute("target", "_blank");
a2.classList.replace("avatar-box", "avatar-box-zdy");
});
resultEl.push(avatar);
}
if (sample) {
sample.id = "";
sample.querySelectorAll(".sample-box").forEach((box) => {
box.classList.replace("sample-box", "sample-box-zdy");
});
resultEl.push(sample);
}
}
const url = `${location.protocol}//${location.hostname}/ajax/uncledatoolsbyajax.php?gid=${gid}&lang=zh&img=&uc=${uc_code}&floor=` + Math.floor(Math.random() * 1e3 + 1);
const magnetDoc = await safeFetch(url);
const table = getMagnetTable(magnetDoc);
resultEl.push(table);
return resultEl;
},
[JAVDB]: async (item) => {
var _a2, _b2, _c;
const response = await safeFetch(item.href);
const docParsed = new DOMParser().parseFromString(response, "text/html");
const resultEl = [];
if (config.avInfo) {
const actors = (_a2 = docParsed.querySelector("div.video-meta-panel .panel-block a[href^='/actors/']")) == null ? void 0 : _a2.closest(".panel-block");
if (actors) {
actors.querySelectorAll("a").forEach((a2) => {
a2.setAttribute("target", "_blank");
});
resultEl.push(actors);
}
const previewImages = (_b2 = docParsed.querySelector(".columns .tile-images.preview-images")) == null ? void 0 : _b2.closest(".columns");
if (previewImages) {
previewImages.querySelectorAll(".preview-video-container").forEach((container) => {
container.setAttribute("href", `#preview-video-${item.id}`);
});
(_c = previewImages.querySelector("#preview-video")) == null ? void 0 : _c.setAttribute("id", `preview-video-${item.id}`);
previewImages.querySelectorAll("img[data-src]").forEach((img) => {
img.setAttribute("src", img.getAttribute("data-src"));
});
resultEl.push(previewImages);
}
}
const magnetTable = docParsed.querySelector(`div.columns[data-controller="movie-tab"]`);
if (magnetTable) {
magnetTable.querySelectorAll("div.top-meta").forEach((meta) => meta.remove());
resultEl.push(magnetTable);
}
return resultEl;
},
[MISSAV]: getMagnetFromJavbus,
[JABLE]: getMagnetFromJavbus,
[AV123]: getMagnetFromJavbus
};
var root_1$3 = /* @__PURE__ */ from_html(`<div class="scroll-load svelte-3t0pvd"></div>`);
var root_3$2 = /* @__PURE__ */ from_html(`<div class="scroll-end"> </div>`);
var root_5 = /* @__PURE__ */ from_html(`<div class="scroll-error">error</div>`);
var root$3 = /* @__PURE__ */ from_html(`<div class="scroll-status svelte-3t0pvd"><!></div>`);
function LoadMore($$anchor, $$props) {
push($$props, true);
const [LOAD, ERROR, END] = ["1", "2", "3"];
let status = /* @__PURE__ */ state("");
let el;
let locked = false;
let nextURL;
function init2() {
var _a2;
nextURL = (_a2 = document.body.querySelector(Page.pageNext)) == null ? void 0 : _a2.getAttribute("href");
nextURL && addListener();
}
function addListener() {
document.addEventListener("scroll", domWatch);
history.scrollRestoration = "manual";
}
function removeListener() {
document.removeEventListener("scroll", domWatch);
history.scrollRestoration = "auto";
}
function domWatch() {
if (el.getBoundingClientRect().top - window.innerHeight < 300 && !locked && nextURL) {
locked = true;
loadNextPage(nextURL).then(() => {
locked = false;
});
}
}
async function loadNextPage(url) {
var _a2, _b2, _c;
try {
console.log(url);
set(status, LOAD, true);
let responseText = await safeFetch(url, { credentials: "same-origin" });
let doc = new DOMParser().parseFromString(responseText, "text/html");
let items = $$props.itemsOperations.get(doc.body.querySelectorAll(Page.itemSelector));
(_b2 = (_a2 = $$props.itemsOperations).filter) == null ? void 0 : _b2.call(_a2, items);
$$props.itemsOperations.update(items);
$$props.config.pageHistory && history.pushState({}, "", url);
nextURL = (_c = doc.body.querySelector(Page.pageNext)) == null ? void 0 : _c.getAttribute("href");
set(status, nextURL ? "" : END, true);
} catch (error) {
console.log(error);
set(status, ERROR, true);
}
}
init2();
onDestroy(removeListener);
var div = root$3();
var node = child(div);
{
var consequent = ($$anchor2) => {
var div_1 = root_1$3();
append($$anchor2, div_1);
};
var alternate = ($$anchor2, $$elseif) => {
{
var consequent_1 = ($$anchor3) => {
var div_2 = root_3$2();
var text = child(div_2);
template_effect(() => set_text(text, LANG.autoPage_end));
append($$anchor3, div_2);
};
var alternate_1 = ($$anchor3, $$elseif2) => {
{
var consequent_2 = ($$anchor4) => {
var div_3 = root_5();
append($$anchor4, div_3);
};
if_block(
$$anchor3,
($$render) => {
if (get(status) == ERROR) $$render(consequent_2);
},
$$elseif2
);
}
};
if_block(
$$anchor2,
($$render) => {
if (get(status) == END) $$render(consequent_1);
else $$render(alternate_1, false);
},
$$elseif
);
}
};
if_block(node, ($$render) => {
if (get(status) == LOAD) $$render(consequent);
else $$render(alternate, false);
});
}
bind_this(div, ($$value) => el = $$value, () => el);
append($$anchor, div);
pop();
}
const searchOptionsAll = {
[JAVFREE]: {
urlPrefix: "https://javfree.me/?s=",
resultSelector: "#primary article h2.entry-title>a",
imgSelector: '#primary .entry-content>p>img[src$=".jpeg"]'
},
[BLOGJAV]: {
urlPrefix: "https://blogjav.net/?s=",
resultSelector: "#primary article h2.entry-title>a",
imgSelector: '#primary .entry-content>p img[src*="pixhost.to/thumbs"]',
parseSrc: (src) => src.replace("thumbs", "images").replace("//t", "//img")
}
};
let searchOptions = searchOptionsAll[JAVFREE];
const setSearchOptions = (site) => {
searchOptions = searchOptionsAll[site];
};
async function getPreviewSearchResult(avid) {
const r2 = await getRequest(searchOptions.urlPrefix + avid, { timeout: 2e4 });
const doc = new DOMParser().parseFromString(r2.responseText, "text/html");
const resultsEl = doc.querySelectorAll(searchOptions.resultSelector);
const results = Array.from(resultsEl).map((v2) => ({
title: v2.innerHTML,
href: v2.href
}));
for (let i2 = 0; i2 < results.length; i2++) {
const src = await getPreviewUrl(results[i2].href);
if (src.length > 0) {
results[i2].src = src;
return results.slice(i2);
}
}
throw new Error(LANG.preview_none);
}
async function getPreviewUrl(href) {
const r2 = await getRequest(href);
const doc = new DOMParser().parseFromString(r2.responseText, "text/html");
const imgElements = doc.querySelectorAll(searchOptions.imgSelector);
const src = Array.from(imgElements).map((img) => img.src);
const parseSrc = searchOptions.parseSrc;
return parseSrc ? src.map(parseSrc) : src;
}
const download = (_2, results, current, downloadStatus) => {
const src = results[get(current)].src;
if (downloadStatus.isLoading || !src) return;
asyncWithLoading(
async () => {
for (let index2 = 0; index2 < src.length; index2++) {
await getDownload(src[index2]);
}
},
downloadStatus
);
};
var root_1$2 = /* @__PURE__ */ from_html(`<li> </li>`);
var root_4$1 = /* @__PURE__ */ from_html(`<div class="img-none svelte-1i4knad"> </div>`);
var on_click$2 = (__1, item) => get(item).zoom = !get(item).zoom;
var root_7 = /* @__PURE__ */ from_html(`<img/>`);
var root_3$1 = /* @__PURE__ */ from_html(`<div class="svelte-1i4knad"><!></div>`);
var root$2 = /* @__PURE__ */ from_html(`<div class="preview-panel svelte-1i4knad"><ul class="preview-title-ul svelte-1i4knad"></ul> <span><!></span> <!></div>`);
function Preview($$anchor, $$props) {
push($$props, true);
let results = proxy($$props.results);
let current = /* @__PURE__ */ state(0);
let downloadStatus = proxy({ isLoading: false });
const showImage = (index2) => {
const item = results[index2];
set(current, index2, true);
if (item.isLoading || item.src) {
return;
} else {
asyncWithLoading(
async () => {
item.src = await getPreviewUrl(item.href);
},
item
);
}
};
var div = root$2();
var ul = child(div);
each(ul, 21, () => results, index, ($$anchor2, item, index2) => {
var li = root_1$2();
li.__click = () => showImage(index2);
var text = child(li);
template_effect(() => {
set_class(
li,
1,
clsx([
"preview-title",
get(current) === index2 && "preview-title-current",
get(item).isLoading && "preview-title-loading"
]),
"svelte-1i4knad"
);
set_text(text, get(item).title);
});
append($$anchor2, li);
});
var span = sibling(ul, 2);
span.__click = [download, results, current, downloadStatus];
var node = child(span);
html(node, () => downloadSvg);
var node_1 = sibling(span, 2);
each(node_1, 17, () => results, index, ($$anchor2, item, index$1) => {
var fragment = comment();
var node_2 = first_child(fragment);
{
var consequent_2 = ($$anchor3) => {
var div_1 = root_3$1();
var node_3 = child(div_1);
{
var consequent = ($$anchor4) => {
var div_2 = root_4$1();
var text_1 = child(div_2);
template_effect(() => set_text(text_1, LANG.preview_none));
append($$anchor4, div_2);
};
var alternate = ($$anchor4, $$elseif) => {
{
var consequent_1 = ($$anchor5) => {
var fragment_1 = comment();
var node_4 = first_child(fragment_1);
each(node_4, 17, () => get(item).src, index, ($$anchor6, src) => {
var img = root_7();
img.__click = [on_click$2, item];
template_effect(() => {
set_attribute(img, "src", get(src));
set_class(
img,
1,
clsx([
"preview-img",
get(item).zoom && "img-zoom"
]),
"svelte-1i4knad"
);
});
append($$anchor6, img);
});
append($$anchor5, fragment_1);
};
if_block(
$$anchor4,
($$render) => {
if (get(item).src && get(item).src.length > 0) $$render(consequent_1);
},
$$elseif
);
}
};
if_block(node_3, ($$render) => {
if (get(item).src && get(item).src.length == 0) $$render(consequent);
else $$render(alternate, false);
});
}
append($$anchor3, div_1);
};
if_block(node_2, ($$render) => {
if (get(current) == index$1) $$render(consequent_2);
});
}
append($$anchor2, fragment);
});
template_effect(() => set_class(
span,
1,
clsx([
"preview-dwonload",
downloadStatus.isLoading && "span-loading"
]),
"svelte-1i4knad"
));
append($$anchor, div);
pop();
}
delegate(["click"]);
enable_legacy_mode_flag();
function onclick(e2, hide) {
e2.target.id === "myModal" && hide();
}
function onkeydown(e2, hide) {
if (e2.key === "Escape") {
hide();
}
}
var root$1 = /* @__PURE__ */ from_html(`<div id="myModal" class="hidden-b svelte-196dhj1" tabindex="-1"><div id="modal-div" class="svelte-196dhj1"></div></div>`);
function Modal($$anchor, $$props) {
push($$props, false);
let modalEl = /* @__PURE__ */ mutable_source();
let isFirst = true;
function creatEl(id2, innerHTML = "") {
const div = document.createElement("div");
div.classList.add("modal-content-b");
div.setAttribute("id", id2);
div.innerHTML = innerHTML;
return div;
}
function append$1(id2, content) {
if (isFirst) {
isFirst = false;
init$1();
}
let el;
if (typeof content === "string") {
el = creatEl(id2, content);
} else if (Array.isArray(content)) {
el = creatEl(id2);
el.append(...content);
} else if (content instanceof Object && content.props) {
el = creatEl(id2);
mount(content.component, { target: el, props: content.props });
} else {
throw new Error("content can't be parsed");
}
get(modalEl).querySelector("#modal-div").append(el);
show();
}
function show(id2) {
var _a2;
document.documentElement.classList.add("scrollBarHide");
if (id2) {
(_a2 = get(modalEl).querySelector(`#${id2}`)) == null ? void 0 : _a2.classList.remove("hidden-b");
}
get(modalEl).classList.remove("hidden-b");
get(modalEl).focus();
mutate(modalEl, get(modalEl).scrollTop = 0);
}
function hide() {
document.documentElement.classList.remove("scrollBarHide");
get(modalEl).classList.add("hidden-b");
get(modalEl).querySelectorAll(".modal-content-b").forEach((el) => el.classList.add("hidden-b"));
}
function init$1() {
setScrollBarWidth();
if (Page.name == JAVBUS) {
globalThis.$(get(modalEl)).magnificPopup({
delegate: "a.sample-box-zdy:visible",
type: "image",
closeOnContentClick: false,
closeBtnInside: false,
mainClass: "mfp-with-zoom mfp-img-mobile",
image: { verticalFit: true },
gallery: { enabled: true },
zoom: {
enabled: true,
duration: 300,
opener(element) {
return element.find("img");
}
}
});
}
}
function setScrollBarWidth() {
const el = document.createElement("p");
Object.assign(el.style, {
position: "absolute",
top: "-1000px",
width: "100px",
height: "100px",
overflowY: "scroll"
});
document.body.appendChild(el);
const scrollBarWidth = el.offsetWidth - el.clientWidth;
el.remove();
_GM_addStyle(`.scrollBarHide{ padding-right: ${scrollBarWidth}px;overflow:hidden;}`);
}
init();
var div_1 = root$1();
div_1.__click = [onclick, hide];
div_1.__keydown = [onkeydown, hide];
bind_this(div_1, ($$value) => set(modalEl, $$value), () => get(modalEl));
append($$anchor, div_1);
bind_prop($$props, "append", append$1);
bind_prop($$props, "show", show);
return pop({ append: append$1, show });
}
delegate(["click", "keydown"]);
var on_click$1 = (event, handleClick, item) => handleClick(event, item());
var root_1$1 = /* @__PURE__ */ from_html(`<div class="toolbar-b svelte-1ljjefi"><span data-name="magnet"><!></span> <span data-name="preview"><!></span> <span data-name="link"><!></span></div>`);
var root_4 = /* @__PURE__ */ from_html(`<div class="score svelte-1ljjefi"><!></div>`);
var root_2 = /* @__PURE__ */ from_html(`<a class="box-b svelte-1ljjefi"><div class="cover-b svelte-1ljjefi"><img class="lazy svelte-1ljjefi"/> <!></div> <div class="detail-b svelte-1ljjefi"><div> </div> <!> <div class="info-bottom svelte-1ljjefi"><div class="svelte-1ljjefi"><span class="detail-avid svelte-1ljjefi"> </span> <span class="svelte-1ljjefi">/ <span class="svelte-1ljjefi"> </span></span></div> <div class="item-tag svelte-1ljjefi"><!></div> <!></div></div></a>`);
var root_8 = /* @__PURE__ */ from_html(`<div class="svelte-1ljjefi"><!></div>`);
var root_6 = /* @__PURE__ */ from_html(`<div class="item-b svelte-1ljjefi"><!></div>`);
var root = /* @__PURE__ */ from_html(`<div id="grid-b"></div> <!>`, 1);
function JavbusAndJavdb($$anchor, $$props) {
var _a2;
push($$props, true);
const toolbar = ($$anchor2, item = noop) => {
var div = root_1$1();
div.__click = [on_click$1, handleClick, item];
var span = child(div);
var node = child(span);
html(node, () => magnetSvg);
var span_1 = sibling(span, 2);
var node_1 = child(span_1);
html(node_1, () => pictureSvg);
var span_2 = sibling(span_1, 2);
var node_2 = child(span_2);
html(node_2, () => linkSvg);
template_effect(() => {
set_class(span, 1, clsx({ "span-loading": item().magnetLoading }), "svelte-1ljjefi");
set_attribute(span, "title", LANG.tip_magnet);
set_class(span_1, 1, clsx({ "span-loading": item().previewLoading }), "svelte-1ljjefi");
set_attribute(span_1, "title", LANG.tip_preview);
set_class(span_2, 1, clsx({ "span-loading": item().linkLoading }), "svelte-1ljjefi");
set_attribute(span_2, "title", LANG.tip_link);
});
append($$anchor2, div);
};
const box = ($$anchor2, item = noop) => {
var a2 = root_2();
var div_1 = child(a2);
var img_1 = child(div_1);
var node_3 = sibling(img_1, 2);
{
var consequent = ($$anchor3) => {
toolbar($$anchor3, item);
};
if_block(node_3, ($$render) => {
if (config.toolbar && config.autoHide) $$render(consequent);
});
}
var div_2 = sibling(div_1, 2);
var div_3 = child(div_2);
div_3.__click = function(...$$args) {
var _a3;
(_a3 = config.clickToCopy ? (event) => clickToCopy(event) : void 0) == null ? void 0 : _a3.apply(this, $$args);
};
var text = child(div_3);
var node_4 = sibling(div_3, 2);
{
var consequent_1 = ($$anchor3) => {
var div_4 = root_4();
var node_5 = child(div_4);
html(node_5, () => item().score);
append($$anchor3, div_4);
};
if_block(node_4, ($$render) => {
if (Page.name == JAVDB) $$render(consequent_1);
});
}
var div_5 = sibling(node_4, 2);
var div_6 = child(div_5);
var span_3 = child(div_6);
span_3.__click = function(...$$args) {
var _a3;
(_a3 = config.clickToCopy ? (event) => clickToCopy(event) : void 0) == null ? void 0 : _a3.apply(this, $$args);
};
var text_1 = child(span_3);
var span_4 = sibling(span_3, 2);
var span_5 = sibling(child(span_4));
var text_2 = child(span_5);
var div_7 = sibling(div_6, 2);
var node_6 = child(div_7);
html(node_6, () => item().itemTag);
var node_7 = sibling(div_7, 2);
{
var consequent_2 = ($$anchor3) => {
toolbar($$anchor3, item);
};
if_block(node_7, ($$render) => {
if (config.toolbar && !config.autoHide) $$render(consequent_2);
});
}
template_effect(() => {
set_attribute(a2, "href", item().href);
set_attribute(a2, "target", config.newWindow ? "_blank" : "_self");
set_attribute(img_1, "data-src", item().src);
set_class(
div_3,
1,
clsx([
"detail-title",
!config.fullTitle && "titleNowrap"
]),
"svelte-1ljjefi"
);
set_text(text, item().title);
set_text(text_1, item().AVID);
set_text(text_2, item().date);
});
append($$anchor2, a2);
};
let gridEL;
const isHalfImgBlock = Boolean((_a2 = Page.halfImgBlockPages) == null ? void 0 : _a2.find((page) => location.href.includes(page)));
let isFullImg = /* @__PURE__ */ user_derived(() => isHalfImgBlock || !config.halfImg);
let windowWidth = /* @__PURE__ */ state(proxy(window.innerWidth));
let AvItems = proxy([]);
let lazyLoad;
function init2() {
lazyLoad = new g({
callback_loaded: (img) => imgResize(img)
});
itemsOperations.update(itemsOperations.get(Page.rawItemsEl));
watchConfig();
window.addEventListener("resize", () => {
set(windowWidth, window.innerWidth, true);
});
}
const itemsOperations = {
get: (raw) => {
return Array.from(raw).map((el) => Page.getAvItem(el));
},
filter: (items) => {
if (Page.name == JAVBUS && location.pathname.includes("/star/") && items) {
items.splice(0, 1);
}
},
update: (items) => {
AvItems.push(...items);
tick().then(() => {
lazyLoad.update();
});
}
};
function handleClick(event, item) {
var _a3;
event.preventDefault();
const name = (_a3 = event.target.closest("span[data-name]")) == null ? void 0 : _a3.getAttribute("data-name");
if (!name || !(name in toolbarFunc)) return;
const loadingName = `${name}Loading`;
const contentId = `${name}-${item.id}`;
if (item[loadingName]) return;
if (item.hasOwnProperty(contentId)) {
modal.show(contentId);
return;
}
asyncWithLoading(
async () => {
const content = await toolbarFunc[name](item);
if (content) {
modal.append(contentId, content);
item[contentId] = contentId;
}
},
item,
loadingName
);
}
const toolbarFunc = {
magnet: async (item) => {
return await getMagnet[Page.name](item);
},
preview: async (item) => {
const results = await getPreviewSearchResult(item.AVID);
return { component: Preview, props: { results } };
},
link: async (item) => {
new URL(config.linkUrl);
if (!config.linkUrl.endsWith("/")) {
config.linkUrl += "/";
}
const url = `${config.linkUrl}${item.AVID}`;
await getRequest(url, { method: "HEAD" });
window.open(url, "_blank");
}
};
function imgResize(img) {
const imgRatio = img.naturalHeight / img.naturalWidth;
if (imgRatio > 0.8) {
if (get(isFullImg)) {
img.style = "object-fit: contain;";
} else {
if (imgRatio < 1.3) {
img.style = "object-position: bottom;object-fit:contain";
} else {
img.style = "object-position: center;object-fit:cover";
}
}
}
}
function watchConfig() {
let isFirst = true;
user_effect(() => {
config.halfImg;
if (isFirst) {
isFirst = false;
return;
}
gridEL.querySelectorAll(".box-b img.loaded").forEach((element) => {
imgResize(element);
});
});
}
const setcolumnNum = () => {
let columnNum;
if (config.autoColumn) {
columnNum = Math.round(get(windowWidth) / (get(isFullImg) ? 500 : 350));
} else {
columnNum = get(isFullImg) ? config.columnNumFull : config.columnNumHalf;
}
_GM_addStyle(`#grid-b .item-b{ width:${100 / columnNum}%; }`);
};
if (Page.name == JAVDB) {
user_pre_effect(() => {
const el = document.body.querySelector(".section .container");
if (config.maxWidth) {
el.classList.add("max-width-100");
} else {
el.classList.remove("max-width-100");
}
});
}
user_pre_effect(setcolumnNum);
init2();
mount(Menu, {
target: document.body,
props: { config, isHalfImgBlock }
});
const modal = mount(Modal, { target: document.body });
user_pre_effect(() => {
setSearchOptions(config.previewSite);
});
var fragment_2 = root();
var div_8 = first_child(fragment_2);
each(div_8, 21, () => AvItems, index, ($$anchor2, item) => {
var div_9 = root_6();
var node_8 = child(div_9);
{
var consequent_3 = ($$anchor3) => {
box($$anchor3, () => get(item));
};
var alternate = ($$anchor3) => {
var div_10 = root_8();
var node_9 = child(div_10);
html(node_9, () => get(item).html);
append($$anchor3, div_10);
};
if_block(node_8, ($$render) => {
if (get(item).AVID) $$render(consequent_3);
else $$render(alternate, false);
});
}
append($$anchor2, div_9);
});
bind_this(div_8, ($$value) => gridEL = $$value, () => gridEL);
var node_10 = sibling(div_8, 2);
{
var consequent_4 = ($$anchor2) => {
LoadMore($$anchor2, {
get itemsOperations() {
return itemsOperations;
},
get config() {
return config;
}
});
};
if_block(node_10, ($$render) => {
if (config.autoPage) $$render(consequent_4);
});
}
template_effect(() => set_class(div_8, 1, clsx(get(isFullImg) ? "full-b" : "half-b"), "svelte-1ljjefi"));
append($$anchor, fragment_2);
pop();
}
delegate(["click"]);
var root_1 = /* @__PURE__ */ from_html(`<span><!></span>`);
var on_click = (event, showMagnet) => showMagnet(event);
var root_3 = /* @__PURE__ */ from_html(`<span><!></span>`);
function Magnet($$anchor, $$props) {
push($$props, true);
let config2 = prop($$props, "config", 19, () => ({}));
const id2 = "magnet" + Math.random().toString(16).slice(2);
let loadState = proxy({ isLoading: false, isLoaded: false });
function showMagnet(event) {
event.preventDefault();
if (loadState.isLoading) return;
if (loadState.isLoaded) {
$$props.modal.show(id2);
return;
}
asyncWithLoading(
async () => {
const content = await getMagnet[Page.name]($$props.AVID);
$$props.modal.append(id2, content);
loadState.isLoaded = true;
},
loadState
);
}
var fragment = comment();
var node = first_child(fragment);
{
var consequent = ($$anchor2) => {
var span = root_1();
span.__click = showMagnet;
var node_1 = child(span);
html(node_1, () => magnetSvg);
template_effect(() => set_class(
span,
1,
clsx([
"magnet-grid",
loadState.isLoading && "span-loading",
config2().toolbar === false && "hidden-b"
]),
"svelte-zo3rh"
));
append($$anchor2, span);
};
var alternate = ($$anchor2, $$elseif) => {
{
var consequent_1 = ($$anchor3) => {
var span_1 = root_3();
span_1.__click = [on_click, showMagnet];
var node_2 = child(span_1);
html(node_2, () => magnetSvg);
template_effect(() => set_class(
span_1,
1,
clsx([
"magnet-video",
loadState.isLoading && "span-loading"
]),
"svelte-zo3rh"
));
append($$anchor3, span_1);
};
if_block(
$$anchor2,
($$render) => {
if (Page.pageType == VIDEO) $$render(consequent_1);
},
$$elseif
);
}
};
if_block(node, ($$render) => {
if (Page.pageType == GRID) $$render(consequent);
else $$render(alternate, false);
});
}
append($$anchor, fragment);
pop();
}
delegate(["click"]);
function Missav($$anchor, $$props) {
push($$props, false);
let lozadObj;
function init$1() {
let items = itemsOperations.get(Page.rawItemsEl);
itemsOperations.filter(items);
lozadObj = lozad(".lozad", {
loaded(element) {
element.classList.remove("lozad");
}
});
}
const itemsOperations = {
get: (raw) => {
var _a2;
for (let i2 = 0; i2 < raw.length; i2++) {
const el = raw[i2];
const AVID = (_a2 = el.querySelector("a")) == null ? void 0 : _a2.getAttribute("alt");
mount(Magnet, {
target: el.querySelector("div.thumbnail>div:first-child"),
props: { AVID, type: Page.pageType, modal, config }
});
}
return raw;
},
filter: (items) => {
if (config.uncensoredFilter) {
items.forEach((element) => {
let el = element.querySelector("a[alt$=uncensored-leak]");
if (el) {
element.style.display = "none";
}
});
}
},
update: (items) => {
Page.rawGridEl.append(...Array.from(items));
tick().then(() => {
lozadObj.observe();
});
}
};
const modal = mount(Modal, { target: document.body });
init$1();
mount(Menu, { target: document.body, props: { config } });
init();
var fragment = comment();
var node = first_child(fragment);
{
var consequent = ($$anchor2) => {
LoadMore($$anchor2, {
get itemsOperations() {
return itemsOperations;
},
get config() {
return config;
}
});
};
if_block(node, ($$render) => {
if (config.autoPage) $$render(consequent);
});
}
append($$anchor, fragment);
pop();
}
function Jable($$anchor, $$props) {
push($$props, false);
function parseItems(raw) {
for (let i2 = 0; i2 < raw.length; i2++) {
const imgBox = raw[i2].querySelector(".img-box a");
const AVID = imgBox.href.split("/").filter(Boolean).slice(-1)[0];
mount(Magnet, {
target: imgBox,
props: { AVID, type: Page.pageType, modal }
});
}
}
function creatObserver() {
const targetSelector = location.pathname.includes("/my/") ? "#site-content>.container" : "#site-content";
const targetNode = document.body.querySelector(targetSelector);
if (!targetNode) return;
const callback = function(mutationsList) {
mutationsList.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
mutation.addedNodes.forEach((addNode) => {
if (/list_videos.*_videos/.test(addNode.id)) {
requestAnimationFrame(() => {
parseItems(document.body.querySelectorAll(Page.itemSelector));
});
}
});
}
});
};
const observer = new MutationObserver(callback);
observer.observe(targetNode, { childList: true });
}
const modal = mount(Modal, { target: document.body });
parseItems(Page.rawItemsEl);
creatObserver();
init();
pop();
}
function Av123($$anchor, $$props) {
push($$props, false);
const itemsOperations = {
get: (raw) => {
var _a2;
for (let i2 = 0; i2 < raw.length; i2++) {
const el = raw[i2];
const href = (_a2 = el.querySelector("a[title]")) == null ? void 0 : _a2.getAttribute("href");
const AVID = href.split("/").filter(Boolean).slice(-1)[0];
mount(Magnet, {
target: el.querySelector("div.thumb"),
props: { AVID, type: Page.pageType, modal, config }
});
}
return raw;
},
update: (items) => {
Page.rawGridEl.append(...Array.from(items));
}
};
const modal = mount(Modal, { target: document.body });
itemsOperations.get(Page.rawItemsEl);
mount(Menu, { target: document.body, props: { config } });
init();
var fragment = comment();
var node = first_child(fragment);
{
var consequent = ($$anchor2) => {
LoadMore($$anchor2, {
get itemsOperations() {
return itemsOperations;
},
get config() {
return config;
}
});
};
if_block(node, ($$render) => {
if (config.autoPage) $$render(consequent);
});
}
append($$anchor, fragment);
pop();
}
function render(GridComponent) {
if (Page.pageType == GRID) {
const target = document.createElement("div");
Page.rawGridEl.insertAdjacentElement("afterend", target);
mount(GridComponent, { target });
} else if (Page.pageType == VIDEO) {
const AVID = location.pathname.split("/").filter(Boolean).slice(-1)[0];
const modal = mount(Modal, { target: document.body });
mount(Magnet, {
target: Page.rawGridEl,
props: { AVID, modal }
});
}
}
function main() {
const target = document.createElement("div");
Page.rawGridEl.style.display = "none";
Page.rawGridEl.insertAdjacentElement("beforebegin", target);
mount(JavbusAndJavdb, { target });
}
const pageComponentMap = {
[MISSAV]: Missav,
[AV123]: Av123,
[JABLE]: Jable,
[JAVBUS]: JavbusAndJavdb,
[JAVDB]: JavbusAndJavdb
};
if (pageComponentMap[Page.name]) {
if (Page.name === JAVBUS || Page.name === JAVDB) {
main();
} else {
render(pageComponentMap[Page.name]);
}
}
})();