import { defineComponent as w, computed as m, ref as b, onMounted as U, createBlock as W, openBlock as y, unref as v, withCtx as z, createElementVNode as a, normalizeStyle as c, createElementBlock as x, Fragment as F, renderList as P, createVNode as g } from "vue";
import { Vue3SeamlessScroll as T } from "vue3-seamless-scroll";
import { useWatch as _ } from "./hooks/useListWatch.mjs";
/* empty css                                     */
/* empty css                                     */
import "../../../Interaction/components/Tabs/index.mjs";
import "../../../Interaction/components/Tabs-icon/index.mjs";
import "../../../Interaction/components/Button/index.mjs";
import "../../../Interaction/components/DatePicker/index.mjs";
import "../../../Interaction/components/DatePickerRange/index.mjs";
import "../../../Interaction/components/Switch/index.mjs";
import "../../../Interaction/components/Input/index.mjs";
import "../../../Interaction/components/Select/index.mjs";
import "../../../Interaction/components/Slider/index.mjs";
import "./index.mjs";
import "../Text/index.mjs";
import "../TextDynamic/index.mjs";
import "../TableBasic/index.mjs";
import "../TableScroll/index.mjs";
import "../RowScroll/index.mjs";
import "../RealTime/index.mjs";
import "../OverNumber/index.mjs";
import "../CountDown/index.mjs";
import "../TextCarousel/index.mjs";
import "../../../Media/components/Audio/index.mjs";
import "../../../Media/components/Video/index.mjs";
import "../../../Media/components/Carousel/index.mjs";
import "../../../Media/components/Flv/index.mjs";
import "../../../Media/components/Iframe/index.mjs";
import "../../../Media/components/IframeCarousel/index.mjs";
import "../../../Media/components/Image/index.mjs";
import "../../../Media/components/ImageDynamic/index.mjs";
import "../../../Media/components/M3u8/index.mjs";
import "../../../Media/components/Wavesurfer/index.mjs";
import "../../../Media/components/Weather/index.mjs";
import "../../../Media/components/Qrcode/index.mjs";
import "../../../Chart/components/bar/basic/index.mjs";
import "../../../Chart/components/bar/animation/index.mjs";
import "../../../Chart/components/bar/contrast/index.mjs";
import "../../../Chart/components/bar/contrast2/index.mjs";
import "../../../Chart/components/bar/contrast3/index.mjs";
import "../../../Chart/components/bar/gradient-column-chart/index.mjs";
import "../../../Chart/components/bar/horizontal/index.mjs";
import "../../../Chart/components/bar/horizontal-stack/index.mjs";
import "../../../Chart/components/bar/line-bar/index.mjs";
import "../../../Chart/components/bar/line-bar2/index.mjs";
import "../../../Chart/components/bar/loop/index.mjs";
import "../../../Chart/components/bar/mini/index.mjs";
import "../../../Chart/components/bar/polar/index.mjs";
import "../../../Chart/components/bar/polar-stack/index.mjs";
import "../../../Chart/components/bar/polar2/index.mjs";
import "../../../Chart/components/bar/radius-circle/index.mjs";
import "../../../Chart/components/bar/rank/index.mjs";
import "../../../Chart/components/bar/segmented-progress/index.mjs";
import "../../../Chart/components/bar/spire/index.mjs";
import "../../../Chart/components/bar/stack/index.mjs";
import "../../../Chart/components/bar/stack-line/index.mjs";
import "../../../Chart/components/bar/stack2/index.mjs";
import "../../../Chart/components/bar/stack3/index.mjs";
import "../../../Chart/components/bar/staggered/index.mjs";
import "../../../Chart/components/bar/three/index.mjs";
import "../../../Chart/components/bar/waterfall/index.mjs";
import "../../../Chart/components/bar/zebra/index.mjs";
import "../../../Chart/components/line/area-gradient/index.mjs";
import "../../../Chart/components/line/area-highlight/index.mjs";
import "../../../Chart/components/line/area-highlight2/index.mjs";
import "../../../Chart/components/line/basic/index.mjs";
import "../../../Chart/components/line/bump/index.mjs";
import "../../../Chart/components/line/dashed/index.mjs";
import "../../../Chart/components/line/ladder/index.mjs";
import "../../../Chart/components/line/logarithm/index.mjs";
import "../../../Chart/components/line/multix/index.mjs";
import "../../../Chart/components/line/polar-double/index.mjs";
import "../../../Chart/components/line/rain-flow/index.mjs";
import "../../../Chart/components/line/scale/index.mjs";
import "../../../Chart/components/line/smooth/index.mjs";
import "../../../Chart/components/line/smooth-area/index.mjs";
import "../../../Chart/components/line/stack/index.mjs";
import "../../../Chart/components/line/stack-area/index.mjs";
import "../../../Chart/components/line/temp/index.mjs";
import "../../../Chart/components/line/vertical/index.mjs";
import "../../../Chart/components/map/basic/index.mjs";
import "../../../Chart/components/map/bmap-basic/index.mjs";
import "../../../Chart/components/map/bmap-heatmap/index.mjs";
import "../../../Chart/components/map/bmap-rich/index.mjs";
import "../../../Chart/components/map/customize/index.mjs";
import "../../../Chart/components/map/lines/index.mjs";
import "../../../Chart/components/map/scatter/index.mjs";
import "../../../Chart/components/pie/3d/index.mjs";
import "../../../Chart/components/pie/basic/index.mjs";
import "../../../Chart/components/pie/basic2/index.mjs";
import "../../../Chart/components/pie/customized/index.mjs";
import "../../../Chart/components/pie/index/index.mjs";
import "../../../Chart/components/pie/interval/index.mjs";
import "../../../Chart/components/pie/legend-scroll/index.mjs";
import "../../../Chart/components/pie/radius/index.mjs";
import "../../../Chart/components/pie/rose/index.mjs";
import "../../../Chart/components/pie/round/index.mjs";
import "../../../Chart/components/pie/sunburst/index.mjs";
import "../../../Chart/components/scatter/basic/index.mjs";
import "../../../Chart/components/scatter/basic2/index.mjs";
import "../../../Chart/components/scatter/bubble/index.mjs";
import "../../../Chart/components/scatter/ripples/index.mjs";
import "../../../Chart/components/other/candlestick-basic/index.mjs";
import "../../../Chart/components/other/sunburst-basic/index.mjs";
import "../../../Chart/components/other/sunburst-basic2/index.mjs";
import "../../../Chart/components/other/sunburst-basic3/index.mjs";
import "../../../Chart/components/other/sunburst-basic4/index.mjs";
import "../../../Chart/components/other/sunburst-book/index.mjs";
import "../../../Chart/components/other/sunburst-flavors/index.mjs";
import "../../../Chart/components/other/sunburst-radius/index.mjs";
import "../../../Chart/components/other/funnel/index.mjs";
import "../../../Chart/components/other/funnel-contrast/index.mjs";
import "../../../Chart/components/other/funnel-split/index.mjs";
import "../../../Chart/components/other/funnel2/index.mjs";
import "../../../Chart/components/other/force/index.mjs";
import "../../../Chart/components/other/force2/index.mjs";
import "../../../Chart/components/other/gauge/index.mjs";
import "../../../Chart/components/other/gauge-grade/index.mjs";
import "../../../Chart/components/other/gauge-stage/index.mjs";
import "../../../Chart/components/other/graph-basic/index.mjs";
import "../../../Chart/components/other/graph-basic2/index.mjs";
import "../../../Chart/components/other/graph-calendar/index.mjs";
import "../../../Chart/components/other/circular-graph/index.mjs";
import "../../../Chart/components/other/heatmap/index.mjs";
import "../../../Chart/components/other/liquidfill/index.mjs";
import "../../../Chart/components/other/parallel-basic/index.mjs";
import "../../../Chart/components/other/parallel-mul/index.mjs";
import "../../../Chart/components/other/radar-stack/index.mjs";
import "../../../Chart/components/other/tree/index.mjs";
import "../../../Chart/components/other/tree-line/index.mjs";
import "../../../Chart/components/other/word-cloud/index.mjs";
import "../../../Chart/components/other/treemap/index.mjs";
import "../../../Chart/components/other/treemap-basic/index.mjs";
import "../../../Chart/components/other/label-gauge/index.mjs";
import "../../../Chart/components/other/grid-percentage/index.mjs";
import "../../../Chart/components/other/radar/index.mjs";
import "../../../Commons/components/CustomComponentRender/index.mjs";
import "../../../Commons/components/Graphical/index.mjs";
import "../../../Commons/components/Svg/index.mjs";
import "../../../Commons/components/ModelViewer/index.mjs";
import "../../../Commons/components/VrVideo/index.mjs";
import "../../../Commons/components/VrPhoto/index.mjs";
import "../../../Commons/components/Babylon/index.mjs";
import "../../../Commons/components/Echarts/index.mjs";
import "../../../Commons/components/GSViewer/index.mjs";
import "../../../Scene/components/Amap2d/index.mjs";
import "../../../Scene/components/Amap3d/index.mjs";
import "../../../Scene/components/Default/index.mjs";
import "../../../Scene/components/Map2d/index.mjs";
import "../../../Scene/components/Map3d/index.mjs";
import "../../../Scene/components/UeIframe/index.mjs";
import "../../../Scene/components/UeShj/index.mjs";
import "../../../Scene/components/UnityIframe/index.mjs";
import "../../../Scene/components/UnityWebgl/index.mjs";
import "../../../Scene/components/Vr/index.mjs";
import "../../../Scene/components/Earth/index.mjs";
import { SHJDatasourceV2 as q } from "../../../../commons/plugins/datasource/index.mjs";
import { SHJParseEvent as f } from "../../../../commons/plugins/event/index.mjs";
import "lodash";
import { Utils as r } from "../../../../commons/utils/utils.mjs";
import S from "../../../../commons/components/Text.vue.mjs";
import { upgradeList as A } from "./version.mjs";
const G = ["onClick", "onMouseenter", "onMouseleave"], I = ["src"], K = w({ name: "ShjList" }), Ye = /* @__PURE__ */ w({
  ...K,
  props: {
    option: {},
    sources: {},
    useEvents: {}
  },
  emits: [
    "on-click-row",
    "on-mouseenter-row",
    "on-mouseout-row"
  ],
  setup(s, { expose: k, emit: O }) {
    const t = m(() => A(s.option)), E = O, n = b([]), h = b(-1), V = m(
      () => r.json2cssObject(t.value.style.list)
    ), M = m(() => ({
      normal: r.json2cssObject(t.value.style.item),
      hover: r.json2cssObject(t.value.style.item.hover)
    })), C = m(() => ({
      normal: r.json2cssObject(t.value.style.item.thumbnail),
      hover: r.json2cssObject(t.value.style.item.hover.thumbnail)
    })), L = m(() => ({
      normal: r.json2cssObject(t.value.style.item.container),
      hover: r.json2cssObject(t.value.style.item.hover.container)
    })), $ = m(() => ({
      normal: r.json2cssObject(t.value.style.item.container.title),
      hover: r.json2cssObject(t.value.style.item.hover.container.title)
    })), D = m(() => ({
      normal: r.json2cssObject(t.value.style.item.container.description),
      hover: r.json2cssObject(
        t.value.style.item.hover.container.description
      )
    })), N = m(() => ({
      normal: t.value.style.item.container.title.textStyle,
      hover: t.value.style.item.hover.container.title.textStyle
    })), B = m(() => ({
      normal: t.value.style.item.container.description.textStyle,
      hover: t.value.style.item.hover.container.description.textStyle
    })), l = (e, p) => p === h.value ? e.hover : e.normal, u = () => {
      q.parse({
        sources: s.sources,
        callback: ({ data: e }) => {
          if (!e) {
            n.value = [], f.parseEvents(s.useEvents, "dataListener", []);
            return;
          }
          e[0] && e[0].data ? n.value = e[0].data : n.value = [], f.parseEvents(s.useEvents, "dataListener", n.value);
        }
      });
    }, d = (e) => (p, i) => {
      e === "mouseenter" ? h.value = i : e === "mouseleave" && (h.value = -1);
      const o = { row: p, rowIndex: i };
      E(`on-${e}-row`, o), f.parseEvents(s.useEvents, `on-${e}-row`, o);
    }, H = d("click"), R = d("mouseenter"), J = d("mouseleave");
    return U(() => u()), _({ option: t.value, sources: s.sources }, u), k({
      refresh: () => u(),
      refreshView: () => {
      },
      // 刷新视图 无需刷新
      refreshData: () => u()
    }), (e, p) => (y(), W(v(T), {
      modelValue: t.value.scroll.start,
      "onUpdate:modelValue": p[0] || (p[0] = (i) => t.value.scroll.start = i),
      direction: t.value.scroll.direction,
      list: n.value,
      "is-watch": "",
      step: t.value.scroll.step,
      hover: t.value.scroll.hover,
      "limit-scroll-num": t.value.scroll.limitScrollNum,
      "single-height": t.value.scroll.isSingle ? Number(t.value.style.item.height) : 0,
      "single-wait-time": t.value.scroll.singleWaitTime,
      class: "list-container overflow-hidden"
    }, {
      default: z(() => [
        a("div", {
          class: "list-wrap flex flex-direction-column",
          style: c(V.value)
        }, [
          (y(!0), x(F, null, P(n.value, (i, o) => (y(), x("div", {
            key: o,
            class: "flex gap-10px align-items-center padding-4px height-60px background-color-black overflow-hidden transition-all duration-200 ease-in-out",
            style: c(l(M.value, o)),
            onClick: (j) => v(H)(i, o),
            onMouseenter: (j) => v(R)(i, o),
            onMouseleave: (j) => v(J)(i, o)
          }, [
            a("div", {
              class: "item-thumbnail width-50px height-50px flex-none background-color-blue overflow-hidden transition-all duration-200 ease-in-out",
              style: c(l(C.value, o))
            }, [
              a("img", {
                referrerpolicy: "no-referrer",
                class: "width-100 height-100 object-fit-cover transition-all duration-200 ease-in-out",
                src: i.thumbnail,
                style: { "pointer-events": "none" }
              }, null, 8, I)
            ], 4),
            a("div", {
              class: "item-container flex flex-direction-column gap-2px transition-all duration-200 ease-in-out",
              style: c(l(L.value, o))
            }, [
              a("div", {
                class: "item-title width-100 flex-none transition-all duration-200 ease-in-out",
                style: c(l($.value, o))
              }, [
                g(S, {
                  "text-style": l(N.value, o),
                  text: i.title,
                  style: { "pointer-events": "none" }
                }, null, 8, ["text-style", "text"])
              ], 4),
              a("div", {
                class: "item-description flex-none transition-all duration-200 ease-in-out",
                style: c(l(D.value, o))
              }, [
                g(S, {
                  "text-style": l(B.value, o),
                  text: i.description,
                  style: { "pointer-events": "none" }
                }, null, 8, ["text-style", "text"])
              ], 4)
            ], 4)
          ], 44, G))), 128))
        ], 4)
      ]),
      _: 1
    }, 8, ["modelValue", "direction", "list", "step", "hover", "limit-scroll-num", "single-height", "single-wait-time"]));
  }
});
export {
  Ye as default
};
