import { defineComponent as M, useCssVars as j, ref as O, onMounted as A, watch as S, createElementBlock as p, createCommentVNode as V, openBlock as s, normalizeStyle as a, createVNode as J, Fragment as v, renderList as y, normalizeClass as W, createElementVNode as T, toDisplayString as g, unref as q, withCtx as P } from "vue";
import { cloneDeep as k, isEqual as z } from "lodash";
import { Vue3SeamlessScroll as U } from "vue3-seamless-scroll";
import { nanoid as w } from "nanoid";
import "../text-text-basic/index.mjs";
import "../text-table-basic/index.mjs";
import "../chart-other-gauge/index.mjs";
import "../chart-other-gauge-stage/index.mjs";
import "../chart-other-gauge-grade/index.mjs";
import "../chart-other-word-cloud/index.mjs";
import "../chart-other-liquidfill/index.mjs";
import "../chart-other-funnel/index.mjs";
import "../chart-other-force/index.mjs";
import "../chart-other-radar/index.mjs";
import "../chart-other-funnel-split/index.mjs";
import "../chart-other-funnel-contrast/index.mjs";
import "../chart-other-candlestick-basic/index.mjs";
import "../chart-other-candlestick-shanghai/index.mjs";
import "../chart-other-candlestick-demo/index.mjs";
import "../chart-other-heatmap/index.mjs";
import "../chart-other-force2/index.mjs";
import "../chart-other-graph-basic/index.mjs";
import "../chart-other-graph-basic2/index.mjs";
import "../chart-other-graph-calendar/index.mjs";
import "../chart-other-tree-line/index.mjs";
import "../chart-other-treemap-basic/index.mjs";
import "../chart-other-sunburst-basic/index.mjs";
import "../chart-other-sunburst-basic2/index.mjs";
import "../chart-other-sunburst-basic3/index.mjs";
import "../chart-other-sunburst-basic4/index.mjs";
import "../chart-other-sunburst-book/index.mjs";
import "../chart-other-sunburst-radius/index.mjs";
import "../chart-other-sunburst-flavors/index.mjs";
import "../chart-other-parallel-basic/index.mjs";
import "../chart-other-parallel-mul/index.mjs";
import "../chart-other-circular-graph/index.mjs";
import "../map-earth-basic/index.mjs";
import "../map-earth-cool-tech/index.mjs";
import "../map-earth-particle/index.mjs";
import "../map-earth-hacker/index.mjs";
import "../map-earth-fly-line/index.mjs";
import "../chart-other-grid-percentage/index.mjs";
import "../chart-other-radar-stack/index.mjs";
import "../chart-other-funnel2/index.mjs";
import "../chart-other-label-gauge/index.mjs";
import "../chart-other-theme-river/index.mjs";
import "../chart-other-tree/index.mjs";
import "../chart-other-treemap/index.mjs";
import "../commons-product-model/index.mjs";
import "../commons-vr-photo/index.mjs";
import "../commons-vr-video/index.mjs";
import "../commons-three-loader/index.mjs";
import "../commons-three-loader3/index.mjs";
import "../commons-loop-iterator/index.mjs";
import "../commons-gaussian-splatting-view/index.mjs";
import "../commons-babylon/index.mjs";
import "../commons-svg/index.mjs";
import "../commons-weather/index.mjs";
import "../commons-weather-dynamic/index.mjs";
import "../media-wavesurfer/index.mjs";
import "../interaction-tabs/index.mjs";
import "../interaction-tabs2/index.mjs";
import "../interaction-button/index.mjs";
import "../interaction-button-image/index.mjs";
import "../interaction-select/index.mjs";
import "../interaction-input/index.mjs";
import "../interaction-radio/index.mjs";
import "../interaction-slider/index.mjs";
import "../interaction-switch/index.mjs";
import "../interaction-data-picker/index.mjs";
import "../interaction-button-refresh/index.mjs";
import "../media-image/index.mjs";
import "../text-title/index.mjs";
import "../commons-qrcode/index.mjs";
import "../media-video/index.mjs";
import "../media-audio/index.mjs";
import "../text-real-time/index.mjs";
import "../media-carousel/index.mjs";
import "../media-carousel-slides/index.mjs";
import "../media-iframe-carousel/index.mjs";
import "../media-iframe/index.mjs";
import "../media-m3u8/index.mjs";
import "../media-m3u8-dynamic/index.mjs";
import "../media-audio-dynamic/index.mjs";
import "../media-video-dynamic/index.mjs";
import "../media-image-dynamic/index.mjs";
import "../media-iframe-dynamic/index.mjs";
import "../media-flv/index.mjs";
import "../commons-echarts/index.mjs";
import "../text-over-number/index.mjs";
import "./index.mjs";
import "../text-carousel/index.mjs";
import "../text-row-scroll/index.mjs";
import "../text-text-dynamic/index.mjs";
import "../text-count-down/index.mjs";
import "../graphical-circle/index.mjs";
import "../graphical-diamond/index.mjs";
import "../graphical-hexagon/index.mjs";
import "../graphical-isosceles-triangle/index.mjs";
import "../graphical-pentagon/index.mjs";
import "../graphical-rect/index.mjs";
import "../graphical-right-triangle/index.mjs";
import "../scene-map3d/index.mjs";
import "../scene-amap2d/index.mjs";
import "../scene-amap3d/index.mjs";
import "../scene-vr/index.mjs";
import "../scene-unity-iframe/index.mjs";
import "../scene-unity-webgl/index.mjs";
import "../scene-ue-iframe/index.mjs";
import "../scene-ue-shj/index.mjs";
import "../scene-default/index.mjs";
import "../interaction/tabs/index.mjs";
import "../interaction/tabs-icon/index.mjs";
import "../interaction/button/index.mjs";
import "../interaction/date-picker/src/date-picker/index.mjs";
import "../interaction/date-picker/src/date-picker-range/index.mjs";
import "../text/list/index.mjs";
import "../chart/src/bar/basic/index.mjs";
import "../chart/src/bar/animation/index.mjs";
import "../chart/src/bar/contrast/index.mjs";
import "../chart/src/bar/contrast2/index.mjs";
import "../chart/src/bar/contrast3/index.mjs";
import "../chart/src/bar/gradient-column-chart/index.mjs";
import "../chart/src/bar/horizontal/index.mjs";
import "../chart/src/bar/horizontal-stack/index.mjs";
import "../chart/src/bar/line-bar/index.mjs";
import "../chart/src/bar/line-bar2/index.mjs";
import "../chart/src/bar/loop/index.mjs";
import "../chart/src/bar/mini/index.mjs";
import "../chart/src/bar/polar/index.mjs";
import "../chart/src/bar/polar-stack/index.mjs";
import "../chart/src/bar/polar2/index.mjs";
import "../chart/src/bar/radius-circle/index.mjs";
import "../chart/src/bar/rank/index.mjs";
import "../chart/src/bar/segmented-progress/index.mjs";
import "../chart/src/bar/spire/index.mjs";
import "../chart/src/bar/stack/index.mjs";
import "../chart/src/bar/stack-line/index.mjs";
import "../chart/src/bar/stack2/index.mjs";
import "../chart/src/bar/stack3/index.mjs";
import "../chart/src/bar/staggered/index.mjs";
import "../chart/src/bar/three/index.mjs";
import "../chart/src/bar/waterfall/index.mjs";
import "../chart/src/bar/zebra/index.mjs";
import "../chart/src/line/area-gradient/index.mjs";
import "../chart/src/line/area-highlight/index.mjs";
import "../chart/src/line/area-highlight2/index.mjs";
import "../chart/src/line/basic/index.mjs";
import "../chart/src/line/bump/index.mjs";
import "../chart/src/line/dashed/index.mjs";
import "../chart/src/line/ladder/index.mjs";
import "../chart/src/line/logarithm/index.mjs";
import "../chart/src/line/multix/index.mjs";
import "../chart/src/line/polar-double/index.mjs";
import "../chart/src/line/rain-flow/index.mjs";
import "../chart/src/line/scale/index.mjs";
import "../chart/src/line/smooth/index.mjs";
import "../chart/src/line/smooth-area/index.mjs";
import "../chart/src/line/stack/index.mjs";
import "../chart/src/line/stack-area/index.mjs";
import "../chart/src/line/temp/index.mjs";
import "../chart/src/line/vertical/index.mjs";
import "../chart/src/map/basic/index.mjs";
import "../chart/src/map/bmap-basic/index.mjs";
import "../chart/src/map/bmap-heatmap/index.mjs";
import "../chart/src/map/bmap-rich/index.mjs";
import "../chart/src/map/customize/index.mjs";
import "../chart/src/map/lines/index.mjs";
import "../chart/src/map/scatter/index.mjs";
import "../chart/src/pie/3d/index.mjs";
import "../chart/src/pie/basic/index.mjs";
import "../chart/src/pie/basic2/index.mjs";
import "../chart/src/pie/customized/index.mjs";
import "../chart/src/pie/index/index.mjs";
import "../chart/src/pie/interval/index.mjs";
import "../chart/src/pie/legend-scroll/index.mjs";
import "../chart/src/pie/radius/index.mjs";
import "../chart/src/pie/rose/index.mjs";
import "../chart/src/pie/round/index.mjs";
import "../chart/src/pie/sunburst/index.mjs";
import "../chart/src/scatter/basic/index.mjs";
import "../chart/src/scatter/basic2/index.mjs";
import "../chart/src/scatter/bubble/index.mjs";
import "../chart/src/scatter/ripples/index.mjs";
/* empty css                        */
/* empty css                               */
import { SHJDatasourceV2 as G } from "../../plugins/datasource/index.mjs";
import { SHJParseEvent as u } from "../../plugins/event/index.mjs";
const K = ["onClick", "onMouseenter", "onMouseout"], Q = ["onClick"], X = { key: 1 }, Y = M({ name: "zv-text-table-scroll" }), Sr = /* @__PURE__ */ M({
  ...Y,
  props: {
    basicOption: {},
    useEvents: {},
    sources: {},
    uuid: {}
  },
  emits: ["on-click-item", "on-click-row", "on-mouseenter-row", "on-mouseout-row"],
  setup($, { expose: D, emit: F }) {
    j((t) => ({
      "391d835f": t.basicOption.css.table.borderWidth + "px",
      "18ce3d59": t.basicOption.css.table.borderStyle,
      "17ea4f0b": t.basicOption.css.table.borderColor,
      "5b8a36e1": t.basicOption.css.table.paddingLeft + "px",
      "129654c7": t.basicOption.css.table.alignItems,
      "869b5a56": t.basicOption.css.table.justifyContent,
      "8186fc7a": t.basicOption.css.header.background,
      "529e5cd1": t.basicOption.css.header.height + "px",
      "11e4b9ae": t.basicOption.css.header.color,
      45730228: t.basicOption.css.header.fontSize + "px",
      "3a449f88": t.basicOption.css.header.fontWeight,
      "33d03126": t.basicOption.css.header.fontStyle,
      "4ed21ee4": t.basicOption.css.body.background,
      "301af451": t.basicOption.css.oddBackground,
      "4f0cf803": t.basicOption.css.body.color,
      "03d51a3d": t.basicOption.css.body.fontSize + "px",
      "078fc1f2": t.basicOption.css.body.fontWeight,
      "84c2197c": t.basicOption.css.body.fontStyle
    }));
    const d = F, h = O(w()), n = O([]), r = $, b = O(r.basicOption.scroll.start), c = () => {
      G.parse({
        tId: r.uuid,
        sources: r.sources,
        callback: (t) => {
          try {
            u.parseEvents(r.useEvents, "dataListener", n), n.value = k(t.data[0].data) || [], h.value = w(), b.value = r.basicOption.scroll.start;
          } catch {
            u.parseEvents(r.useEvents, "dataListener", null), h.value = w(), n.value = [], b.value = r.basicOption.scroll.start;
          }
        }
      });
    }, L = (t) => {
      const o = [];
      for (const i in t)
        o.push(t[i]);
      return o;
    };
    A(() => c()), S(() => k(r.basicOption), (t, o) => {
      z(t, o) || c();
    }, {
      deep: !0
    }), S(() => k(r.sources), (t, o) => {
      z(t, o) || c();
    }, {
      deep: !0
    }), D({
      refresh: () => c(),
      refreshView: () => c(),
      refreshData: () => c()
    });
    const N = (t) => {
      if (!r.basicOption.columns)
        return !0;
      const o = r.basicOption.columns.find((i) => i.index === t);
      return o ? o.font.auto : !0;
    }, f = (t) => {
      if (!r.basicOption.columns)
        return null;
      const o = r.basicOption.columns.find((i) => i.index === t);
      return o && o.font.auto === !1 ? o.font : null;
    }, C = (t) => {
      if (!r.basicOption.columns)
        return !0;
      const o = r.basicOption.columns.find((i) => i.index === t);
      return o ? o.width.auto : !0;
    }, E = (t) => {
      if (!r.basicOption.columns)
        return null;
      const o = r.basicOption.columns.find((i) => i.index === t);
      return o && o.width.auto === !1 ? o.width.width : null;
    }, B = (t, o) => {
      const i = { row: t, rowIndex: o };
      d("on-click-row", i), u.parseEvents(r.useEvents, "on-click-row", i);
    }, H = (t, o) => {
      const i = { row: t, rowIndex: o };
      d("on-mouseenter-row", i), u.parseEvents(r.useEvents, "on-mouseenter-row", i);
    }, I = (t, o) => {
      const i = { row: t, rowIndex: o };
      d("on-mouseout-row", i), u.parseEvents(r.useEvents, "on-mouseout-row", i);
    }, R = (t, o, i, m) => {
      const e = { row: t, item: o, rowIndex: i, columnIndex: m };
      d("on-click-item", e), u.parseEvents(r.useEvents, "on-click-item", e);
    };
    return (t, o) => n.value.length > 0 ? (s(), p("div", {
      key: h.value,
      class: "table-scroll",
      style: a({ lineHeight: t.basicOption.css.body.height + "px" })
    }, [
      t.basicOption.css.header.show ? (s(), p("div", {
        key: 0,
        class: "table-header",
        style: a({
          "--header-background-image": `url(${t.basicOption.css.header.backgroundImage})`
        })
      }, [
        (s(!0), p(v, null, y(Object.keys(n.value[0]), (i, m) => (s(), p("div", {
          key: i,
          class: W(["th", { customWidth: !C(m + 1) }]),
          style: a({ "--width": E(m + 1) + "px" })
        }, [
          T("p", null, g(i), 1)
        ], 6))), 128))
      ], 4)) : V("", !0),
      J(q(U), {
        modelValue: b.value,
        "onUpdate:modelValue": o[0] || (o[0] = (i) => b.value = i),
        direction: t.basicOption.scroll.direction,
        list: n.value,
        "is-watch": "",
        step: t.basicOption.scroll.step,
        hover: t.basicOption.scroll.hover,
        "limit-scroll-num": t.basicOption.scroll.limitScrollNum,
        "single-height": t.basicOption.scroll.isSingle ? t.basicOption.css.body.height : 0,
        "single-wait-time": t.basicOption.scroll.singleWaitTime,
        class: "table-body",
        style: a([{ color: "red" }, {
          "line-height": "36px"
        }])
      }, {
        default: P(() => [
          (s(!0), p(v, null, y(n.value, (i, m) => (s(), p("div", {
            key: i,
            class: "tr",
            style: a({
              "--row-hover": t.basicOption.css.hoverColor
            }),
            onClick: (e) => B(i, m),
            onMouseenter: (e) => H(i, m),
            onMouseout: (e) => I(i, m)
          }, [
            (s(!0), p(v, null, y(L(i), (e, l) => (s(), p("div", {
              key: e,
              class: W(["td", { customWidth: !C(l + 1) }]),
              style: a({ "--width": E(l + 1) + "px" }),
              onClick: (Z) => R(i, e, m, l)
            }, [
              N(l + 1) ? (s(), p("p", X, g(e), 1)) : (s(), p("p", {
                key: 0,
                class: "customFont",
                style: a({
                  "--text-color": f(l + 1).color,
                  "--text-font-size": f(l + 1).fontSize + "px",
                  "--text-font-style": f(l + 1).fontStyle
                })
              }, g(e), 5))
            ], 14, Q))), 128))
          ], 44, K))), 128))
        ]),
        _: 1
      }, 8, ["modelValue", "direction", "list", "step", "hover", "limit-scroll-num", "single-height", "single-wait-time"])
    ], 4)) : V("", !0);
  }
});
export {
  Sr as default
};
