diff --git a/ComicRead.user.js b/ComicRead.user.js index 5a3df5cf..ef5a2e4c 100644 --- a/ComicRead.user.js +++ b/ComicRead.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name ComicRead // @namespace ComicRead -// @version 8.4.3 +// @version 8.5.0 // @description 为漫画站增加双页阅读、翻译等优化体验的增强功能。百合会——「记录阅读历史、自动签到等」、百合会新站、动漫之家——「解锁隐藏漫画」、E-Hentai——「匹配 nhentai 漫画」、nhentai——「彻底屏蔽漫画、自动翻页」、Yurifans——「自动签到」、拷贝漫画(copymanga)——「显示最后阅读记录」、PonpomuYuri、明日方舟泰拉记事社、禁漫天堂、漫画柜(manhuagui)、漫画DB(manhuadb)、动漫屋(dm5)、绅士漫画(wnacg)、mangabz、komiic、hitomi、kemono、welovemanga // @description:en Add enhanced features to the comic site for optimized experience, including dual-page reading and translation. // @description:ru Добавляет расширенные функции для удобства на сайт, такие как двухстраничный режим и перевод. @@ -45,10 +45,10 @@ // @grant unsafeWindow // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACBUExURUxpcWB9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i2B9i////198il17idng49DY3PT297/K0MTP1M3X27rHzaCxupmstbTByK69xOfr7bfFy3WOmqi4wPz9/X+XomSBjqW1vZOmsN/l6GmFkomeqe7x8vn6+kv+1vUAAAAOdFJOUwDsAoYli9zV+lIqAZEDwV05SQAAAUZJREFUOMuFk+eWgjAUhGPBiLohjZACUqTp+z/gJkqJy4rzg3Nn+MjhwB0AANjv4BEtdITBHjhtQ4g+CIZbC4Qb9FGb0J4P0YrgCezQqgIA14EDGN8fYz+f3BGMASFkTJ+GDAYMUSONzrFL7SVvjNQIz4B9VERRmV0rbJWbrIwidnsd6ACMlEoip3uad3X2HJmqb3gCkkJELwk5DExRDxA6HnKaDEPSsBnAsZoANgJaoAkg12IJqBiPACImXQKF9IDULIHUkOk7kDpeAMykHqCEWACy8ACdSM7LGSg5F3HtAU1rrkaK9uGAshXS2lZ5QH/nVhmlD8rKlmbO3ZsZwLe8qnpdxJRnLaci1X1V5R32fjd5CndVkfYdGpy3D+htU952C/ypzPtdt3JflzZYBy7fi/O1euvl/XH1Pp+Cw3/1P1xOZwB+AWMcP/iw0AlKAAAAV3pUWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMAAHic4/IMCHFWKCjKT8vMSeVSAAMjCy5jCxMjE0uTFAMTIESANMNkAyOzVCDL2NTIxMzEHMQHy4BIoEouAOoXEXTyQjWVAAAAAElFTkSuQmCC // @resource solid-js https://registry.npmmirror.com/solid-js/1.8.7/files/dist/solid.cjs -// @resource solid-js|store https://registry.npmmirror.com/solid-js/1.8.7/files/store/dist/store.cjs -// @resource solid-js|web https://registry.npmmirror.com/solid-js/1.8.7/files/web/dist/web.cjs // @resource fflate https://registry.npmmirror.com/fflate/0.8.1/files/umd/index.js // @resource dmzjDecrypt https://greasyfork.org/scripts/467177-dmzjdecrypt/code/dmzjDecrypt.js?version=1207199 +// @resource solid-js|store https://registry.npmmirror.com/solid-js/1.8.7/files/store/dist/store.cjs +// @resource solid-js|web https://registry.npmmirror.com/solid-js/1.8.7/files/web/dist/web.cjs // @supportURL https://github.com/hymbz/ComicReadScript/issues // @updateURL https://github.com/hymbz/ComicReadScript/raw/master/ComicRead.user.js // @downloadURL https://github.com/hymbz/ComicReadScript/raw/master/ComicRead.user.js @@ -80,15 +80,14 @@ const crsLib = { }; const tempName = Math.random().toString(36).slice(2); const evalCode = code => { - try { - // eslint-disable-next-line no-eval - eval.call(unsafeWindow, code); - } catch (_) { - // 一些网站比如推特会触发 CSP,无法使用 eval 来执行,只能改用 GM_addElement - GM_addElement('script', { - textContent: code - })?.remove(); - } + // 因为部分网站会对 eval 进行限制,比如推特(CSP)、hitomi(代理 window.eval 进行拦截) + // 所以优先使用最通用的 GM_addElement 来加载 + if (gmApi.GM_addElement) return GM_addElement('script', { + textContent: code + })?.remove(); + + // eslint-disable-next-line no-eval + eval.call(unsafeWindow, code); }; /** @@ -98,16 +97,221 @@ const evalCode = code => { const selfImportSync = name => { const code = name !== 'main' ? GM_getResourceText(name.replaceAll('/', '|')) :` const solidJs = require('solid-js'); +const web = require('solid-js/web'); +const store$2 = require('solid-js/store'); const fflate = require('fflate'); const main = require('main'); +// src/index.ts +var debounce$1 = (callback, wait) => { + if (web.isServer) { + return Object.assign(() => void 0, { clear: () => void 0 }); + } + let timeoutId; + const clear = () => clearTimeout(timeoutId); + if (solidJs.getOwner()) + solidJs.onCleanup(clear); + const debounced = (...args) => { + if (timeoutId !== void 0) + clear(); + timeoutId = setTimeout(() => callback(...args), wait); + }; + return Object.assign(debounced, { clear }); +}; +var throttle$1 = (callback, wait) => { + if (web.isServer) { + return Object.assign(() => void 0, { clear: () => void 0 }); + } + let isThrottled = false, timeoutId, lastArgs; + const throttled = (...args) => { + lastArgs = args; + if (isThrottled) + return; + isThrottled = true; + timeoutId = setTimeout(() => { + callback(...lastArgs); + isThrottled = false; + }, wait); + }; + const clear = () => { + clearTimeout(timeoutId); + isThrottled = false; + }; + if (solidJs.getOwner()) + solidJs.onCleanup(clear); + return Object.assign(throttled, { clear }); +}; +var scheduleIdle = web.isServer ? () => Object.assign(() => void 0, { clear: () => void 0 }) : ( + // requestIdleCallback is not supported in Safari + window.requestIdleCallback ? (callback, maxWait) => { + let isDeferred = false, id, lastArgs; + const deferred = (...args) => { + lastArgs = args; + if (isDeferred) + return; + isDeferred = true; + id = requestIdleCallback( + () => { + callback(...lastArgs); + isDeferred = false; + }, + { timeout: maxWait } + ); + }; + const clear = () => { + cancelIdleCallback(id); + isDeferred = false; + }; + if (solidJs.getOwner()) + solidJs.onCleanup(clear); + return Object.assign(deferred, { clear }); + } : ( + // fallback to setTimeout (throttle) + (callback) => throttle$1(callback) + ) +); +function leadingAndTrailing(schedule, callback, wait) { + if (web.isServer) { + let called = false; + const scheduled2 = (...args) => { + if (called) + return; + called = true; + callback(...args); + }; + return Object.assign(scheduled2, { clear: () => void 0 }); + } + let State; + ((State2) => { + State2[State2["Ready"] = 0] = "Ready"; + State2[State2["Leading"] = 1] = "Leading"; + State2[State2["Trailing"] = 2] = "Trailing"; + })(State || (State = {})); + let state = 0 /* Ready */; + const scheduled = schedule((args) => { + state === 2 /* Trailing */ && callback(...args); + state = 0 /* Ready */; + }, wait); + const fn = (...args) => { + if (state !== 2 /* Trailing */) { + if (state === 0 /* Ready */) + callback(...args); + state += 1; + } + scheduled(args); + }; + const clear = () => { + state = 0 /* Ready */; + scheduled.clear(); + }; + if (solidJs.getOwner()) + solidJs.onCleanup(clear); + return Object.assign(fn, { clear }); +} +function createScheduled(schedule) { + let listeners = 0; + let isDirty = false; + const [track, dirty] = solidJs.createSignal(void 0, { equals: false }); + const call = schedule(() => { + isDirty = true; + dirty(); + }); + return () => { + if (!isDirty) + call(), track(); + if (isDirty) { + isDirty = !!listeners; + return true; + } + if (solidJs.getListener()) { + listeners++; + solidJs.onCleanup(() => listeners--); + } + return false; + }; +} + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +var es6 = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } + + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; + +const isEqual = /*@__PURE__*/getDefaultExportFromCjs(es6); + +const throttle = (fn, wait = 100) => leadingAndTrailing(throttle$1, fn, wait); +const debounce = (fn, wait = 100) => debounce$1(fn, wait); const sleep = ms => new Promise(resolve => { window.setTimeout(resolve, ms); }); const clamp = (min, val, max) => Math.max(Math.min(max, val), min); +const inRange = (min, val, max) => val >= min && val <= max; /** 判断两个数是否在指定误差范围内相等 */ -const isEqual = (val, target, range) => Math.abs(target - val) <= range; +const approx = (val, target, range) => Math.abs(target - val) <= range; /** 根据传入的条件列表的真假,对 val 进行取反 */ const ifNot = (val, ...conditions) => { @@ -150,9 +354,6 @@ const querySelectorClick = selector => { if (getDom()) return () => getDom()?.click(); }; -/** 判断两个列表中包含的值是否相同 */ -const isEqualArray = (a, b) => a.length === b.length && !a.some(t => !b.includes(t)); - /** 找出数组中出现最多次的元素 */ const getMostItem = list => { const counts = list.reduce((map, val) => { @@ -224,7 +425,7 @@ const singleThreaded = callback => { } if (state.continueRun) { state.continueRun = false; - setTimeout(fn); + setTimeout(fn, 0, ...args); } else state.running = false; return res; }; @@ -385,13 +586,13 @@ const difference = (a, b) => { * * 不会修改参数对象,返回的是新对象 */ -const assign$1 = (a, b) => { +const assign = (a, b) => { const res = JSON.parse(JSON.stringify(a)); const keys = Object.keys(b); for (let i = 0; i < keys.length; i += 1) { const key = keys[i]; if (res[key] === undefined) res[key] = b[key];else if (typeof b[key] === 'object') { - const _res = assign$1(res[key], b[key]); + const _res = assign(res[key], b[key]); if (Object.keys(_res).length) res[key] = _res; } else if (res[key] !== b[key]) res[key] = b[key]; } @@ -426,11 +627,11 @@ const byPath = (obj, path, handleVal) => { if (target === obj) return null; return target; }; -const requestIdleCallback = (callback, timeout) => { +const requestIdleCallback$1 = (callback, timeout) => { if (Reflect.has(window, 'requestIdleCallback')) return window.requestIdleCallback(callback, { timeout }); - return window.setTimeout(callback, 1); + return window.setTimeout(callback, 16); }; /** @@ -463,6 +664,14 @@ const getKeyboardCode = e => { /** 将快捷键的编码转换成更易读的形式 */ const keyboardCodeToText = code => code.replace('Control', 'Ctrl').replace('ArrowUp', '↑').replace('ArrowDown', '↓').replace('ArrowLeft', '←').replace('ArrowRight', '→').replace(/^\\s$/, 'Space'); +/** 创建一个可以不断更新的 style 元素 */ +const createStyle = () => { + let style; + return async css => { + if (style) style.textContent = css;else style = await GM.addStyle(css); + }; +}; + const prefix = ['%cComicRead', 'background-color: #607d8b; color: white; padding: 2px 4px; border-radius: 4px;']; const log = (...args) => // eslint-disable-next-line no-console @@ -664,6 +873,7 @@ const zh = { associate_nhentai: "关联nhentai", auto_page_turn: "自动翻页", block_totally: "彻底屏蔽漫画", + detect_ad: "识别广告页", hotkeys_page_turn: "快捷键翻页", open_link_new_page: "在新页面中打开链接", remember_current_site: "记住当前站点" @@ -686,6 +896,7 @@ const zh = { show_settings_menu: "显示设置菜单", simple: { auto_read_mode_message: "已默认开启「自动进入阅读模式」", + no_img: "未找到合适的漫画图片,如有需要可点此关闭简易阅读模式", simple_read_mode: "使用简易阅读模式" } }, @@ -912,6 +1123,7 @@ const en = { associate_nhentai: "Associate nhentai", auto_page_turn: "Auto page turning", block_totally: "Totally block comics", + detect_ad: "Detect advertise page", hotkeys_page_turn: "Page turning with hotkeys", open_link_new_page: "Open links in a new page", remember_current_site: "Remember the current site" @@ -934,6 +1146,7 @@ const en = { show_settings_menu: "Show settings menu", simple: { auto_read_mode_message: "\\"Auto enter reading mode\\" is enabled by default", + no_img: "No suitable comic images were found. If necessary, you can click here to close the simple reading mode.", simple_read_mode: "Enter simple reading mode" } }, @@ -1160,6 +1373,7 @@ const ru = { associate_nhentai: "Ассоциация с nhentai", auto_page_turn: "Автопереворот страниц", block_totally: "Глобально заблокировать комиксы", + detect_ad: "Detect advertise page", hotkeys_page_turn: "Переворот страниц горячими клавишами", open_link_new_page: "Открывать ссылки в новой вкладке", remember_current_site: "Запомнить текущий сайт" @@ -1182,6 +1396,7 @@ const ru = { show_settings_menu: "Показать меню настроек", simple: { auto_read_mode_message: "\\"Автоматически включать режим чтения\\" по умолчанию", + no_img: "No suitable comic images were found. If necessary, you can click here to close the simple reading mode.", simple_read_mode: "Включить простой режим чтения" } }, @@ -1272,633 +1487,6 @@ const t = solidJs.createRoot(() => { }; }); -const booleans = [ - "allowfullscreen", - "async", - "autofocus", - "autoplay", - "checked", - "controls", - "default", - "disabled", - "formnovalidate", - "hidden", - "indeterminate", - "inert", - "ismap", - "loop", - "multiple", - "muted", - "nomodule", - "novalidate", - "open", - "playsinline", - "readonly", - "required", - "reversed", - "seamless", - "selected" -]; -const Properties = /*#__PURE__*/ new Set([ - "className", - "value", - "readOnly", - "formNoValidate", - "isMap", - "noModule", - "playsInline", - ...booleans -]); -const ChildProperties = /*#__PURE__*/ new Set([ - "innerHTML", - "textContent", - "innerText", - "children" -]); -const Aliases = /*#__PURE__*/ Object.assign(Object.create(null), { - className: "class", - htmlFor: "for" -}); -const PropAliases = /*#__PURE__*/ Object.assign(Object.create(null), { - class: "className", - formnovalidate: { - $: "formNoValidate", - BUTTON: 1, - INPUT: 1 - }, - ismap: { - $: "isMap", - IMG: 1 - }, - nomodule: { - $: "noModule", - SCRIPT: 1 - }, - playsinline: { - $: "playsInline", - VIDEO: 1 - }, - readonly: { - $: "readOnly", - INPUT: 1, - TEXTAREA: 1 - } -}); -function getPropAlias(prop, tagName) { - const a = PropAliases[prop]; - return typeof a === "object" ? (a[tagName] ? a["$"] : undefined) : a; -} -const DelegatedEvents = /*#__PURE__*/ new Set([ - "beforeinput", - "click", - "dblclick", - "contextmenu", - "focusin", - "focusout", - "input", - "keydown", - "keyup", - "mousedown", - "mousemove", - "mouseout", - "mouseover", - "mouseup", - "pointerdown", - "pointermove", - "pointerout", - "pointerover", - "pointerup", - "touchend", - "touchmove", - "touchstart" -]); -const SVGElements = /*#__PURE__*/ new Set([ - "altGlyph", - "altGlyphDef", - "altGlyphItem", - "animate", - "animateColor", - "animateMotion", - "animateTransform", - "circle", - "clipPath", - "color-profile", - "cursor", - "defs", - "desc", - "ellipse", - "feBlend", - "feColorMatrix", - "feComponentTransfer", - "feComposite", - "feConvolveMatrix", - "feDiffuseLighting", - "feDisplacementMap", - "feDistantLight", - "feFlood", - "feFuncA", - "feFuncB", - "feFuncG", - "feFuncR", - "feGaussianBlur", - "feImage", - "feMerge", - "feMergeNode", - "feMorphology", - "feOffset", - "fePointLight", - "feSpecularLighting", - "feSpotLight", - "feTile", - "feTurbulence", - "filter", - "font", - "font-face", - "font-face-format", - "font-face-name", - "font-face-src", - "font-face-uri", - "foreignObject", - "g", - "glyph", - "glyphRef", - "hkern", - "image", - "line", - "linearGradient", - "marker", - "mask", - "metadata", - "missing-glyph", - "mpath", - "path", - "pattern", - "polygon", - "polyline", - "radialGradient", - "rect", - "set", - "stop", - "svg", - "switch", - "symbol", - "text", - "textPath", - "tref", - "tspan", - "use", - "view", - "vkern" -]); -const SVGNamespace = { - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace" -}; - -function reconcileArrays(parentNode, a, b) { - let bLength = b.length, - aEnd = a.length, - bEnd = bLength, - aStart = 0, - bStart = 0, - after = a[aEnd - 1].nextSibling, - map = null; - while (aStart < aEnd || bStart < bEnd) { - if (a[aStart] === b[bStart]) { - aStart++; - bStart++; - continue; - } - while (a[aEnd - 1] === b[bEnd - 1]) { - aEnd--; - bEnd--; - } - if (aEnd === aStart) { - const node = bEnd < bLength ? (bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart]) : after; - while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node); - } else if (bEnd === bStart) { - while (aStart < aEnd) { - if (!map || !map.has(a[aStart])) a[aStart].remove(); - aStart++; - } - } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { - const node = a[--aEnd].nextSibling; - parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling); - parentNode.insertBefore(b[--bEnd], node); - a[aEnd] = b[bEnd]; - } else { - if (!map) { - map = new Map(); - let i = bStart; - while (i < bEnd) map.set(b[i], i++); - } - const index = map.get(a[aStart]); - if (index != null) { - if (bStart < index && index < bEnd) { - let i = aStart, - sequence = 1, - t; - while (++i < aEnd && i < bEnd) { - if ((t = map.get(a[i])) == null || t !== index + sequence) break; - sequence++; - } - if (sequence > index - bStart) { - const node = a[aStart]; - while (bStart < index) parentNode.insertBefore(b[bStart++], node); - } else parentNode.replaceChild(b[bStart++], a[aStart++]); - } else aStart++; - } else a[aStart++].remove(); - } - } -} - -const $$EVENTS = "_$DX_DELEGATE"; -function render(code, element, init, options = {}) { - let disposer; - solidJs.createRoot(dispose => { - disposer = dispose; - element === document - ? code() - : insert(element, code(), element.firstChild ? null : undefined, init); - }, options.owner); - return () => { - disposer(); - element.textContent = ""; - }; -} -function template(html, isCE, isSVG) { - let node; - const create = () => { - const t = document.createElement("template"); - t.innerHTML = html; - return isSVG ? t.content.firstChild.firstChild : t.content.firstChild; - }; - const fn = isCE - ? () => solidJs.untrack(() => document.importNode(node || (node = create()), true)) - : () => (node || (node = create())).cloneNode(true); - fn.cloneNode = fn; - return fn; -} -function delegateEvents(eventNames, document = window.document) { - const e = document[$$EVENTS] || (document[$$EVENTS] = new Set()); - for (let i = 0, l = eventNames.length; i < l; i++) { - const name = eventNames[i]; - if (!e.has(name)) { - e.add(name); - document.addEventListener(name, eventHandler); - } - } -} -function setAttribute(node, name, value) { - if (solidJs.sharedConfig.context) return; - if (value == null) node.removeAttribute(name); - else node.setAttribute(name, value); -} -function setAttributeNS(node, namespace, name, value) { - if (solidJs.sharedConfig.context) return; - if (value == null) node.removeAttributeNS(namespace, name); - else node.setAttributeNS(namespace, name, value); -} -function className(node, value) { - if (solidJs.sharedConfig.context) return; - if (value == null) node.removeAttribute("class"); - else node.className = value; -} -function addEventListener(node, name, handler, delegate) { - if (delegate) { - if (Array.isArray(handler)) { - node[\`$$\${name}\`] = handler[0]; - node[\`$$\${name}Data\`] = handler[1]; - } else node[\`$$\${name}\`] = handler; - } else if (Array.isArray(handler)) { - const handlerFn = handler[0]; - node.addEventListener(name, (handler[0] = e => handlerFn.call(node, handler[1], e))); - } else node.addEventListener(name, handler); -} -function classList(node, value, prev = {}) { - const classKeys = Object.keys(value || {}), - prevKeys = Object.keys(prev); - let i, len; - for (i = 0, len = prevKeys.length; i < len; i++) { - const key = prevKeys[i]; - if (!key || key === "undefined" || value[key]) continue; - toggleClassKey(node, key, false); - delete prev[key]; - } - for (i = 0, len = classKeys.length; i < len; i++) { - const key = classKeys[i], - classValue = !!value[key]; - if (!key || key === "undefined" || prev[key] === classValue || !classValue) continue; - toggleClassKey(node, key, true); - prev[key] = classValue; - } - return prev; -} -function style(node, value, prev) { - if (!value) return prev ? setAttribute(node, "style") : value; - const nodeStyle = node.style; - if (typeof value === "string") return (nodeStyle.cssText = value); - typeof prev === "string" && (nodeStyle.cssText = prev = undefined); - prev || (prev = {}); - value || (value = {}); - let v, s; - for (s in prev) { - value[s] == null && nodeStyle.removeProperty(s); - delete prev[s]; - } - for (s in value) { - v = value[s]; - if (v !== prev[s]) { - nodeStyle.setProperty(s, v); - prev[s] = v; - } - } - return prev; -} -function spread(node, props = {}, isSVG, skipChildren) { - const prevProps = {}; - if (!skipChildren) { - solidJs.createRenderEffect( - () => (prevProps.children = insertExpression(node, props.children, prevProps.children)) - ); - } - solidJs.createRenderEffect(() => props.ref && props.ref(node)); - solidJs.createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true)); - return prevProps; -} -function use(fn, element, arg) { - return solidJs.untrack(() => fn(element, arg)); -} -function insert(parent, accessor, marker, initial) { - if (marker !== undefined && !initial) initial = []; - if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker); - solidJs.createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial); -} -function assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) { - props || (props = {}); - for (const prop in prevProps) { - if (!(prop in props)) { - if (prop === "children") continue; - prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef); - } - } - for (const prop in props) { - if (prop === "children") { - if (!skipChildren) insertExpression(node, props.children); - continue; - } - const value = props[prop]; - prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef); - } -} -function getNextElement(template) { - let node, key; - if (!solidJs.sharedConfig.context || !(node = solidJs.sharedConfig.registry.get((key = getHydrationKey())))) { - return template(); - } - if (solidJs.sharedConfig.completed) solidJs.sharedConfig.completed.add(node); - solidJs.sharedConfig.registry.delete(key); - return node; -} -function toPropertyName(name) { - return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase()); -} -function toggleClassKey(node, key, value) { - const classNames = key.trim().split(/\\s+/); - for (let i = 0, nameLen = classNames.length; i < nameLen; i++) - node.classList.toggle(classNames[i], value); -} -function assignProp(node, prop, value, prev, isSVG, skipRef) { - let isCE, isProp, isChildProp, propAlias, forceProp; - if (prop === "style") return style(node, value, prev); - if (prop === "classList") return classList(node, value, prev); - if (value === prev) return prev; - if (prop === "ref") { - if (!skipRef) value(node); - } else if (prop.slice(0, 3) === "on:") { - const e = prop.slice(3); - prev && node.removeEventListener(e, prev); - value && node.addEventListener(e, value); - } else if (prop.slice(0, 10) === "oncapture:") { - const e = prop.slice(10); - prev && node.removeEventListener(e, prev, true); - value && node.addEventListener(e, value, true); - } else if (prop.slice(0, 2) === "on") { - const name = prop.slice(2).toLowerCase(); - const delegate = DelegatedEvents.has(name); - if (!delegate && prev) { - const h = Array.isArray(prev) ? prev[0] : prev; - node.removeEventListener(name, h); - } - if (delegate || value) { - addEventListener(node, name, value, delegate); - delegate && delegateEvents([name]); - } - } else if (prop.slice(0, 5) === "attr:") { - setAttribute(node, prop.slice(5), value); - } else if ( - (forceProp = prop.slice(0, 5) === "prop:") || - (isChildProp = ChildProperties.has(prop)) || - (!isSVG && - ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop)))) || - (isCE = node.nodeName.includes("-")) - ) { - if (forceProp) { - prop = prop.slice(5); - isProp = true; - } else if (solidJs.sharedConfig.context) return value; - if (prop === "class" || prop === "className") className(node, value); - else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value; - else node[propAlias || prop] = value; - } else { - const ns = isSVG && prop.indexOf(":") > -1 && SVGNamespace[prop.split(":")[0]]; - if (ns) setAttributeNS(node, ns, prop, value); - else setAttribute(node, Aliases[prop] || prop, value); - } - return value; -} -function eventHandler(e) { - const key = \`$$\${e.type}\`; - let node = (e.composedPath && e.composedPath()[0]) || e.target; - if (e.target !== node) { - Object.defineProperty(e, "target", { - configurable: true, - value: node - }); - } - Object.defineProperty(e, "currentTarget", { - configurable: true, - get() { - return node || document; - } - }); - if (solidJs.sharedConfig.registry && !solidJs.sharedConfig.done) solidJs.sharedConfig.done = _$HY.done = true; - while (node) { - const handler = node[key]; - if (handler && !node.disabled) { - const data = node[\`\${key}Data\`]; - data !== undefined ? handler.call(node, data, e) : handler.call(node, e); - if (e.cancelBubble) return; - } - node = node._$host || node.parentNode || node.host; - } -} -function insertExpression(parent, value, current, marker, unwrapArray) { - if (solidJs.sharedConfig.context) { - !current && (current = [...parent.childNodes]); - let cleaned = []; - for (let i = 0; i < current.length; i++) { - const node = current[i]; - if (node.nodeType === 8 && node.data.slice(0, 2) === "!$") node.remove(); - else cleaned.push(node); - } - current = cleaned; - } - while (typeof current === "function") current = current(); - if (value === current) return current; - const t = typeof value, - multi = marker !== undefined; - parent = (multi && current[0] && current[0].parentNode) || parent; - if (t === "string" || t === "number") { - if (solidJs.sharedConfig.context) return current; - if (t === "number") value = value.toString(); - if (multi) { - let node = current[0]; - if (node && node.nodeType === 3) { - node.data = value; - } else node = document.createTextNode(value); - current = cleanChildren(parent, current, marker, node); - } else { - if (current !== "" && typeof current === "string") { - current = parent.firstChild.data = value; - } else current = parent.textContent = value; - } - } else if (value == null || t === "boolean") { - if (solidJs.sharedConfig.context) return current; - current = cleanChildren(parent, current, marker); - } else if (t === "function") { - solidJs.createRenderEffect(() => { - let v = value(); - while (typeof v === "function") v = v(); - current = insertExpression(parent, v, current, marker); - }); - return () => current; - } else if (Array.isArray(value)) { - const array = []; - const currentArray = current && Array.isArray(current); - if (normalizeIncomingArray(array, value, current, unwrapArray)) { - solidJs.createRenderEffect(() => (current = insertExpression(parent, array, current, marker, true))); - return () => current; - } - if (solidJs.sharedConfig.context) { - if (!array.length) return current; - if (marker === undefined) return [...parent.childNodes]; - let node = array[0]; - let nodes = [node]; - while ((node = node.nextSibling) !== marker) nodes.push(node); - return (current = nodes); - } - if (array.length === 0) { - current = cleanChildren(parent, current, marker); - if (multi) return current; - } else if (currentArray) { - if (current.length === 0) { - appendNodes(parent, array, marker); - } else reconcileArrays(parent, current, array); - } else { - current && cleanChildren(parent); - appendNodes(parent, array); - } - current = array; - } else if (value.nodeType) { - if (solidJs.sharedConfig.context && value.parentNode) return (current = multi ? [value] : value); - if (Array.isArray(current)) { - if (multi) return (current = cleanChildren(parent, current, marker, value)); - cleanChildren(parent, current, null, value); - } else if (current == null || current === "" || !parent.firstChild) { - parent.appendChild(value); - } else parent.replaceChild(value, parent.firstChild); - current = value; - } else; - return current; -} -function normalizeIncomingArray(normalized, array, current, unwrap) { - let dynamic = false; - for (let i = 0, len = array.length; i < len; i++) { - let item = array[i], - prev = current && current[i], - t; - if (item == null || item === true || item === false); - else if ((t = typeof item) === "object" && item.nodeType) { - normalized.push(item); - } else if (Array.isArray(item)) { - dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic; - } else if (t === "function") { - if (unwrap) { - while (typeof item === "function") item = item(); - dynamic = - normalizeIncomingArray( - normalized, - Array.isArray(item) ? item : [item], - Array.isArray(prev) ? prev : [prev] - ) || dynamic; - } else { - normalized.push(item); - dynamic = true; - } - } else { - const value = String(item); - if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev); - else normalized.push(document.createTextNode(value)); - } - } - return dynamic; -} -function appendNodes(parent, array, marker = null) { - for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker); -} -function cleanChildren(parent, current, marker, replacement) { - if (marker === undefined) return (parent.textContent = ""); - const node = replacement || document.createTextNode(""); - if (current.length) { - let inserted = false; - for (let i = current.length - 1; i >= 0; i--) { - const el = current[i]; - if (node !== el) { - const isParent = el.parentNode === parent; - if (!inserted && !i) - isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker); - else isParent && el.remove(); - } else inserted = true; - } - } else parent.insertBefore(node, marker); - return [node]; -} -function getHydrationKey() { - const hydrate = solidJs.sharedConfig.context; - return \`\${hydrate.id}\${hydrate.count++}\`; -} -const SVG_NAMESPACE = "http://www.w3.org/2000/svg"; -function createElement(tagName, isSVG = false) { - return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName); -} -function Dynamic(props) { - const [p, others] = solidJs.splitProps(props, ["component"]); - const cached = solidJs.createMemo(() => p.component); - return solidJs.createMemo(() => { - const component = cached(); - switch (typeof component) { - case "function": - return solidJs.untrack(() => component(others)); - case "string": - const isSvg = SVGElements.has(component); - const el = solidJs.sharedConfig.context ? getNextElement() : createElement(component, isSvg); - spread(el, others, isSvg); - return el; - } - }); -} - const getDom = id => { let dom = document.getElementById(id); if (dom) { @@ -1918,386 +1506,18 @@ const mountComponents = (id, fc) => { const shadowDom = dom.attachShadow({ mode: 'closed' }); - render(fc, shadowDom); + web.render(fc, shadowDom); return dom; }; -const watchStore = (deps, fn, options = { - defer: true -}) => solidJs.createRoot(() => solidJs.createEffect(solidJs.on(deps, fn, options))); var css$3 = ".index_module_root__d8c71ff0{align-items:flex-end;bottom:0;display:flex;flex-direction:column;font-size:16px;pointer-events:none;position:fixed;right:0;z-index:2147483647}.index_module_item__d8c71ff0{align-items:center;animation:index_module_bounceInRight__d8c71ff0 .5s 1;background:#fff;border-radius:4px;box-shadow:0 1px 10px 0 #0000001a,0 2px 15px 0 #0000000d;color:#000;cursor:pointer;display:flex;margin:1em;max-width:min(30em,100vw);overflow:hidden;padding:.8em 1em;pointer-events:auto;position:relative;width:-moz-fit-content;width:fit-content}.index_module_item__d8c71ff0>svg{color:var(--theme);margin-right:.5em;width:1.5em}.index_module_item__d8c71ff0[data-exit]{animation:index_module_bounceOutRight__d8c71ff0 .5s 1}.index_module_schedule__d8c71ff0{background-color:var(--theme);bottom:0;height:.2em;left:0;position:absolute;transform-origin:left;width:100%}.index_module_item__d8c71ff0[data-schedule] .index_module_schedule__d8c71ff0{transition:transform .1s}.index_module_item__d8c71ff0:not([data-schedule]) .index_module_schedule__d8c71ff0{animation:index_module_schedule__d8c71ff0 linear 1 forwards}:is(.index_module_item__d8c71ff0:hover,.index_module_item__d8c71ff0[data-schedule],.index_module_root__d8c71ff0[data-paused]) .index_module_schedule__d8c71ff0{animation-play-state:paused}.index_module_msg__d8c71ff0{text-align:start;width:-moz-fit-content;width:fit-content}.index_module_msg__d8c71ff0 h2{margin:0}.index_module_msg__d8c71ff0 h3{margin:.7em 0}.index_module_msg__d8c71ff0 ul{margin:0;text-align:left}.index_module_msg__d8c71ff0 button{background-color:#eee;border:none;border-radius:.4em;cursor:pointer;font-size:inherit;margin:0 .5em;outline:none;padding:.2em .6em}.index_module_msg__d8c71ff0 button:hover{background:#e0e0e0}p{margin:0}@keyframes index_module_schedule__d8c71ff0{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes index_module_bounceInRight__d8c71ff0{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;transform:translate3d(-25px,0,0) scaleX(1)}75%{transform:translate3d(10px,0,0) scaleX(.98)}90%{transform:translate3d(-5px,0,0) scaleX(.995)}to{transform:translateZ(0)}}@keyframes index_module_bounceOutRight__d8c71ff0{20%{opacity:1;transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;transform:translate3d(2000px,0,0) scaleX(2)}}"; var modules_c21c94f2$3 = {"root":"index_module_root__d8c71ff0","item":"index_module_item__d8c71ff0","bounceInRight":"index_module_bounceInRight__d8c71ff0","bounceOutRight":"index_module_bounceOutRight__d8c71ff0","schedule":"index_module_schedule__d8c71ff0","msg":"index_module_msg__d8c71ff0"}; -const $RAW = Symbol("store-raw"), - $NODE = Symbol("store-node"), - $HAS = Symbol("store-has"), - $SELF = Symbol("store-self"); -function wrap$1(value) { - let p = value[solidJs.$PROXY]; - if (!p) { - Object.defineProperty(value, solidJs.$PROXY, { - value: (p = new Proxy(value, proxyTraps$1)) - }); - if (!Array.isArray(value)) { - const keys = Object.keys(value), - desc = Object.getOwnPropertyDescriptors(value); - for (let i = 0, l = keys.length; i < l; i++) { - const prop = keys[i]; - if (desc[prop].get) { - Object.defineProperty(value, prop, { - enumerable: desc[prop].enumerable, - get: desc[prop].get.bind(p) - }); - } - } - } - } - return p; -} -function isWrappable(obj) { - let proto; - return ( - obj != null && - typeof obj === "object" && - (obj[solidJs.$PROXY] || - !(proto = Object.getPrototypeOf(obj)) || - proto === Object.prototype || - Array.isArray(obj)) - ); -} -function unwrap(item, set = new Set()) { - let result, unwrapped, v, prop; - if ((result = item != null && item[$RAW])) return result; - if (!isWrappable(item) || set.has(item)) return item; - if (Array.isArray(item)) { - if (Object.isFrozen(item)) item = item.slice(0); - else set.add(item); - for (let i = 0, l = item.length; i < l; i++) { - v = item[i]; - if ((unwrapped = unwrap(v, set)) !== v) item[i] = unwrapped; - } - } else { - if (Object.isFrozen(item)) item = Object.assign({}, item); - else set.add(item); - const keys = Object.keys(item), - desc = Object.getOwnPropertyDescriptors(item); - for (let i = 0, l = keys.length; i < l; i++) { - prop = keys[i]; - if (desc[prop].get) continue; - v = item[prop]; - if ((unwrapped = unwrap(v, set)) !== v) item[prop] = unwrapped; - } - } - return item; -} -function getNodes(target, symbol) { - let nodes = target[symbol]; - if (!nodes) - Object.defineProperty(target, symbol, { - value: (nodes = Object.create(null)) - }); - return nodes; -} -function getNode(nodes, property, value) { - if (nodes[property]) return nodes[property]; - const [s, set] = solidJs.createSignal(value, { - equals: false, - internal: true - }); - s.$ = set; - return (nodes[property] = s); -} -function proxyDescriptor$1(target, property) { - const desc = Reflect.getOwnPropertyDescriptor(target, property); - if (!desc || desc.get || !desc.configurable || property === solidJs.$PROXY || property === $NODE) - return desc; - delete desc.value; - delete desc.writable; - desc.get = () => target[solidJs.$PROXY][property]; - return desc; -} -function trackSelf(target) { - solidJs.getListener() && getNode(getNodes(target, $NODE), $SELF)(); -} -function ownKeys(target) { - trackSelf(target); - return Reflect.ownKeys(target); -} -const proxyTraps$1 = { - get(target, property, receiver) { - if (property === $RAW) return target; - if (property === solidJs.$PROXY) return receiver; - if (property === solidJs.$TRACK) { - trackSelf(target); - return receiver; - } - const nodes = getNodes(target, $NODE); - const tracked = nodes[property]; - let value = tracked ? tracked() : target[property]; - if (property === $NODE || property === $HAS || property === "__proto__") return value; - if (!tracked) { - const desc = Object.getOwnPropertyDescriptor(target, property); - if ( - solidJs.getListener() && - (typeof value !== "function" || target.hasOwnProperty(property)) && - !(desc && desc.get) - ) - value = getNode(nodes, property, value)(); - } - return isWrappable(value) ? wrap$1(value) : value; - }, - has(target, property) { - if ( - property === $RAW || - property === solidJs.$PROXY || - property === solidJs.$TRACK || - property === $NODE || - property === $HAS || - property === "__proto__" - ) - return true; - solidJs.getListener() && getNode(getNodes(target, $HAS), property)(); - return property in target; - }, - set() { - return true; - }, - deleteProperty() { - return true; - }, - ownKeys: ownKeys, - getOwnPropertyDescriptor: proxyDescriptor$1 -}; -function setProperty(state, property, value, deleting = false) { - if (!deleting && state[property] === value) return; - const prev = state[property], - len = state.length; - if (value === undefined) { - delete state[property]; - if (state[$HAS] && state[$HAS][property] && prev !== undefined) state[$HAS][property].$(); - } else { - state[property] = value; - if (state[$HAS] && state[$HAS][property] && prev === undefined) state[$HAS][property].$(); - } - let nodes = getNodes(state, $NODE), - node; - if ((node = getNode(nodes, property, prev))) node.$(() => value); - if (Array.isArray(state) && state.length !== len) { - for (let i = state.length; i < len; i++) (node = nodes[i]) && node.$(); - (node = getNode(nodes, "length", len)) && node.$(state.length); - } - (node = nodes[$SELF]) && node.$(); -} -function mergeStoreNode(state, value) { - const keys = Object.keys(value); - for (let i = 0; i < keys.length; i += 1) { - const key = keys[i]; - setProperty(state, key, value[key]); - } -} -function updateArray(current, next) { - if (typeof next === "function") next = next(current); - next = unwrap(next); - if (Array.isArray(next)) { - if (current === next) return; - let i = 0, - len = next.length; - for (; i < len; i++) { - const value = next[i]; - if (current[i] !== value) setProperty(current, i, value); - } - setProperty(current, "length", len); - } else mergeStoreNode(current, next); -} -function updatePath(current, path, traversed = []) { - let part, - prev = current; - if (path.length > 1) { - part = path.shift(); - const partType = typeof part, - isArray = Array.isArray(current); - if (Array.isArray(part)) { - for (let i = 0; i < part.length; i++) { - updatePath(current, [part[i]].concat(path), traversed); - } - return; - } else if (isArray && partType === "function") { - for (let i = 0; i < current.length; i++) { - if (part(current[i], i)) updatePath(current, [i].concat(path), traversed); - } - return; - } else if (isArray && partType === "object") { - const { from = 0, to = current.length - 1, by = 1 } = part; - for (let i = from; i <= to; i += by) { - updatePath(current, [i].concat(path), traversed); - } - return; - } else if (path.length > 1) { - updatePath(current[part], path, [part].concat(traversed)); - return; - } - prev = current[part]; - traversed = [part].concat(traversed); - } - let value = path[0]; - if (typeof value === "function") { - value = value(prev, traversed); - if (value === prev) return; - } - if (part === undefined && value == undefined) return; - value = unwrap(value); - if (part === undefined || (isWrappable(prev) && isWrappable(value) && !Array.isArray(value))) { - mergeStoreNode(prev, value); - } else setProperty(current, part, value); -} -function createStore(...[store, options]) { - const unwrappedStore = unwrap(store || {}); - const isArray = Array.isArray(unwrappedStore); - const wrappedStore = wrap$1(unwrappedStore); - function setStore(...args) { - solidJs.batch(() => { - isArray && args.length === 1 - ? updateArray(unwrappedStore, args[0]) - : updatePath(unwrappedStore, args); - }); - } - return [wrappedStore, setStore]; -} - -function proxyDescriptor(target, property) { - const desc = Reflect.getOwnPropertyDescriptor(target, property); - if ( - !desc || - desc.get || - desc.set || - !desc.configurable || - property === solidJs.$PROXY || - property === $NODE - ) - return desc; - delete desc.value; - delete desc.writable; - desc.get = () => target[solidJs.$PROXY][property]; - desc.set = v => (target[solidJs.$PROXY][property] = v); - return desc; -} -const proxyTraps = { - get(target, property, receiver) { - if (property === $RAW) return target; - if (property === solidJs.$PROXY) return receiver; - if (property === solidJs.$TRACK) { - trackSelf(target); - return receiver; - } - const nodes = getNodes(target, $NODE); - const tracked = nodes[property]; - let value = tracked ? tracked() : target[property]; - if (property === $NODE || property === $HAS || property === "__proto__") return value; - if (!tracked) { - const desc = Object.getOwnPropertyDescriptor(target, property); - const isFunction = typeof value === "function"; - if (solidJs.getListener() && (!isFunction || target.hasOwnProperty(property)) && !(desc && desc.get)) - value = getNode(nodes, property, value)(); - else if (value != null && isFunction && value === Array.prototype[property]) { - return (...args) => solidJs.batch(() => Array.prototype[property].apply(receiver, args)); - } - } - return isWrappable(value) ? wrap(value) : value; - }, - has(target, property) { - if ( - property === $RAW || - property === solidJs.$PROXY || - property === solidJs.$TRACK || - property === $NODE || - property === $HAS || - property === "__proto__" - ) - return true; - solidJs.getListener() && getNode(getNodes(target, $HAS), property)(); - return property in target; - }, - set(target, property, value) { - solidJs.batch(() => setProperty(target, property, unwrap(value))); - return true; - }, - deleteProperty(target, property) { - solidJs.batch(() => setProperty(target, property, undefined, true)); - return true; - }, - ownKeys: ownKeys, - getOwnPropertyDescriptor: proxyDescriptor -}; -function wrap(value) { - let p = value[solidJs.$PROXY]; - if (!p) { - Object.defineProperty(value, solidJs.$PROXY, { - value: (p = new Proxy(value, proxyTraps)) - }); - const keys = Object.keys(value), - desc = Object.getOwnPropertyDescriptors(value); - for (let i = 0, l = keys.length; i < l; i++) { - const prop = keys[i]; - if (desc[prop].get) { - const get = desc[prop].get.bind(p); - Object.defineProperty(value, prop, { - get - }); - } - if (desc[prop].set) { - const og = desc[prop].set, - set = v => solidJs.batch(() => og.call(p, v)); - Object.defineProperty(value, prop, { - set - }); - } - } - } - return p; -} -function createMutable(state, options) { - const unwrappedStore = unwrap(state || {}); - const wrappedStore = wrap(unwrappedStore); - return wrappedStore; -} -const producers = new WeakMap(); -const setterTraps = { - get(target, property) { - if (property === $RAW) return target; - const value = target[property]; - let proxy; - return isWrappable(value) - ? producers.get(value) || - (producers.set(value, (proxy = new Proxy(value, setterTraps))), proxy) - : value; - }, - set(target, property, value) { - setProperty(target, property, unwrap(value)); - return true; - }, - deleteProperty(target, property) { - setProperty(target, property, undefined, true); - return true; - } -}; -function produce(fn) { - return state => { - if (isWrappable(state)) { - let proxy; - if (!(proxy = producers.get(state))) { - producers.set(state, (proxy = new Proxy(state, setterTraps))); - } - fn(proxy); - } - return state; - }; -} - -const [_state$1, _setState$1] = createStore({ +const [_state$1, _setState$1] = store$2.createStore({ list: [], map: {} }); -const setState$1 = fn => _setState$1(produce(fn)); +const setState$1 = fn => _setState$1(store$2.produce(fn)); // eslint-disable-next-line solid/reactivity const store$1 = _state$1; @@ -2309,31 +1529,31 @@ const creatId = () => { return id; }; -const _tmpl$$S = /*#__PURE__*/template(\`\`); +const _tmpl$$S = /*#__PURE__*/web.template(\`\`); const MdCheckCircle = ((props = {}) => (() => { const _el$ = _tmpl$$S(); - spread(_el$, props, true, true); + web.spread(_el$, props, true, true); return _el$; })()); -const _tmpl$$R = /*#__PURE__*/template(\`\`); +const _tmpl$$R = /*#__PURE__*/web.template(\`\`); const MdWarning = ((props = {}) => (() => { const _el$ = _tmpl$$R(); - spread(_el$, props, true, true); + web.spread(_el$, props, true, true); return _el$; })()); -const _tmpl$$Q = /*#__PURE__*/template(\`\`); +const _tmpl$$Q = /*#__PURE__*/web.template(\`\`); const MdError = ((props = {}) => (() => { const _el$ = _tmpl$$Q(); - spread(_el$, props, true, true); + web.spread(_el$, props, true, true); return _el$; })()); -const _tmpl$$P = /*#__PURE__*/template(\`\`); +const _tmpl$$P = /*#__PURE__*/web.template(\`\`); const MdInfo = ((props = {}) => (() => { const _el$ = _tmpl$$P(); - spread(_el$, props, true, true); + web.spread(_el$, props, true, true); return _el$; })()); @@ -2393,8 +1613,8 @@ toast$2.error = (msg, options) => toast$2(msg, { type: 'error' }); -const _tmpl$$O = /*#__PURE__*/template(\`
\`), - _tmpl$2$d = /*#__PURE__*/template(\`
\`); +const _tmpl$$O = /*#__PURE__*/web.template(\`
\`), + _tmpl$2$d = /*#__PURE__*/web.template(\`
\`); const iconMap = { info: MdInfo, success: MdCheckCircle, @@ -2449,16 +1669,16 @@ const ToastItem = props => { _el$2 = _el$.firstChild; _el$.addEventListener("animationend", handleAnimationEnd); _el$.addEventListener("click", dismiss); - insert(_el$, solidJs.createComponent(Dynamic, { + web.insert(_el$, web.createComponent(web.Dynamic, { get component() { return iconMap[props.type]; } }), _el$2); - insert(_el$2, (() => { - const _c$ = solidJs.createMemo(() => typeof props.msg === 'string'); - return () => _c$() ? props.msg : solidJs.createComponent(props.msg, {}); + web.insert(_el$2, (() => { + const _c$ = web.memo(() => typeof props.msg === 'string'); + return () => _c$() ? props.msg : web.createComponent(props.msg, {}); })()); - insert(_el$, solidJs.createComponent(solidJs.Show, { + web.insert(_el$, web.createComponent(solidJs.Show, { get when() { return props.duration !== Infinity || props.schedule !== undefined; }, @@ -2466,12 +1686,12 @@ const ToastItem = props => { const _el$3 = _tmpl$$O(); _el$3.addEventListener("animationend", dismiss); const _ref$ = scheduleRef; - typeof _ref$ === "function" ? use(_ref$, _el$3) : scheduleRef = _el$3; - solidJs.createRenderEffect(_p$ => { + typeof _ref$ === "function" ? web.use(_ref$, _el$3) : scheduleRef = _el$3; + web.effect(_p$ => { const _v$ = modules_c21c94f2$3.schedule, _v$2 = \`\${props.duration}ms\`, _v$3 = showSchedule() ? \`scaleX(\${props.schedule})\` : undefined; - _v$ !== _p$._v$ && className(_el$3, _p$._v$ = _v$); + _v$ !== _p$._v$ && web.className(_el$3, _p$._v$ = _v$); _v$2 !== _p$._v$2 && ((_p$._v$2 = _v$2) != null ? _el$3.style.setProperty("animation-duration", _v$2) : _el$3.style.removeProperty("animation-duration")); _v$3 !== _p$._v$3 && ((_p$._v$3 = _v$3) != null ? _el$3.style.setProperty("transform", _v$3) : _el$3.style.removeProperty("transform")); return _p$; @@ -2483,17 +1703,17 @@ const ToastItem = props => { return _el$3; } }), null); - solidJs.createRenderEffect(_p$ => { + web.effect(_p$ => { const _v$4 = modules_c21c94f2$3.item, _v$5 = colorMap[props.type], _v$6 = showSchedule(), _v$7 = props.exit, _v$8 = modules_c21c94f2$3.msg; - _v$4 !== _p$._v$4 && className(_el$, _p$._v$4 = _v$4); + _v$4 !== _p$._v$4 && web.className(_el$, _p$._v$4 = _v$4); _v$5 !== _p$._v$5 && ((_p$._v$5 = _v$5) != null ? _el$.style.setProperty("--theme", _v$5) : _el$.style.removeProperty("--theme")); - _v$6 !== _p$._v$6 && setAttribute(_el$, "data-schedule", _p$._v$6 = _v$6); - _v$7 !== _p$._v$7 && setAttribute(_el$, "data-exit", _p$._v$7 = _v$7); - _v$8 !== _p$._v$8 && className(_el$2, _p$._v$8 = _v$8); + _v$6 !== _p$._v$6 && web.setAttribute(_el$, "data-schedule", _p$._v$6 = _v$6); + _v$7 !== _p$._v$7 && web.setAttribute(_el$, "data-exit", _p$._v$7 = _v$7); + _v$8 !== _p$._v$8 && web.className(_el$2, _p$._v$8 = _v$8); return _p$; }, { _v$4: undefined, @@ -2506,7 +1726,7 @@ const ToastItem = props => { })(); }; -const _tmpl$$N = /*#__PURE__*/template(\`
\`); +const _tmpl$$N = /*#__PURE__*/web.template(\`
\`); const Toaster = () => { const [visible, setVisible] = solidJs.createSignal(document.visibilityState === 'visible'); solidJs.onMount(() => { @@ -2518,17 +1738,17 @@ const Toaster = () => { }); return (() => { const _el$ = _tmpl$$N(); - insert(_el$, solidJs.createComponent(solidJs.For, { + web.insert(_el$, web.createComponent(solidJs.For, { get each() { return store$1.list; }, - children: id => solidJs.createComponent(ToastItem, solidJs.mergeProps(() => store$1.map[id])) + children: id => web.createComponent(ToastItem, web.mergeProps(() => store$1.map[id])) })); - solidJs.createRenderEffect(_p$ => { + web.effect(_p$ => { const _v$ = modules_c21c94f2$3.root, _v$2 = visible() ? undefined : ''; - _v$ !== _p$._v$ && className(_el$, _p$._v$ = _v$); - _v$2 !== _p$._v$2 && setAttribute(_el$, "data-paused", _p$._v$2 = _v$2); + _v$ !== _p$._v$ && web.className(_el$, _p$._v$ = _v$); + _v$2 !== _p$._v$2 && web.setAttribute(_el$, "data-paused", _p$._v$2 = _v$2); return _p$; }, { _v$: undefined, @@ -2540,7 +1760,7 @@ const Toaster = () => { const ToastStyle = css$3; -const _tmpl$$M = /*#__PURE__*/template(\`