bili-comment-hide

根据关键词隐藏 b 站评论

// ==UserScript==
// @name         bili-comment-hide
// @namespace    qiyuor2/bili-comment-hide
// @version      1.1.0
// @author       qiyuor2
// @description  根据关键词隐藏 b 站评论
// @license      MIT
// @icon         https://qiyuor2.github.io/blog/favicon.ico
// @match        *://*.bilibili.com/*
// @exclude      *://api.bilibili.com/*
// @exclude      *://api.*.bilibili.com/*
// @exclude      *://*.bilibili.com/api/*
// @exclude      *://member.bilibili.com/studio/bs-editor/*
// @exclude      *://t.bilibili.com/h5/dynamic/specification
// @exclude      *://bbq.bilibili.com/*
// @exclude      *://message.bilibili.com/pages/nav/header_sync
// @exclude      *://s1.hdslb.com/bfs/seed/jinkela/short/cols/iframe.html
// @exclude      *://open-live.bilibili.com/*
// @require      https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.global.prod.js
// @grant        GM_addStyle
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        unsafeWindow
// @run-at       document-end
// ==/UserScript==

(t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const e=document.createElement("style");e.textContent=t,document.head.append(e)})(` .input[data-v-1e639cad]{box-sizing:border-box;height:100%;border-style:none;background-color:transparent;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem;--un-text-opacity:1;color:rgb(100 116 139 / var(--un-text-opacity));outline:2px solid transparent;outline-offset:2px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input[data-v-1e639cad]:disabled{cursor:not-allowed;--un-text-opacity:1;color:rgb(148 163 184 / var(--un-text-opacity))}.input[data-v-1e639cad]:invalid{--un-border-opacity:1;border-color:rgb(236 72 153 / var(--un-border-opacity));--un-text-opacity:1;color:rgb(236 72 153 / var(--un-text-opacity))}.input[data-v-1e639cad]:focus:invalid{--un-border-opacity:1;border-color:rgb(236 72 153 / var(--un-border-opacity))}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.absolute,[absolute=""]{position:absolute}.fixed,[fixed=""]{position:fixed}.relative,[relative=""]{position:relative}.after\\:absolute:after{position:absolute}[bottom~="-1px"]{bottom:-1px}[right~="-1px"]{right:-1px}[right~="-5"]{right:-1.25rem}[right~="2"]{right:.5rem}[top~="-1px"]{top:-1px}[top~="100px"]{top:100px}[left~="checked:after:4"]:checked:after{left:1rem}[right~="hover:2"]:hover{right:.5rem}.after\\:top-0:after{top:0}[left~="after:0"]:after{left:0}[z~="99999"]{z-index:99999}.m-0,[m-0=""]{margin:0}.my-2,[my-2=""]{margin-top:.5rem;margin-bottom:.5rem}.mb-1,[mb-1=""]{margin-bottom:.25rem}.mb-2,[mb-2=""]{margin-bottom:.5rem}.ml-1,[ml-1=""]{margin-left:.25rem}.ml-auto,[ml-auto=""]{margin-left:auto}.mr-\\.5,[mr-\\.5=""]{margin-right:.125rem}.mr-1,[mr-1=""]{margin-right:.25rem}.mt-30,[mt-30=""]{margin-top:7.5rem}.box-border,[box-border=""]{box-sizing:border-box}.h-12,[h-12=""],[h~="12"]{height:3rem}.h-8,[h-8=""]{height:2rem}.h-full{height:100%}[h~="4"]{height:1rem}[h~="430px"]{height:430px}[h~="600px"]{height:600px}[w~="0"]{width:0}[w~="12"]{width:3rem}[w~="290px"]{width:290px}[w~="300px"]{width:300px}[w~="3em"]{width:3em}[w~="4em"]{width:4em}[w~="8"]{width:2rem}[w~=full]{width:100%}[h~="after:4"]:after{height:1rem}[w~="after:4"]:after{width:1rem}.flex,[flex=""]{display:flex}.flex-col,[flex-col=""]{flex-direction:column}.flex-wrap,[flex-wrap=""]{flex-wrap:wrap}.cursor-pointer,[cursor-pointer=""]{cursor:pointer}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}[disabled\\:cursor-not-allowed=""]:disabled{cursor:not-allowed}.list-none,[list-none=""]{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.items-start,[items-start=""]{align-items:flex-start}.items-center,[items-center=""],[items~=center]{align-items:center}.justify-center,[justify-center=""]{justify-content:center}.justify-between,[justify-between=""]{justify-content:space-between}.gap-1,[gap-1=""]{gap:.25rem}.gap-2,[gap-2=""]{gap:.5rem}.overflow-hidden,[overflow-hidden=""]{overflow:hidden}.overflow-y-scroll,[overflow-y-scroll=""]{overflow-y:scroll}.truncate,[truncate=""]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border,[border=""],[border~="1"],[border~="1px"]{border-width:1px}.border-slate-200,[border-slate-200=""],[border~=slate-200]{--un-border-opacity:1;border-color:rgb(226 232 240 / var(--un-border-opacity))}.border-stone-2,[border-stone-2=""]{--un-border-opacity:1;border-color:rgb(231 229 228 / var(--un-border-opacity))}.invalid\\:border-pink-500:invalid{--un-border-opacity:1;border-color:rgb(236 72 153 / var(--un-border-opacity))}.invalid\\:focus\\:border-pink-500:focus:invalid{--un-border-opacity:1;border-color:rgb(236 72 153 / var(--un-border-opacity))}.rounded{border-radius:.25rem}.rounded-lg,[rounded-lg=""],[rounded~=lg]{border-radius:.5rem}.rounded-md,[rounded-md=""]{border-radius:.375rem}.rounded-xl,[rounded-xl=""]{border-radius:.75rem}[rounded~="after:full"]:after{border-radius:9999px}.border-none{border-style:none}.border-solid,[border-solid=""],[border~=solid]{border-style:solid}[border~=y-none]{border-top-style:none;border-bottom-style:none}[border~=l-none]{border-left-style:none}.bg-emerald-500,[bg-emerald-500=""]{--un-bg-opacity:1;background-color:rgb(16 185 129 / var(--un-bg-opacity))}.bg-stone-100,[bg-stone-100=""],[bg~=stone-100]{--un-bg-opacity:1;background-color:rgb(245 245 244 / var(--un-bg-opacity))}.bg-transparent,[bg~=transparent]{background-color:transparent}.bg-white,[bg-white=""],[bg~=white]{--un-bg-opacity:1;background-color:rgb(255 255 255 / var(--un-bg-opacity))}[bg~=slate-300]{--un-bg-opacity:1;background-color:rgb(203 213 225 / var(--un-bg-opacity))}[bg~="checked:after:emerald-500"]:checked:after{--un-bg-opacity:1;background-color:rgb(16 185 129 / var(--un-bg-opacity))}[bg~="checked:after:focus:emerald-700"]:focus:checked:after{--un-bg-opacity:1;background-color:rgb(4 120 87 / var(--un-bg-opacity))}[bg~="checked:after:hover:emerald-600"]:hover:checked:after{--un-bg-opacity:1;background-color:rgb(5 150 105 / var(--un-bg-opacity))}[bg~="checked:emerald-200"]:checked{--un-bg-opacity:1;background-color:rgb(167 243 208 / var(--un-bg-opacity))}[bg~="checked:focus:emerald-400"]:focus:checked{--un-bg-opacity:1;background-color:rgb(52 211 153 / var(--un-bg-opacity))}[bg~="checked:hover:emerald-300"]:hover:checked{--un-bg-opacity:1;background-color:rgb(110 231 183 / var(--un-bg-opacity))}.hover\\:bg-emerald-300:hover{--un-bg-opacity:1;background-color:rgb(110 231 183 / var(--un-bg-opacity))}[bg~="hover:slate-400"]:hover{--un-bg-opacity:1;background-color:rgb(148 163 184 / var(--un-bg-opacity))}[hover\\:bg-emerald-300=""]:hover{--un-bg-opacity:1;background-color:rgb(110 231 183 / var(--un-bg-opacity))}.disabled\\:bg-slate-200:disabled{--un-bg-opacity:1;background-color:rgb(226 232 240 / var(--un-bg-opacity))}[bg~="disabled:after:slate-300"]:disabled:after{--un-bg-opacity:1;background-color:rgb(203 213 225 / var(--un-bg-opacity))}[bg~="disabled:slate-200"]:disabled{--un-bg-opacity:1;background-color:rgb(226 232 240 / var(--un-bg-opacity))}[disabled\\:bg-slate-200=""]:disabled{--un-bg-opacity:1;background-color:rgb(226 232 240 / var(--un-bg-opacity))}[bg~="after:hover:slate-600"]:hover:after{--un-bg-opacity:1;background-color:rgb(71 85 105 / var(--un-bg-opacity))}[bg~="after:slate-500"]:after{--un-bg-opacity:1;background-color:rgb(100 116 139 / var(--un-bg-opacity))}.p-\\.5,[p-\\.5=""]{padding:.125rem}.p-0,[p-0=""],[p~="0"]{padding:0}[p~="5px"]{padding:5px}.px{padding-left:1rem;padding-right:1rem}.px-2,[px-2=""]{padding-left:.5rem;padding-right:.5rem}.py{padding-top:1rem;padding-bottom:1rem}[px~="8px"]{padding-left:8px;padding-right:8px}[py~="14px"]{padding-top:14px;padding-bottom:14px}.pr-1,[pr-1=""]{padding-right:.25rem}.text-sm,[text-sm=""]{font-size:.875rem;line-height:1.25rem}.text-xs,[text-xs=""]{font-size:.75rem;line-height:1rem}.text-slate-500,[text-slate-500=""]{--un-text-opacity:1;color:rgb(100 116 139 / var(--un-text-opacity))}.text-stone-400,[text-stone-400=""]{--un-text-opacity:1;color:rgb(168 162 158 / var(--un-text-opacity))}.text-stone-500{--un-text-opacity:1;color:rgb(120 113 108 / var(--un-text-opacity))}.text-white,[text-white=""]{--un-text-opacity:1;color:rgb(255 255 255 / var(--un-text-opacity))}.text-zinc-400,[text-zinc-400=""]{--un-text-opacity:1;color:rgb(161 161 170 / var(--un-text-opacity))}.text-zinc-500,[text-zinc-500=""]{--un-text-opacity:1;color:rgb(113 113 122 / var(--un-text-opacity))}.invalid\\:text-pink-500:invalid{--un-text-opacity:1;color:rgb(236 72 153 / var(--un-text-opacity))}.disabled\\:text-slate-400:disabled{--un-text-opacity:1;color:rgb(148 163 184 / var(--un-text-opacity))}[disabled\\:text-slate-400=""]:disabled{--un-text-opacity:1;color:rgb(148 163 184 / var(--un-text-opacity))}.font-bold,[font-bold=""]{font-weight:700}.tab{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.shadow-gray-2{--un-shadow-opacity:1;--un-shadow-color:rgb(229 231 235 / var(--un-shadow-opacity)) }.shadow-sm,[shadow-sm=""]{--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.shadow-stone-400,[shadow-stone-400=""]{--un-shadow-opacity:1;--un-shadow-color:rgb(168 162 158 / var(--un-shadow-opacity)) }.outline{outline-style:solid}.outline-none,[outline~=none]{outline:2px solid transparent;outline-offset:2px}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}[outline~="focus:none"]:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}[outline~="focus-visible:none"]:focus-visible{outline:2px solid transparent;outline-offset:2px}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all,[transition-all=""],[transition~=all]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[transition~="300"]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}[transition~=colors]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[transition~="hover:all"]:hover{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}[transition~="after:all"]:after{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200,[duration-200=""]{transition-duration:.2s}.duration-300,[duration-300=""]{transition-duration:.3s}.ease-in-out,[ease-in-out=""]{transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:content-\\[\\'\\'\\]:after{content:""}:where(html){line-height:1.15;-webkit-text-size-adjust:100%;text-size-adjust:100%}:where(h1){font-size:2em;margin-block-end:.67em;margin-block-start:.67em}:where(dl,ol,ul) :where(dl,ol,ul){margin-block-end:0;margin-block-start:0}:where(hr){box-sizing:content-box;color:inherit;height:0}:where(abbr[title]){text-decoration:underline;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,pre,samp){font-family:monospace,monospace;font-size:1em}:where(small){font-size:80%}:where(table){border-color:currentColor;text-indent:0}:where(button,input,select){margin:0}:where(button){text-transform:none}:where(button,input:is([type=button i],[type=reset i],[type=submit i])){-webkit-appearance:button}:where(progress){vertical-align:baseline}:where(select){text-transform:none}:where(textarea){margin:0}:where(input[type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focus-inner{border-style:none;padding:0}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focusring{outline:1px dotted ButtonText}:where(:-moz-ui-invalid){box-shadow:none}:where(dialog){background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:fit-content}:where(dialog:not([open])){display:none}:where(summary){display:list-item} `);

(function (vue) {
  'use strict';

  var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
  var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
  function useGMValue(key, initialValue) {
    const _value = vue.ref(_GM_getValue(key, initialValue));
    vue.watch(
      _value,
      (v) => {
        _GM_setValue(key, v);
      },
      { deep: true }
    );
    return vue.computed({
      set(v) {
        _value.value = v;
      },
      get() {
        return _value.value;
      }
    });
  }
  const _hoisted_1$3 = ["w", "h", "p", "right"];
  const _hoisted_2$3 = ["bg", "w"];
  const _hoisted_3$2 = {
    "text-xs": "",
    "text-stone-400": ""
  };
  const _hoisted_4$1 = { w: "300px" };
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
    __name: "FloatContainer",
    setup(__props) {
      const isExpand = useGMValue("isExpand", true);
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", {
          fixed: "",
          "bg-white": "",
          border: "",
          "border-solid": "",
          "border-stone-2": "",
          "shadow-sm": "",
          "shadow-stone-400": "",
          "rounded-xl": "",
          "transition-all": "",
          "duration-300": "",
          "ease-in-out": "",
          "overflow-hidden": "",
          z: "99999",
          top: "100px",
          w: vue.unref(isExpand) ? "300px" : "12",
          h: vue.unref(isExpand) ? "600px" : "12",
          p: vue.unref(isExpand) ? "5px" : "0",
          right: vue.unref(isExpand) ? "2" : "hover:2 -5"
        }, [
          vue.createElementVNode("div", {
            ref: "el",
            onClick: _cache[0] || (_cache[0] = ($event) => isExpand.value = !vue.unref(isExpand)),
            flex: "",
            "items-center": "",
            "justify-center": "",
            "h-12": "",
            "rounded-lg": "",
            "bg-stone-100": "",
            bg: vue.unref(isExpand) ? "stone-100" : "white",
            w: vue.unref(isExpand) ? "full" : "12",
            "cursor-pointer": "",
            "transition-all": "",
            "duration-300": "",
            "ease-in-out": "",
            "gap-1": ""
          }, [
            _cache[1] || (_cache[1] = vue.createElementVNode("span", null, "评论", -1)),
            vue.createElementVNode("span", _hoisted_3$2, vue.toDisplayString(vue.unref(isExpand) ? "点击这里最小化" : ""), 1)
          ], 8, _hoisted_2$3),
          vue.withDirectives(vue.createElementVNode("div", _hoisted_4$1, [
            vue.renderSlot(_ctx.$slots, "default")
          ], 512), [
            [vue.vShow, vue.unref(isExpand)]
          ])
        ], 8, _hoisted_1$3);
      };
    }
  });
  const _hoisted_1$2 = {
    relative: "",
    flex: "",
    "h-8": "",
    border: "",
    "border-slate-200": "",
    "border-solid": "",
    "rounded-md": "",
    "overflow-hidden": ""
  };
  const _hoisted_2$2 = {
    "px-2": "",
    "text-sm": "",
    "text-slate-500": "",
    flex: "",
    "items-center": "",
    bg: "transparent",
    border: "1 l-none y-none solid slate-200",
    w: "3em"
  };
  const _hoisted_3$1 = { w: "0" };
  const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
    __name: "InputWithType",
    props: {
      label: {}
    },
    emits: ["add"],
    setup(__props, { emit: __emit }) {
      const value = vue.ref("");
      const emits = __emit;
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
          vue.createElementVNode("div", _hoisted_2$2, vue.toDisplayString(_ctx.label), 1),
          vue.createElementVNode("div", _hoisted_3$1, [
            vue.withDirectives(vue.createElementVNode("input", {
              class: "input",
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(value) ? value.value = $event : null)
            }, null, 512), [
              [vue.vModelText, vue.unref(value)]
            ])
          ]),
          vue.createElementVNode("button", {
            absolute: "",
            right: "-1px",
            top: "-1px",
            bottom: "-1px",
            w: "4em",
            "bg-emerald-500": "",
            "hover:bg-emerald-300": "",
            "text-white": "",
            "text-sm": "",
            "disabled:bg-slate-200": "",
            "disabled:text-slate-400": "",
            "cursor-pointer": "",
            border: "1px solid slate-200",
            "ml-auto": "",
            transition: "all hover:all 300",
            "disabled:cursor-not-allowed": "",
            "font-bold": "",
            outline: "none focus-visible:none focus:none",
            onClick: _cache[1] || (_cache[1] = ($event) => emits("add", vue.unref(value)))
          }, "添加")
        ]);
      };
    }
  });
  const _export_sfc = (sfc, props) => {
    const target = sfc.__vccOpts || sfc;
    for (const [key, val] of props) {
      target[key] = val;
    }
    return target;
  };
  const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-1e639cad"]]);
  const _hoisted_1$1 = {
    relative: "",
    flex: "",
    "flex-wrap": "",
    "items-center": ""
  };
  const _hoisted_2$1 = ["checked"];
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
    __name: "Switch",
    props: {
      "modelValue": { type: Boolean },
      "modelModifiers": {}
    },
    emits: ["update:modelValue"],
    setup(__props) {
      const modelValue = vue.useModel(__props, "modelValue");
      return (_ctx, _cache) => {
        return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
          vue.createElementVNode("input", {
            checked: modelValue.value,
            onChange: _cache[0] || (_cache[0] = ($event) => modelValue.value = !modelValue.value),
            type: "checkbox",
            class: "relative appearance-none cursor-pointer shadow-sm shadow-gray-2 focus:outline-none focus-visible:outline-none after:content-[''] after:absolute after:top-0 disabled:cursor-not-allowed",
            w: "8 after:4",
            h: "4 after:4",
            left: "after:0 checked:after:4",
            rounded: "lg after:full",
            transition: "colors after:all",
            bg: "slate-300 hover:slate-400 after:slate-500  after:hover:slate-600 checked:hover:emerald-300 checked:after:hover:emerald-600 checked:focus:emerald-400 checked:after:focus:emerald-700  checked:after:emerald-500  disabled:slate-200 disabled:after:slate-300 checked:emerald-200"
          }, null, 40, _hoisted_2$1)
        ]);
      };
    }
  });
  var BlockType = /* @__PURE__ */ ((BlockType2) => {
    BlockType2["Keyword"] = "keyword";
    BlockType2["UID"] = "uid";
    return BlockType2;
  })(BlockType || {});
  function useBlockListWithType(options) {
    const lists = {};
    for (const type in options) {
      const { storageKey, defaultValue } = options[type];
      lists[type] = useGMValue(storageKey, defaultValue);
    }
    const currentType = vue.ref(
      "keyword"
      /* Keyword */
    );
    const list = vue.computed(() => lists[currentType.value].value);
    return {
      type: currentType,
      list
    };
  }
  const slice = (o, n) => Array.prototype.slice.call(o, n);
  let result = null;
  if (typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope) {
    result = self;
  } else if (typeof unsafeWindow !== "undefined") {
    result = unsafeWindow;
  } else if (typeof global !== "undefined") {
    result = global;
  } else if (window) {
    result = window;
  }
  const windowRef = result;
  const documentRef = result.document;
  const UPLOAD_EVENTS = ["load", "loadend", "loadstart"];
  const COMMON_EVENTS = ["progress", "abort", "error", "timeout"];
  const depricatedProp = (p) => ["returnValue", "totalSize", "position"].includes(p);
  const mergeObjects = function(src, dst) {
    for (let k in src) {
      if (depricatedProp(k)) {
        continue;
      }
      const v = src[k];
      try {
        dst[k] = v;
      } catch (error) {
      }
    }
    return dst;
  };
  const proxyEvents = function(events, src, dst) {
    const p = (event) => function(e) {
      const clone = {};
      for (let k in e) {
        if (depricatedProp(k)) {
          continue;
        }
        const val = e[k];
        clone[k] = val === src ? dst : val;
      }
      return dst.dispatchEvent(event, clone);
    };
    for (let event of Array.from(events)) {
      if (dst._has(event)) {
        src[`on${event}`] = p(event);
      }
    }
  };
  const fakeEvent = function(type) {
    if (documentRef && documentRef.createEventObject != null) {
      const msieEventObject = documentRef.createEventObject();
      msieEventObject.type = type;
      return msieEventObject;
    }
    try {
      return new Event(type);
    } catch (error) {
      return { type };
    }
  };
  const EventEmitter = function(nodeStyle) {
    let events = {};
    const listeners = (event) => events[event] || [];
    const emitter = {};
    emitter.addEventListener = function(event, callback, i) {
      events[event] = listeners(event);
      if (events[event].indexOf(callback) >= 0) {
        return;
      }
      i = i === void 0 ? events[event].length : i;
      events[event].splice(i, 0, callback);
    };
    emitter.removeEventListener = function(event, callback) {
      if (event === void 0) {
        events = {};
        return;
      }
      if (callback === void 0) {
        events[event] = [];
      }
      const i = listeners(event).indexOf(callback);
      if (i === -1) {
        return;
      }
      listeners(event).splice(i, 1);
    };
    emitter.dispatchEvent = function() {
      const args = slice(arguments);
      const event = args.shift();
      if (!nodeStyle) {
        args[0] = mergeObjects(args[0], fakeEvent(event));
        Object.defineProperty(args[0], "target", {
          writable: false,
          value: this
        });
      }
      const legacylistener = emitter[`on${event}`];
      if (legacylistener) {
        legacylistener.apply(emitter, args);
      }
      const iterable = listeners(event).concat(listeners("*"));
      for (let i = 0; i < iterable.length; i++) {
        const listener = iterable[i];
        listener.apply(emitter, args);
      }
    };
    emitter._has = (event) => !!(events[event] || emitter[`on${event}`]);
    if (nodeStyle) {
      emitter.listeners = (event) => slice(listeners(event));
      emitter.on = emitter.addEventListener;
      emitter.off = emitter.removeEventListener;
      emitter.fire = emitter.dispatchEvent;
      emitter.once = function(e, fn) {
        var fire = function() {
          emitter.off(e, fire);
          return fn.apply(null, arguments);
        };
        return emitter.on(e, fire);
      };
      emitter.destroy = () => events = {};
    }
    return emitter;
  };
  const CRLF = "\r\n";
  const objectToString = function(headersObj) {
    const entries = Object.entries(headersObj);
    const headers2 = entries.map(([name, value]) => {
      return `${name.toLowerCase()}: ${value}`;
    });
    return headers2.join(CRLF);
  };
  const stringToObject = function(headersString, dest) {
    const headers2 = headersString.split(CRLF);
    if (dest == null) {
      dest = {};
    }
    for (let header of headers2) {
      if (/([^:]+):\s*(.+)/.test(header)) {
        const name = RegExp.$1 != null ? RegExp.$1.toLowerCase() : void 0;
        const value = RegExp.$2;
        if (dest[name] == null) {
          dest[name] = value;
        }
      }
    }
    return dest;
  };
  const convert = function(headers2, dest) {
    switch (typeof headers2) {
      case "object": {
        return objectToString(headers2);
      }
      case "string": {
        return stringToObject(headers2, dest);
      }
    }
    return [];
  };
  var headers = { convert };
  const hooks = EventEmitter(true);
  const nullify = (res) => res === void 0 ? null : res;
  const Native$1 = windowRef.XMLHttpRequest;
  const Xhook$1 = function() {
    const ABORTED = -1;
    const xhr = new Native$1();
    const request = {};
    let status = null;
    let hasError = void 0;
    let transiting = void 0;
    let response = void 0;
    var currentState = 0;
    const readHead = function() {
      response.status = status || xhr.status;
      if (status !== ABORTED) {
        response.statusText = xhr.statusText;
      }
      if (status !== ABORTED) {
        const object = headers.convert(xhr.getAllResponseHeaders());
        for (let key in object) {
          const val = object[key];
          if (!response.headers[key]) {
            const name = key.toLowerCase();
            response.headers[name] = val;
          }
        }
        return;
      }
    };
    const readBody = function() {
      if (!xhr.responseType || xhr.responseType === "text") {
        response.text = xhr.responseText;
        response.data = xhr.responseText;
        try {
          response.xml = xhr.responseXML;
        } catch (error) {
        }
      } else if (xhr.responseType === "document") {
        response.xml = xhr.responseXML;
        response.data = xhr.responseXML;
      } else {
        response.data = xhr.response;
      }
      if ("responseURL" in xhr) {
        response.finalUrl = xhr.responseURL;
      }
    };
    const writeHead = function() {
      facade.status = response.status;
      facade.statusText = response.statusText;
    };
    const writeBody = function() {
      if ("text" in response) {
        facade.responseText = response.text;
      }
      if ("xml" in response) {
        facade.responseXML = response.xml;
      }
      if ("data" in response) {
        facade.response = response.data;
      }
      if ("finalUrl" in response) {
        facade.responseURL = response.finalUrl;
      }
    };
    const emitFinal = function() {
      if (!hasError) {
        facade.dispatchEvent("load", {});
      }
      facade.dispatchEvent("loadend", {});
      if (hasError) {
        facade.readyState = 0;
      }
    };
    const emitReadyState = function(n) {
      while (n > currentState && currentState < 4) {
        facade.readyState = ++currentState;
        if (currentState === 1) {
          facade.dispatchEvent("loadstart", {});
        }
        if (currentState === 2) {
          writeHead();
        }
        if (currentState === 4) {
          writeHead();
          writeBody();
        }
        facade.dispatchEvent("readystatechange", {});
        if (currentState === 4) {
          if (request.async === false) {
            emitFinal();
          } else {
            setTimeout(emitFinal, 0);
          }
        }
      }
    };
    const setReadyState = function(n) {
      if (n !== 4) {
        emitReadyState(n);
        return;
      }
      const afterHooks = hooks.listeners("after");
      var process = function() {
        if (afterHooks.length > 0) {
          const hook = afterHooks.shift();
          if (hook.length === 2) {
            hook(request, response);
            process();
          } else if (hook.length === 3 && request.async) {
            hook(request, response, process);
          } else {
            process();
          }
        } else {
          emitReadyState(4);
        }
        return;
      };
      process();
    };
    var facade = EventEmitter();
    request.xhr = facade;
    xhr.onreadystatechange = function(event) {
      try {
        if (xhr.readyState === 2) {
          readHead();
        }
      } catch (error) {
      }
      if (xhr.readyState === 4) {
        transiting = false;
        readHead();
        readBody();
      }
      setReadyState(xhr.readyState);
    };
    const hasErrorHandler = function() {
      hasError = true;
    };
    facade.addEventListener("error", hasErrorHandler);
    facade.addEventListener("timeout", hasErrorHandler);
    facade.addEventListener("abort", hasErrorHandler);
    facade.addEventListener("progress", function(event) {
      if (currentState < 3) {
        setReadyState(3);
      } else if (xhr.readyState <= 3) {
        facade.dispatchEvent("readystatechange", {});
      }
    });
    if ("withCredentials" in xhr) {
      facade.withCredentials = false;
    }
    facade.status = 0;
    for (let event of Array.from(COMMON_EVENTS.concat(UPLOAD_EVENTS))) {
      facade[`on${event}`] = null;
    }
    facade.open = function(method, url, async, user, pass) {
      currentState = 0;
      hasError = false;
      transiting = false;
      request.headers = {};
      request.headerNames = {};
      request.status = 0;
      request.method = method;
      request.url = url;
      request.async = async !== false;
      request.user = user;
      request.pass = pass;
      response = {};
      response.headers = {};
      setReadyState(1);
    };
    facade.send = function(body) {
      let k, modk;
      for (k of ["type", "timeout", "withCredentials"]) {
        modk = k === "type" ? "responseType" : k;
        if (modk in facade) {
          request[k] = facade[modk];
        }
      }
      request.body = body;
      const send = function() {
        proxyEvents(COMMON_EVENTS, xhr, facade);
        if (facade.upload) {
          proxyEvents(
            COMMON_EVENTS.concat(UPLOAD_EVENTS),
            xhr.upload,
            facade.upload
          );
        }
        transiting = true;
        xhr.open(
          request.method,
          request.url,
          request.async,
          request.user,
          request.pass
        );
        for (k of ["type", "timeout", "withCredentials"]) {
          modk = k === "type" ? "responseType" : k;
          if (k in request) {
            xhr[modk] = request[k];
          }
        }
        for (let header in request.headers) {
          const value = request.headers[header];
          if (header) {
            xhr.setRequestHeader(header, value);
          }
        }
        xhr.send(request.body);
      };
      const beforeHooks = hooks.listeners("before");
      var process = function() {
        if (!beforeHooks.length) {
          return send();
        }
        const done = function(userResponse) {
          if (typeof userResponse === "object" && (typeof userResponse.status === "number" || typeof response.status === "number")) {
            mergeObjects(userResponse, response);
            if (!("data" in userResponse)) {
              userResponse.data = userResponse.response || userResponse.text;
            }
            setReadyState(4);
            return;
          }
          process();
        };
        done.head = function(userResponse) {
          mergeObjects(userResponse, response);
          setReadyState(2);
        };
        done.progress = function(userResponse) {
          mergeObjects(userResponse, response);
          setReadyState(3);
        };
        const hook = beforeHooks.shift();
        if (hook.length === 1) {
          done(hook(request));
        } else if (hook.length === 2 && request.async) {
          hook(request, done);
        } else {
          done();
        }
        return;
      };
      process();
    };
    facade.abort = function() {
      status = ABORTED;
      if (transiting) {
        xhr.abort();
      } else {
        facade.dispatchEvent("abort", {});
      }
    };
    facade.setRequestHeader = function(header, value) {
      const lName = header != null ? header.toLowerCase() : void 0;
      const name = request.headerNames[lName] = request.headerNames[lName] || header;
      if (request.headers[name]) {
        value = request.headers[name] + ", " + value;
      }
      request.headers[name] = value;
    };
    facade.getResponseHeader = (header) => nullify(response.headers[header ? header.toLowerCase() : void 0]);
    facade.getAllResponseHeaders = () => nullify(headers.convert(response.headers));
    if (xhr.overrideMimeType) {
      facade.overrideMimeType = function() {
        xhr.overrideMimeType.apply(xhr, arguments);
      };
    }
    if (xhr.upload) {
      let up = EventEmitter();
      facade.upload = up;
      request.upload = up;
    }
    facade.UNSENT = 0;
    facade.OPENED = 1;
    facade.HEADERS_RECEIVED = 2;
    facade.LOADING = 3;
    facade.DONE = 4;
    facade.response = "";
    facade.responseText = "";
    facade.responseXML = null;
    facade.readyState = 0;
    facade.statusText = "";
    return facade;
  };
  Xhook$1.UNSENT = 0;
  Xhook$1.OPENED = 1;
  Xhook$1.HEADERS_RECEIVED = 2;
  Xhook$1.LOADING = 3;
  Xhook$1.DONE = 4;
  var XMLHttpRequest = {
    patch() {
      if (Native$1) {
        windowRef.XMLHttpRequest = Xhook$1;
      }
    },
    unpatch() {
      if (Native$1) {
        windowRef.XMLHttpRequest = Native$1;
      }
    },
    Native: Native$1,
    Xhook: Xhook$1
  };
  function __rest(s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
      t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
        if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
          t[p[i]] = s[p[i]];
      }
    return t;
  }
  function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) {
      return value instanceof P ? value : new P(function(resolve) {
        resolve(value);
      });
    }
    return new (P || (P = Promise))(function(resolve, reject) {
      function fulfilled(value) {
        try {
          step(generator.next(value));
        } catch (e) {
          reject(e);
        }
      }
      function rejected(value) {
        try {
          step(generator["throw"](value));
        } catch (e) {
          reject(e);
        }
      }
      function step(result2) {
        result2.done ? resolve(result2.value) : adopt(result2.value).then(fulfilled, rejected);
      }
      step((generator = generator.apply(thisArg, [])).next());
    });
  }
  const Native = windowRef.fetch;
  function copyToObjFromRequest(req) {
    const copyedKeys = [
      "method",
      "headers",
      "body",
      "mode",
      "credentials",
      "cache",
      "redirect",
      "referrer",
      "referrerPolicy",
      "integrity",
      "keepalive",
      "signal",
      "url"
    ];
    let copyedObj = {};
    copyedKeys.forEach((key) => copyedObj[key] = req[key]);
    return copyedObj;
  }
  function covertHeaderToPlainObj(headers2) {
    if (headers2 instanceof Headers) {
      return covertTDAarryToObj([...headers2.entries()]);
    }
    if (Array.isArray(headers2)) {
      return covertTDAarryToObj(headers2);
    }
    return headers2;
  }
  function covertTDAarryToObj(input) {
    return input.reduce((prev, [key, value]) => {
      prev[key] = value;
      return prev;
    }, {});
  }
  const Xhook = function(input, init = { headers: {} }) {
    let options = Object.assign(Object.assign({}, init), { isFetch: true });
    if (input instanceof Request) {
      const requestObj = copyToObjFromRequest(input);
      const prevHeaders = Object.assign(Object.assign({}, covertHeaderToPlainObj(requestObj.headers)), covertHeaderToPlainObj(options.headers));
      options = Object.assign(Object.assign(Object.assign({}, requestObj), init), { headers: prevHeaders, acceptedRequest: true });
    } else {
      options.url = input;
    }
    const beforeHooks = hooks.listeners("before");
    const afterHooks = hooks.listeners("after");
    return new Promise(function(resolve, reject) {
      let fullfiled = resolve;
      const processAfter = function(response) {
        if (!afterHooks.length) {
          return fullfiled(response);
        }
        const hook = afterHooks.shift();
        if (hook.length === 2) {
          hook(options, response);
          return processAfter(response);
        } else if (hook.length === 3) {
          return hook(options, response, processAfter);
        } else {
          return processAfter(response);
        }
      };
      const done = function(userResponse) {
        if (userResponse !== void 0) {
          const response = new Response(userResponse.body || userResponse.text, userResponse);
          resolve(response);
          processAfter(response);
          return;
        }
        processBefore();
      };
      const processBefore = function() {
        if (!beforeHooks.length) {
          send();
          return;
        }
        const hook = beforeHooks.shift();
        if (hook.length === 1) {
          return done(hook(options));
        } else if (hook.length === 2) {
          return hook(options, done);
        }
      };
      const send = () => __awaiter(this, void 0, void 0, function* () {
        const { url, isFetch, acceptedRequest } = options, restInit = __rest(options, ["url", "isFetch", "acceptedRequest"]);
        if (input instanceof Request && restInit.body instanceof ReadableStream) {
          restInit.body = yield new Response(restInit.body).text();
        }
        return Native(url, restInit).then((response) => processAfter(response)).catch(function(err) {
          fullfiled = reject;
          processAfter(err);
          return reject(err);
        });
      });
      processBefore();
    });
  };
  var fetch = {
    patch() {
      if (Native) {
        windowRef.fetch = Xhook;
      }
    },
    unpatch() {
      if (Native) {
        windowRef.fetch = Native;
      }
    },
    Native,
    Xhook
  };
  const xhook = hooks;
  xhook.EventEmitter = EventEmitter;
  xhook.before = function(handler, i) {
    if (handler.length < 1 || handler.length > 2) {
      throw "invalid hook";
    }
    return xhook.on("before", handler, i);
  };
  xhook.after = function(handler, i) {
    if (handler.length < 2 || handler.length > 3) {
      throw "invalid hook";
    }
    return xhook.on("after", handler, i);
  };
  xhook.enable = function() {
    XMLHttpRequest.patch();
    fetch.patch();
  };
  xhook.disable = function() {
    XMLHttpRequest.unpatch();
    fetch.unpatch();
  };
  xhook.XMLHttpRequest = XMLHttpRequest.Native;
  xhook.fetch = fetch.Native;
  xhook.headers = headers.convert;
  xhook.enable();
  function matchURL(url, rule) {
    return url.includes(rule.url);
  }
  function useRequestHook(options) {
    xhook.after((request, response) => {
      const rules = vue.toValue((options == null ? void 0 : options.rules) ?? []);
      for (const rule of rules) {
        if (matchURL(request.url, rule)) {
          Object.defineProperty(response, "data", {
            set(v) {
              this._data = rule.response(v);
            },
            get() {
              return this._data;
            }
          });
        }
      }
    });
    console.log("[bili-comment-hide] options?.immediate ", options == null ? void 0 : options.immediate);
    (options == null ? void 0 : options.immediate) ? xhook.enable() : xhook.disable();
    return { enable: xhook.enable, disable: xhook.disable };
  }
  const _hoisted_1 = {
    class: "main",
    "box-border": "",
    w: "290px",
    px: "8px",
    py: "14px"
  };
  const _hoisted_2 = {
    flex: "",
    items: "center",
    "mb-2": ""
  };
  const _hoisted_3 = {
    flex: "",
    "flex-col": ""
  };
  const _hoisted_4 = {
    "my-2": "",
    flex: "",
    "items-start": "",
    "gap-2": ""
  };
  const _hoisted_5 = ["onClick"];
  const _hoisted_6 = {
    key: 0,
    "p-0": "",
    "m-0": "",
    "overflow-y-scroll": "",
    h: "430px"
  };
  const _hoisted_7 = {
    truncate: "",
    "mr-.5": ""
  };
  const _hoisted_8 = ["onClick"];
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
    __name: "App",
    setup(__props) {
      const tabs = {
        [BlockType.Keyword]: { name: "关键词", value: BlockType.Keyword },
        [BlockType.UID]: { name: "UID", value: BlockType.UID }
      };
      const isChecked = useGMValue("isChecked", true);
      const { type, list } = useBlockListWithType({
        [BlockType.Keyword]: { storageKey: "keywords", defaultValue: [] },
        [BlockType.UID]: { storageKey: "uids", defaultValue: [] }
      });
      function filterByKeyword(replies, keywords) {
        return replies.filter((item) => keywords.every((keyword) => item.content.message.indexOf(keyword) === -1));
      }
      function filterByUID(replies, uids) {
        return replies.filter((item) => uids.every((uid) => item.mid_str !== uid));
      }
      const filterMap = {
        [BlockType.Keyword]: filterByKeyword,
        [BlockType.UID]: filterByUID
      };
      const requestHook = useRequestHook({
        rules: [
          {
            url: "x/v2/reply/wbi/main",
            response: (originResponse) => {
              var _a;
              if ((_a = originResponse == null ? void 0 : originResponse.data) == null ? void 0 : _a.replies) {
                const repliesFilter = filterMap[type.value];
                const replies = repliesFilter(originResponse.data.replies.slice(), list.value);
                originResponse.data.replies = replies;
              }
              return originResponse;
            }
          },
          {
            url: "x/v2/reply/reply",
            response: (originResponse) => {
              var _a;
              if ((_a = originResponse == null ? void 0 : originResponse.data) == null ? void 0 : _a.replies) {
                const repliesFilter = filterMap[type.value];
                const replies = repliesFilter(originResponse.data.replies.slice(), list.value);
                originResponse.data.replies = replies;
              }
              return originResponse;
            }
          }
        ],
        immediate: isChecked.value
      });
      vue.watch(isChecked, (value) => {
        value ? requestHook.enable() : requestHook.disable();
      });
      function addItem(value) {
        if (value) {
          list.value.push(value);
        }
      }
      function remove(value) {
        const index = list.value.indexOf(value);
        if (index > -1) {
          list.value.splice(index, 1);
        }
      }
      return (_ctx, _cache) => {
        const _component_Switch = _sfc_main$1;
        const _component_InputWithType = __unplugin_components_1;
        const _component_FloatContainer = _sfc_main$3;
        return vue.openBlock(), vue.createBlock(_component_FloatContainer, null, {
          default: vue.withCtx(() => [
            vue.createElementVNode("div", _hoisted_1, [
              vue.createElementVNode("div", _hoisted_2, [
                _cache[1] || (_cache[1] = vue.createElementVNode("span", { "mr-1": "" }, "激活隐藏", -1)),
                vue.createVNode(_component_Switch, {
                  modelValue: vue.unref(isChecked),
                  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(isChecked) ? isChecked.value = $event : null)
                }, null, 8, ["modelValue"]),
                _cache[2] || (_cache[2] = vue.createElementVNode("span", {
                  "ml-1": "",
                  "text-xs": "",
                  "text-zinc-400": ""
                }, "切换后需要刷新页面", -1))
              ]),
              vue.createElementVNode("div", _hoisted_3, [
                vue.createVNode(_component_InputWithType, {
                  "mb-1": "",
                  onAdd: addItem,
                  label: tabs[vue.unref(type)].name
                }, null, 8, ["label"]),
                vue.createElementVNode("div", _hoisted_4, [
                  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(Object.values(tabs), (tab) => {
                    return vue.openBlock(), vue.createElementBlock("div", {
                      key: tab.value,
                      class: vue.normalizeClass({ "text-stone-500": vue.unref(type) !== tab.value }),
                      "cursor-pointer": "",
                      onClick: ($event) => type.value = tab.value,
                      "transition-all": "",
                      "duration-200": ""
                    }, [
                      vue.createElementVNode("span", null, vue.toDisplayString(tab.name) + "列表", 1)
                    ], 10, _hoisted_5);
                  }), 128))
                ]),
                vue.unref(list).length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_6, [
                  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(list), (item) => {
                    return vue.openBlock(), vue.createElementBlock("li", {
                      key: item,
                      "text-sm": "",
                      "text-zinc-500": "",
                      "list-none": "",
                      "mb-1": "",
                      flex: "",
                      "items-center": "",
                      "justify-between": "",
                      "pr-1": ""
                    }, [
                      vue.createElementVNode("span", _hoisted_7, vue.toDisplayString(item), 1),
                      vue.createElementVNode("span", {
                        "cursor-pointer": "",
                        "p-.5": "",
                        onClick: ($event) => remove(item)
                      }, "✕", 8, _hoisted_8)
                    ]);
                  }), 128))
                ])) : vue.createCommentVNode("", true),
                _cache[3] || (_cache[3] = vue.createElementVNode("div", {
                  "text-sm": "",
                  "text-zinc-500": "",
                  flex: "",
                  "justify-center": "",
                  "items-center": "",
                  "mt-30": ""
                }, "这里是空的", -1))
              ])
            ])
          ]),
          _: 1
        });
      };
    }
  });
  vue.createApp(_sfc_main).mount(
    (() => {
      const app = document.createElement("div");
      document.body.append(app);
      return app;
    })()
  );

})(Vue);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址