(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
  ["chunk-common"],
  {
    "0e09": function (e, t) {
      e.exports =
        "data:image/png;base64, ";
    },
    "0f2b": function (e, t, i) {
      e.exports = {
        layout: "VideoPlayBack_layout_3qFD7",
        videos: "VideoPlayBack_videos_27A1A",
        item: "VideoPlayBack_item_2CAwS",
        grid: "VideoPlayBack_grid_1mb-w",
        waiting: "VideoPlayBack_waiting_26xZ5",
        disabled: "VideoPlayBack_disabled_2fZxt",
      };
    },
    "10c1": function (e, t, i) {},
    2229: function (e, t, i) {
      "use strict";
      i("28a5"), i("ac6a");
      (function () {
        if (!window.addResizeListener) {
          var e = document.attachEvent,
            t = !1,
            i = (function () {
              var e =
                window.requestAnimationFrame ||
                window.mozRequestAnimationFrame ||
                window.webkitRequestAnimationFrame ||
                function (e) {
                  return window.setTimeout(e, 20);
                };
              return function (t) {
                return e(t);
              };
            })(),
            s = (function () {
              var e =
                window.cancelAnimationFrame ||
                window.mozCancelAnimationFrame ||
                window.webkitCancelAnimationFrame ||
                window.clearTimeout;
              return function (t) {
                return e(t);
              };
            })(),
            n = !1,
            o = "",
            r = "animationstart",
            l = "Webkit Moz O ms".split(" "),
            a =
              "webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(
                " "
              ),
            h = "",
            c = document.createElement("fakeelement");
          if ((void 0 !== c.style.animationName && (n = !0), !1 === n))
            for (var d = 0; d < l.length; d++)
              if (void 0 !== c.style[l[d] + "AnimationName"]) {
                (h = l[d]),
                  h + "Animation",
                  (o = "-" + h.toLowerCase() + "-"),
                  (r = a[d]),
                  (n = !0);
                break;
              }
          var u = "resizeanim",
            p =
              "@" +
              o +
              "keyframes " +
              u +
              " { from { opacity: 0; } to { opacity: 0; } } ",
            f = o + "animation: 1ms " + u + "; ";
          (window.addResizeListener = function (t, i) {
            e
              ? t.attachEvent("onresize", i)
              : (t.__resizeTriggers__ ||
                  ("static" == getComputedStyle(t).position &&
                    (t.style.position = "relative"),
                  _(),
                  (t.__resizeLast__ = {}),
                  (t.__resizeListeners__ = []),
                  ((t.__resizeTriggers__ =
                    document.createElement("div")).className =
                    "resize-triggers"),
                  (t.__resizeTriggers__.innerHTML =
                    '<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>'),
                  t.appendChild(t.__resizeTriggers__),
                  m(t),
                  t.addEventListener("scroll", v, !0),
                  r &&
                    t.__resizeTriggers__.addEventListener(r, function (e) {
                      e.animationName == u && m(t);
                    })),
                t.__resizeListeners__.push(i));
          }),
            (window.removeResizeListener = function (t, i) {
              e
                ? t.detachEvent("onresize", i)
                : (t.__resizeListeners__.splice(
                    t.__resizeListeners__.indexOf(i),
                    1
                  ),
                  t.__resizeListeners__.length ||
                    (t.removeEventListener("scroll", v),
                    (t.__resizeTriggers__ = !t.removeChild(
                      t.__resizeTriggers__
                    ))));
            });
        }
        function m(e) {
          var t = e.__resizeTriggers__,
            i = t.firstElementChild,
            s = t.lastElementChild,
            n = i.firstElementChild;
          (s.scrollLeft = s.scrollWidth),
            (s.scrollTop = s.scrollHeight),
            (n.style.width = i.offsetWidth + 1 + "px"),
            (n.style.height = i.offsetHeight + 1 + "px"),
            (i.scrollLeft = i.scrollWidth),
            (i.scrollTop = i.scrollHeight);
        }
        function g(e) {
          return (
            e.offsetWidth != e.__resizeLast__.width ||
            e.offsetHeight != e.__resizeLast__.height
          );
        }
        function v(e) {
          var t = this;
          m(this),
            this.__resizeRAF__ && s(this.__resizeRAF__),
            (this.__resizeRAF__ = i(function () {
              g(t) &&
                ((t.__resizeLast__.width = t.offsetWidth),
                (t.__resizeLast__.height = t.offsetHeight),
                t.__resizeListeners__.forEach(function (i) {
                  i.call(t, e);
                }));
            }));
        }
        function _() {
          if (!t) {
            var e =
                (p || "") +
                ".resize-triggers { " +
                (f || "") +
                'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
              i = document.head || document.getElementsByTagName("head")[0],
              s = document.createElement("style");
            (s.type = "text/css"),
              s.styleSheet
                ? (s.styleSheet.cssText = e)
                : s.appendChild(document.createTextNode(e)),
              i.appendChild(s),
              (t = !0);
          }
        }
      })();
    },
    2707: function (e, t, i) {
      e.exports = {
        container: "CloudPanel_container_1vjMn",
        icon: "CloudPanel_icon_2hEIS",
      };
    },
    "299b": function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            { class: e.$style.layout },
            [
              e.toolbar
                ? i(
                    "Toolbar",
                    {
                      ref: "toolbar",
                      class: e.$style.toolbar,
                      style: [
                        "top" == e.toolbar ? { top: "0" } : { bottom: "0" },
                      ],
                      attrs: { mini: "" },
                    },
                    [
                      i(
                        "Button",
                        {
                          attrs: { height: 30, borderColor: "#AEBAC5" },
                          on: {
                            click: function (t) {
                              return e._closeAll();
                            },
                          },
                        },
                        [e._v("全部关闭")]
                      ),
                      i("InputSelect", {
                        attrs: {
                          height: 30,
                          borderColor: "#AEBAC5",
                          showArrow: !0,
                          options: [
                            { label: "清晰(主码流)", value: 0 },
                            { label: "流畅(子码流)", value: 1 },
                          ],
                        },
                        on: { change: e._onStreamChg },
                        model: {
                          value: e.stream,
                          callback: function (t) {
                            e.stream = t;
                          },
                          expression: "stream",
                        },
                      }),
                      e.talks.show
                        ? i("InputSelect", {
                            attrs: {
                              height: 30,
                              borderColor: "#AEBAC5",
                              showArrow: !0,
                              options: e.talks.options,
                            },
                            model: {
                              value: e.talks.value,
                              callback: function (t) {
                                e.$set(e.talks, "value", t);
                              },
                              expression: "talks.value",
                            },
                          })
                        : e._e(),
                      e.talks.show
                        ? i(
                            "Button",
                            {
                              attrs: {
                                height: 30,
                                borderColor: "#AEBAC5",
                                disabled: e.talks.waiting || !e.socketIsOpen,
                                icon: "el-icon-microphone",
                              },
                              on: {
                                click: function (t) {
                                  return e._toogleTalk();
                                },
                              },
                            },
                            [
                              e._v(
                                e._s(e.talks.playing ? "关闭对讲" : "打开对讲")
                              ),
                            ]
                          )
                        : e._e(),
                      i(
                        "template",
                        { slot: "right" },
                        [
                          i(
                            "Button",
                            {
                              ref: "rcBtn",
                              staticStyle: { "min-width": "86px" },
                              attrs: { height: 30, borderColor: "#AEBAC5" },
                              on: {
                                click: function (t) {
                                  return e._onRcBtnClick();
                                },
                              },
                            },
                            [
                              e._v(
                                " " +
                                  e._s(e.row) +
                                  "行 × " +
                                  e._s(e.col) +
                                  "列 "
                              ),
                            ]
                          ),
                          i("InputSelect", {
                            staticStyle: { "text-align": "center" },
                            attrs: {
                              height: 30,
                              showArrow: !0,
                              borderColor: "#AEBAC5",
                              options: [
                                { label: "满画面", value: 0 },
                                { label: " 2:1 显示", value: 2 },
                                { label: "16:9 显示", value: 16 / 9 },
                                { label: " 4:3 显示", value: 4 / 3 },
                                { label: " 1:1 显示", value: 1 },
                                { label: " 3:4 显示", value: 0.75 },
                                { label: "9:16 显示", value: 9 / 16 },
                                { label: " 1:2 显示", value: 0.5 },
                              ],
                            },
                            on: {
                              change: function (t) {
                                return e._onResize();
                              },
                            },
                            model: {
                              value: e.ratio,
                              callback: function (t) {
                                e.ratio = t;
                              },
                              expression: "ratio",
                            },
                          }),
                          i("Button", {
                            attrs: {
                              height: 30,
                              icon: "el-icon-full-screen",
                              padding: "0 6px",
                              borderColor: "#AEBAC5",
                            },
                            on: {
                              click: function (t) {
                                return e._fullScreen();
                              },
                            },
                          }),
                        ],
                        1
                      ),
                    ],
                    2
                  )
                : e._e(),
              i("div", {
                ref: "videos",
                class: e.$style.videos,
                style: [
                  !1 === e.toolbar
                    ? { bottom: "0", top: "0" }
                    : "top" == e.toolbar
                    ? { bottom: "0", top: "38px" }
                    : { top: "0", bottom: "38px" },
                ],
              }),
              i("audio", {
                ref: "audio",
                staticStyle: { display: "none" },
                attrs: { autoplay: "autoplay" },
              }),
              e.showRcWindow
                ? i(
                    "div",
                    {
                      ref: "rc",
                      staticStyle: {
                        position: "fixed",
                        padding: "5px",
                        border: "1px solid #AEBAC5",
                        display: "flex",
                        "background-color": "#fff",
                      },
                    },
                    [
                      i("ButtonBar", {
                        staticStyle: {
                          width: "calc(50% - 2.5px)",
                          "margin-right": "2.5px",
                        },
                        attrs: {
                          vertical: !0,
                          height: 18,
                          padding: "2px 5px",
                          options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                        },
                        on: {
                          change: function (t) {
                            (e.col = e.row),
                              (e.count = e.row * e.col),
                              e._regrid();
                          },
                        },
                        model: {
                          value: e.row,
                          callback: function (t) {
                            e.row = t;
                          },
                          expression: "row",
                        },
                      }),
                      i("ButtonBar", {
                        staticStyle: {
                          width: "calc(50% - 2.5px)",
                          "margin-left": "2.5px",
                        },
                        attrs: {
                          vertical: !0,
                          height: 18,
                          padding: "2px 5px",
                          options: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                        },
                        on: {
                          change: function (t) {
                            (e.col = e.col),
                              (e.count = e.row * e.col),
                              e._regrid();
                          },
                        },
                        model: {
                          value: e.col,
                          callback: function (t) {
                            e.col = t;
                          },
                          expression: "col",
                        },
                      }),
                    ],
                    1
                  )
                : e._e(),
            ],
            1
          );
        },
        n = [],
        o = (i("6b54"), i("28a5"), i("3835")),
        r = (i("ac6a"), i("2b0e")),
        l = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [
                e.$style.toolbar,
                e.small && e.$style.toolbar_small,
                e.mini && e.$style.toolbar_mini,
                e.zero && e.$style.toolbar_zero,
              ],
              style: [
                { backgroundColor: e.theme.bg_color },
                e.border
                  ? { borderColor: e.theme.border_color_dark }
                  : { border: 0 },
              ],
            },
            [
              e.$slots.default
                ? i(
                    "div",
                    {
                      class: [
                        e.$style.left,
                        e.small && e.$style.left_small,
                        e.mini && e.$style.left_mini,
                        e.zero && e.$style.left_zero,
                      ],
                      style: [
                        { width: e.$slots.right ? "" : "100%" },
                        e.leftStyle,
                      ],
                    },
                    [e._t("default")],
                    2
                  )
                : e._e(),
              e.$slots.right && !e.$slots.default
                ? i("span", [e._v(" ")])
                : e._e(),
              e.$slots.right
                ? i(
                    "div",
                    {
                      class: [
                        e.$style.right,
                        e.small && e.$style.right_small,
                        e.mini && e.$style.right_mini,
                        e.zero && e.$style.right_zero,
                      ],
                      style: e.rightStyle,
                    },
                    [e._t("right")],
                    2
                  )
                : e._e(),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
            ]
          );
        },
        a = [],
        h = {
          name: "Toolbar",
          props: {
            border: { type: Boolean, default: !0 },
            small: { type: Boolean, default: !1 },
            mini: { type: Boolean, default: !1 },
            zero: { type: Boolean, default: !1 },
            leftStyle: { default: null },
            rightStyle: { default: null },
            disabled: Boolean,
          },
        },
        c = h,
        d = i("9535"),
        u = i("2877");
      function p(e) {
        this["$style"] = d["default"].locals || d["default"];
      }
      var f = Object(u["a"])(c, l, a, !1, p, null, null),
        m = f.exports,
        g = i("2a7d"),
        v = i("3d56"),
        _ = i("f4c2"),
        b = i("a852"),
        y = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: e.$style.container,
              style: [
                e.backgroundImage,
                e.playing && e.reply && e.backgroundColor,
              ],
              on: {
                mouseenter: function (t) {
                  e.hover = !0;
                },
                mouseleave: function (t) {
                  e.hover = !1;
                },
              },
            },
            [
              e.playing
                ? i(
                    "div",
                    {
                      class: e.$style.bar,
                      staticStyle: { top: "0", "border-top": "1px solid #000" },
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: {
                            "flex-grow": "1",
                            width: "1px",
                            "margin-left": "6px",
                          },
                        },
                        [e._v(e._s(e.title))]
                      ),
                      e.cloudable && e.cloud
                        ? i("i", {
                            directives: [
                              {
                                name: "show",
                                rawName: "v-show",
                                value: e.hover,
                                expression: "hover",
                              },
                            ],
                            staticClass: "el-icon-sunny",
                            staticStyle: {
                              "font-size": "18px",
                              cursor: "pointer",
                              position: "absolute",
                              top: "0",
                              right: "22px",
                              padding: "4px",
                              "background-color": "#202020",
                            },
                            attrs: { title: "云台控制" },
                            on: { click: e.cloudClick },
                          })
                        : e._e(),
                      e.closeable
                        ? i("i", {
                            directives: [
                              {
                                name: "show",
                                rawName: "v-show",
                                value: e.hover,
                                expression: "hover",
                              },
                            ],
                            staticClass: "el-icon-close",
                            staticStyle: {
                              "font-size": "18px",
                              cursor: "pointer",
                              position: "absolute",
                              top: "0",
                              right: "0",
                              padding: "4px",
                              "background-color": "#202020",
                            },
                            attrs: { title: "关闭播放" },
                            on: {
                              dblclick: function (t) {
                                return t.stopPropagation(), e.close(!0);
                              },
                              click: function (t) {
                                return t.stopPropagation(), e.close(!0);
                              },
                            },
                          })
                        : e._e(),
                    ]
                  )
                : e._e(),
              i(
                "span",
                {
                  class: e.reverse && e.$style.reverse,
                  staticStyle: {
                    display: "block",
                    "margin-top": "26px",
                    width: "100%",
                    height: "calc(100% - 26px)",
                    position: "relative",
                  },
                  style: { rotate: e.rotate + "deg" },
                },
                [
                  i("video", {
                    ref: "video",
                    staticStyle: {
                      position: "absolute",
                      "object-fit": "fill",
                      display: "none",
                    },
                    attrs: { autoplay: "autoplay", muted: "" },
                    domProps: { muted: !0 },
                  }),
                ]
              ),
              e.tip
                ? i(
                    "span",
                    {
                      staticStyle: {
                        color: "#fff",
                        position: "absolute",
                        top: "calc(50% - 13px)",
                        "text-align": "center",
                        width: "100%",
                      },
                    },
                    [e._v(e._s(e.tip))]
                  )
                : e._e(),
              e.record.ing
                ? i(
                    "span",
                    {
                      staticStyle: {
                        position: "absolute",
                        right: "5px",
                        bottom: "30px",
                        padding: "2px",
                        "background-color": "#000",
                        color: "#f00",
                        display: "inline-block",
                      },
                    },
                    [e._v(e._s(e.record.time))]
                  )
                : e._e(),
              e.playing && !e.loading
                ? i(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.hover,
                          expression: "hover",
                        },
                      ],
                      class: e.$style.bar,
                      staticStyle: {
                        bottom: "0",
                        "background-color": "#303030",
                      },
                    },
                    [
                      e.pauseable
                        ? i("i", {
                            class: [
                              e.pause
                                ? "el-icon-video-play"
                                : "el-icon-video-pause",
                            ],
                            staticStyle: {
                              "font-size": "16px",
                              cursor: "pointer",
                              margin: "0 6px",
                            },
                            attrs: { title: e.pause ? "恢复播放" : "暂停播放" },
                            on: { click: e.tooglePause },
                          })
                        : e._e(),
                      i(
                        "span",
                        {
                          staticStyle: {
                            "flex-grow": "1",
                            width: "1px",
                            "text-align": "center",
                          },
                        },
                        [
                          e._v(
                            " " +
                              e._s(parseInt(e.flow.kbs / 1024)) +
                              "kb/s | " +
                              e._s(parseInt(e.flow.total / 1024)) +
                              "kb "
                          ),
                        ]
                      ),
                      e.voiceable
                        ? i("i", {
                            class: [
                              e.voice
                                ? "el-icon-bell"
                                : "el-icon-close-notification",
                            ],
                            staticStyle: {
                              "font-size": "16px",
                              cursor: "pointer",
                              margin: "0 5px",
                            },
                            on: {
                              click: function (t) {
                                return e.setVoice(!e.voice);
                              },
                            },
                          })
                        : e._e(),
                      e.snapshotable
                        ? i("i", {
                            staticClass: "el-icon-camera",
                            staticStyle: {
                              "font-size": "16px",
                              cursor: "pointer",
                              "margin-right": "5px",
                            },
                            attrs: { title: "视频截图" },
                            on: {
                              click: function (t) {
                                return e.snapshot();
                              },
                            },
                          })
                        : e._e(),
                      e.recordable
                        ? i("i", {
                            staticClass: "el-icon-video-camera",
                            staticStyle: {
                              "font-size": "16px",
                              cursor: "pointer",
                              "margin-right": "5px",
                            },
                            attrs: {
                              title: e.record.ing ? "停止录像" : "开始录像",
                            },
                            on: {
                              click: function (t) {
                                return e.toogleRecord();
                              },
                            },
                          })
                        : e._e(),
                      i("i", {
                        staticClass: "el-icon-refresh",
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          "margin-right": "5px",
                        },
                        attrs: { title: "镜像反转" },
                        on: {
                          click: function (t) {
                            e.reverse = !e.reverse;
                          },
                        },
                      }),
                      i("i", {
                        staticClass: "el-icon-refresh-right",
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          "margin-right": "6px",
                        },
                        attrs: { title: "旋转画面" },
                        on: {
                          click: function (t) {
                            e.rotate = (e.rotate + 180) % 360;
                          },
                        },
                      }),
                    ]
                  )
                : e._e(),
              e.loading
                ? i("i", {
                    staticClass: "el-icon-loading",
                    staticStyle: {
                      color: "#ddd",
                      "font-size": "40px",
                      position: "absolute",
                      left: "calc(50% - 20px)",
                      top: "calc(50% - 10px)",
                    },
                  })
                : e._e(),
              e.border ? i("div", { class: e.$style.border_top }) : e._e(),
              e.border ? i("div", { class: e.$style.border_bottom }) : e._e(),
              e.border ? i("div", { class: e.$style.border_left }) : e._e(),
              e.border ? i("div", { class: e.$style.border_right }) : e._e(),
            ]
          );
        },
        x = [],
        w = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            { class: e.$style.container },
            [
              i("Slider", {
                staticStyle: { "grid-column": "1/span 2" },
                attrs: {
                  min: 0,
                  max: 255,
                  tooltip: "速度{}",
                  valueColor: "#fff",
                  barColor: "#fff",
                },
                model: {
                  value: e.speed,
                  callback: function (t) {
                    e.speed = t;
                  },
                  expression: "speed",
                },
              }),
              i(
                "div",
                {
                  staticStyle: {
                    position: "relative",
                    height: "65px",
                    color: "#fff",
                    "font-size": "30px",
                    cursor: "move",
                    "grid-column": "1/span 2",
                  },
                  on: {
                    mousedown: function (t) {
                      return e.onDragStart(t);
                    },
                  },
                },
                [
                  i("i", {
                    staticClass: "el-icon-caret-top",
                    class: e.$style.icon,
                    staticStyle: { top: "-10px", left: "calc(50% - 15px)" },
                    attrs: { title: "镜头上移" },
                    on: {
                      mousedown: function (e) {
                        e.stopPropagation();
                      },
                      click: function (t) {
                        return e.rotate(1);
                      },
                    },
                  }),
                  i("i", {
                    staticClass: "el-icon-caret-bottom",
                    class: e.$style.icon,
                    staticStyle: { top: "39px", left: "calc(50% - 15px)" },
                    attrs: { title: "镜头下移" },
                    on: {
                      mousedown: function (e) {
                        e.stopPropagation();
                      },
                      click: function (t) {
                        return e.rotate(2);
                      },
                    },
                  }),
                  i("i", {
                    staticClass: "el-icon-caret-left",
                    class: e.$style.icon,
                    staticStyle: { top: "15px", left: "calc(50% - 40px)" },
                    attrs: { title: "镜头左移" },
                    on: {
                      mousedown: function (e) {
                        e.stopPropagation();
                      },
                      click: function (t) {
                        return e.rotate(3);
                      },
                    },
                  }),
                  i("i", {
                    staticClass: "el-icon-caret-right",
                    class: e.$style.icon,
                    staticStyle: { top: "15px", right: "calc(50% - 39px)" },
                    attrs: { title: "镜头右移" },
                    on: {
                      mousedown: function (e) {
                        e.stopPropagation();
                      },
                      click: function (t) {
                        return e.rotate(4);
                      },
                    },
                  }),
                  i("i", {
                    staticClass: "el-icon-circle-close",
                    class: e.$style.icon,
                    staticStyle: {
                      top: "18px",
                      left: "calc(50% - 12px)",
                      "font-size": "25px",
                    },
                    attrs: { title: "停止移动" },
                    on: {
                      mousedown: function (e) {
                        e.stopPropagation();
                      },
                      click: function (t) {
                        return e.rotate(0);
                      },
                    },
                  }),
                ]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.focus(1);
                    },
                  },
                },
                [e._v(" 焦距变小 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.focus(0);
                    },
                  },
                },
                [e._v(" 焦距变大 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.aperture(1);
                    },
                  },
                },
                [e._v(" 光圈缩小 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.aperture(0);
                    },
                  },
                },
                [e._v(" 光圈放大 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.zoom(1);
                    },
                  },
                },
                [e._v(" 变倍调小 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.zoom(0);
                    },
                  },
                },
                [e._v(" 变倍调大 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.light(1);
                    },
                  },
                },
                [e._v(" 补光打开 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.light(0);
                    },
                  },
                },
                [e._v(" 补光关闭 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.wiper(1);
                    },
                  },
                },
                [e._v(" 雨刷打开 ")]
              ),
              i(
                "Button",
                {
                  attrs: { border: !1, height: 24 },
                  on: {
                    click: function (t) {
                      return e.wiper(0);
                    },
                  },
                },
                [e._v(" 雨刷关闭 ")]
              ),
            ],
            1
          );
        },
        S = [],
        E = i("89fb"),
        k = {
          components: { Button: g["a"], Slider: E["a"] },
          data() {
            return { carId: null, channel: null, speed: 127 };
          },
          mounted() {
            document.addEventListener("mousedown", this.onMouseClick);
          },
          methods: {
            rotate(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "0",
                carId: this.carId,
                channel: this.channel,
                speed: this.speed,
                drct: e + "",
              });
            },
            focus(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "1",
                carId: this.carId,
                channel: this.channel,
                action: e + "",
              });
            },
            aperture(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "2",
                carId: this.carId,
                channel: this.channel,
                action: e + "",
              });
            },
            zoom(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "5",
                carId: this.carId,
                channel: this.channel,
                action: e + "",
              });
            },
            light(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "4",
                carId: this.carId,
                channel: this.channel,
                action: e + "",
              });
            },
            wiper(e) {
              this._socket.send({
                cmd: "cloud_ctr",
                type: "3",
                carId: this.carId,
                channel: this.channel,
                action: e + "",
              });
            },
            onDragStart(e) {
              (this.divX = e.clientX - this.$el.offsetLeft),
                (this.divY = e.clientY - this.$el.offsetTop),
                document.addEventListener("mousemove", this.onDraging),
                document.addEventListener("mouseup", this.onDragEnd);
            },
            onDraging(e) {
              (this.$el.style.left = e.clientX - this.divX + "px"),
                (this.$el.style.top = e.clientY - this.divY + "px");
            },
            onDragEnd() {
              document.removeEventListener("mousemove", this.onDraging),
                document.removeEventListener("mouseup", this.onDragEnd);
            },
            onMouseClick(e) {
              this.$el.contains(e.target) ||
                (document.removeEventListener("mousedown", this.onMouseClick),
                document.body.removeChild(this.$el),
                this.$destroy());
            },
          },
        },
        C = k,
        T = i("58a7");
      function O(e) {
        this["$style"] = T["default"].locals || T["default"];
      }
      var $ = Object(u["a"])(C, w, S, !1, O, null, null),
        R = $.exports,
        A = i("d0ee"),
        L = i("eb5b"),
        D = i("4a66"),
        I = i("7319"),
        M = {
          components: {},
          props: {
            sessionId: String,
            user_pwd: String,
            uuid: String,
            videoIp: String,
            onClose: Function,
            onVoiceOpen: Function,
            openVideo: Function,
            openAudio: Function,
            closeAudio: Function,
            cloudable: { type: Boolean, default: !0 },
            closeable: { type: Boolean, default: !0 },
            pauseable: { type: Boolean, default: !0 },
            voiceable: { type: Boolean, default: !0 },
            snapshotable: { type: Boolean, default: !0 },
            recordable: { type: Boolean, default: !0 },
          },
          _chn: null,
          _type: null,
          _stream: null,
          data() {
            return {
              border: !1,
              title: null,
              cloud: !1,
              hover: !1,
              playing: !1,
              loading: !1,
              reply: !1,
              pause: !1,
              voice: !1,
              tip: null,
              record: { ing: !1, time: null, second: 0, interval: null },
              flow: { total: 0, kbs: 0 },
              rotate: 0,
              reverse: !1,
            };
          },
          computed: {
            backgroundImage() {
              return null;
            },
            backgroundColor() {
              return { backgroundColor: "#000", backgroundSize: "0" };
            },
          },
          methods: {
            play(e, t, i, s) {
              (this._chn = e),
                (this._chn.player = this),
                (this._type = t),
                (this._stream = i),
                (this.playing = this.loading = !0),
                (this.$refs.video.style.display = ""),
                (this.reply = !1),
                (this.cloud = e.cloud),
                (this.tip = null),
                (this.flow.total = this.flow.kbs = 0),
                (this.title = e.title),
                (this._socket = s);
              let n =
                "/real_play/" +
                [
                  this.sessionId,
                  this.user_pwd,
                  this.uuid,
                  "_" + this._chn.sim,
                  this._type,
                  this._chn.chn,
                  this._stream,
                ].join("/");
              this._player && this._player.destroy(),
                (this._player = this.openVideo(n, this.$refs.video)),
                this._player.on(flvjs.Events.METADATA_ARRIVED, () => {
                  (this.loading = !1), (this.reply = !0), (this.tip = null);
                });
            },
            setVoice(e) {
              if (this.voice === e) return;
              if (((this.voice = e), !this.playing)) return;
              if (
                (e && this.onVoiceOpen && this.onVoiceOpen(this),
                this._closeAudio(),
                !e)
              )
                return;
              let t = () =>
                ((65536 * (1 + Math.random())) | 0).toString(16).substring(1);
              this._audio_uuid = t() + t() + t() + t() + t() + t() + t() + t();
              let i =
                "/listen_open/" +
                [
                  this.sessionId,
                  this.user_pwd,
                  this._audio_uuid,
                  "_" + this._chn.sim,
                  this._chn.chn,
                  "1",
                ].join("/");
              this.openAudio(i, !1);
            },
            tooglePause() {
              this.playing &&
                ((this.pause = !this.pause),
                this.pause ? this.$refs.video.pause() : this.$refs.video.play(),
                this._socket.send({
                  cmd: this.pause ? "real_pause" : "real_resume",
                  uuid: this.uuid,
                  carId: "_" + this._chn.sim,
                  channel: this._chn.chn,
                  stream: this._stream,
                }));
            },
            snapshot() {
              this._player.snapshot(
                this.title + "(" + Object(A["f"])("YYYYMMDDHHNNSS") + ")"
              ),
                this.pause && this.$refs.video.pause();
            },
            toogleRecord() {
              if (this.record.ing) {
                (this.record.ing = !1),
                  this.record.interval &&
                    (clearInterval(this.record.interval),
                    (this.record.interval = null));
                let e = (t) => {
                  let i = t.downloadPort;
                  this._socket.removeListener("cfg", e);
                  let s =
                    ("https:" == location.protocol ? "https:" : "http:") +
                    "//" +
                    this.videoIp +
                    ":" +
                    i +
                    "/download/92&" +
                    this.uuid +
                    "/" +
                    encodeURIComponent(this.title) +
                    "(" +
                    Object(A["f"])("YYYYMMDDHHNNSS") +
                    ").flv";
                  window.open(s);
                };
                this._socket.addListener("cfg", e),
                  this._socket.send({ cmd: "cfg" });
              } else
                this._socket.send({ cmd: "record_start", uuid: this.uuid });
            },
            cloudClick() {
              let e = Object(I["b"])(this.$el),
                t = e.left,
                i = e.top,
                s = D["a"].open(R, {
                  carId: "_" + this._chn.sim,
                  channel: this._chn.chn,
                });
              (s._socket = this._socket),
                (s.$el.style.left =
                  t + this.$el.clientWidth - s.$el.clientWidth - 2 + "px"),
                (s.$el.style.top = i + 26 + "px");
            },
            on_real_play(e) {
              let t =
                arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
              if (((this.reply = !0), 0 !== e.ret)) {
                this.loading = !1;
                let i = this.title + " - " + Object(L["a"])(e.ret);
                this.clear(), t ? b["a"].error(i) : (this.tip = i);
              }
            },
            on_play_flow(e) {
              (this.flow.kbs = e.flow - this.flow.total),
                (this.flow.total = e.flow),
                e.flow > 0 && (this.reply = !0);
            },
            on_record_start(e) {
              (this.record.second = 0),
                (this.record.time = "00:00:00"),
                (this.record.ing = !0),
                (this.record.interval = setInterval(() => {
                  this.pause ||
                    ((this.record.second += 1),
                    (this.record.time = Object(A["i"])(this.record.second)));
                }, 1e3));
            },
            on_tmn_close() {
              this.playing &&
                (this.play(this._chn, this._type, this._stream, this._socket),
                (this.tip = "设备视频链接断开，重新播放..."));
            },
            on_tmn_open() {
              this.playing && (this.tip = null);
            },
            replay() {
              this.playing &&
                this.play(this._chn, this._type, this._stream, this._socket);
            },
            close() {
              let e =
                arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
              if (!this.playing) return (this.tip = null);
              this._socket.send({
                cmd: "real_close",
                uuid: this.uuid,
                carId: "_" + this._chn.sim,
                channel: this._chn.chn,
                stream: this._stream,
              }),
                this._player && (this._player.destroy(), (this._player = null)),
                this._closeAudio(),
                this.clear(e);
            },
            _closeAudio() {
              this._audio_uuid &&
                (this.closeAudio(),
                this._socket.send({
                  cmd: "listen_close",
                  uuid: this._audio_uuid,
                  carId: "_" + this._chn.sim,
                  channel: this._chn.chn,
                  stream: "1",
                }),
                (this._audio_uuid = null));
            },
            clear() {
              let e =
                arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
              (this.playing = this.loading = this.reply = !1),
                (this.$refs.video.style.display = "none"),
                (this.title = null),
                (this.tip = null),
                (this._chn.player = null),
                this._chn && this.onClose && this.onClose(this._chn, this, e),
                (this._chn = null),
                (this.pause = !1),
                (this.voice = !1),
                (this.cloud = !1),
                (this.rotate = 0),
                (this.reverse = !1),
                (this.flow.total = this.flow.kbs = 0),
                this.record.ing &&
                  (clearInterval(this.record.interval),
                  (this.record.ing = !1),
                  (this.record.interval = null));
            },
            switchStream(e) {
              this.playing &&
                ((this._stream = e),
                this._socket.send({
                  cmd: "real_switch_stream",
                  uuid: this.uuid,
                  carId: "_" + this._chn.sim,
                  channel: this._chn.chn,
                  stream: this._stream,
                }));
            },
            resize(e, t, i, s) {
              this.$refs.video &&
                (this.$refs.video.setAttribute("width", e + "px"),
                this.$refs.video.setAttribute("height", t + "px"),
                (this.$refs.video.style.left = i),
                (this.$refs.video.style.top = s),
                this._player && this._player.onResize());
            },
          },
        },
        P = M,
        N = i("f190");
      function B(e) {
        this["$style"] = N["default"].locals || N["default"];
      }
      var F = Object(u["a"])(P, y, x, !1, B, null, null),
        V = F.exports,
        z = i("360e"),
        j = i("a963");
      function H(e, t, i) {
        if (
          ((navigator.getUserMedia =
            navigator.getUserMedia ||
            navigator.webkitGetUserMedia ||
            navigator.mozGetUserMedia ||
            navigator.msGetUserMedia),
          navigator.getUserMedia)
        )
          return navigator.getUserMedia(
            { audio: !0 },
            (i) => {
              t(W(i, e));
            },
            (s) => U(e, t, i, s.message || s.name)
          );
        U(e, t, null, null);
      }
      function U(e, t, i, s) {
        let n = { mic_open: !1, ws_open: !1 };
        (n.mic = new WebSocket("ws://localhost:3316")),
          (n.mic.binaryType = "arraybuffer"),
          (n.mic.onopen = () => {
            (n.mic_open = !0),
              (n.ws = new WebSocket(e)),
              (n.ws.binaryType = "arraybuffer"),
              (n.ws.onopen = () => (n.ws_open = !0)),
              (n.ws.onclose = () => (n.ws_open = !1)),
              t(n);
          }),
          (n.mic.onmessage = (e) => {
            n.ws_open && n.ws.send(e.data);
          }),
          (n.mic.onerror = () => !n.mic_open && (t(!1), s && i && i(s))),
          (n.close = () => {
            (n.ws_open = !1),
              n.mic && (n.mic.close(), (n.mic = null)),
              n.ws && (n.ws.close(), (n.ws = null));
          });
      }
      function W(e, t) {
        let i = {};
        return (
          (i.ws = new WebSocket(t)),
          (i.ws.binaryType = "arraybuffer"),
          (i.ws.onopen = () => {
            i.ws_open = !0;
            let t = new AudioContext(),
              s = t.createMediaStreamSource(e);
            (i.recorder = t.createScriptProcessor(0, 1, 1)),
              (i.recorder.onaudioprocess = (e) => {
                let s = e.inputBuffer.getChannelData(0);
                (s = waveResampler.resample(s, t.sampleRate, 8e3)),
                  (s = G(s)),
                  i.ws_open && i.ws.send(s);
              }),
              s.connect(i.recorder),
              i.recorder.connect(t.destination);
          }),
          (i.ws.onclose = () => (i.ws_open = !1)),
          (i.close = () => {
            (i.ws_open = !1),
              i.recorder && i.recorder.disconnect(),
              (i.recorder = null),
              i.ws.close(),
              (i.ws = null);
          }),
          i
        );
      }
      function G(e) {
        let t = 0,
          i = new DataView(new ArrayBuffer(2 * e.length));
        for (let s = 0; s < e.length; s++, t += 2) {
          let n = Math.max(-1, Math.min(1, e[s]));
          i.setInt16(t, n < 0 ? 32768 * n : 32767 * n, !0);
        }
        return new Blob([i]);
      }
      var Z = void 0;
      function Y(e) {
        function t(e, t, i) {
          for (var s = [], n = 0; n < e; n++)
            s.push(
              this.b({
                u: t,
                s: i,
                Q: 0.5 / Math.sin((Math.PI / (2 * e)) * (n + 0.5)),
              })
            );
          for (this.a = [], e = 0; e < s.length; e++)
            this.a[e] = {
              A: s[e].c[0],
              B: s[e].c[1],
              C: s[e].c[2],
              v: s[e].i[0],
              w: s[e].i[1],
              k: s[e].k,
              z: [0, 0],
            };
        }
        function i(e, t, i) {
          (i = (2 * Math.PI * i) / t), (t = 0), (this.a = []);
          for (var s = 0; s <= e; s++)
            0 === s - e / 2
              ? (this.a[s] = i)
              : ((this.a[s] = Math.sin(i * (s - e / 2)) / (s - e / 2)),
                (this.a[s] *= 0.54 - 0.46 * Math.cos((2 * Math.PI * s) / e))),
              (t += this.a[s]);
          for (i = 0; i <= e; i++) this.a[i] /= t;
          this.z = this.b();
        }
        function s(e, t, i) {
          (this.G = e),
            (this.b = (e - 1) / t),
            (this.h = this.D),
            "point" === i.method
              ? (this.h = this.I)
              : "linear" === i.method
              ? (this.h = this.H)
              : "sinc" === i.method && (this.h = this.J),
            (this.K = 1 - Math.max(0, Math.min(1, i.tension || 0))),
            (this.l = i.sincFilterSize || 1),
            (this.F = o(i.sincWindow || n));
        }
        function n(e) {
          return Math.exp(((-e / 2) * e) / 2);
        }
        function o(e) {
          return function (t) {
            return (0 === t ? 1 : Math.sin(Math.PI * t) / (Math.PI * t)) * e(t);
          };
        }
        function r(e, t, i) {
          for (var s = 0, n = t.length; s < n; s++) t[s] = i.h(s, e);
        }
        (s.prototype.I = function (e, t) {
          return this.a(Math.round(this.b * e), t);
        }),
          (s.prototype.H = function (e, t) {
            e *= this.b;
            var i = Math.floor(e);
            return (e -= i), (1 - e) * this.a(i, t) + e * this.a(i + 1, t);
          }),
          (s.prototype.D = function (e, t) {
            e *= this.b;
            var i = Math.floor(e),
              s = [this.j(i, t), this.j(i + 1, t)],
              n = [this.a(i, t), this.a(i + 1, t)];
            (e -= i), (i = e * e);
            var o = e * i;
            return (
              (2 * o - 3 * i + 1) * n[0] +
              (o - 2 * i + e) * s[0] +
              (-2 * o + 3 * i) * n[1] +
              (o - i) * s[1]
            );
          }),
          (s.prototype.J = function (e, t) {
            e *= this.b;
            var i = Math.floor(e),
              s = i + this.l,
              n = 0;
            for (i = i - this.l + 1; i <= s; i++)
              n += this.F(e - i) * this.a(i, t);
            return n;
          }),
          (s.prototype.j = function (e, t) {
            return (this.K * (this.a(e + 1, t) - this.a(e - 1, t))) / 2;
          }),
          (s.prototype.a = function (e, t) {
            return 0 <= e && e < this.G ? t[e] : 0;
          }),
          (i.prototype.filter = function (e) {
            this.z.g[this.z.m] = e;
            for (var t = (e = 0), i = this.z.g.length; t < i; t++)
              e += this.a[t] * this.z.g[(this.z.m + t) % this.z.g.length];
            return (this.z.m = (this.z.m + 1) % this.z.g.length), e;
          }),
          (i.prototype.reset = function () {
            this.z = this.b();
          }),
          (i.prototype.b = function () {
            for (var e = [], t = 0; t < this.a.length - 1; t++) e.push(0);
            return { g: e, m: 0 };
          }),
          (t.prototype.filter = function (e) {
            for (var t = 0, i = this.a.length; t < i; t++) e = this.l(t, e);
            return e;
          }),
          (t.prototype.b = function (e) {
            var t = { z: [0, 0], i: [], c: [] };
            return (
              (e = this.j(e, t)),
              (t.k = 1),
              t.c.push((1 - e.o) / (2 * e.f)),
              t.c.push(2 * t.c[0]),
              t.c.push(t.c[0]),
              t
            );
          }),
          (t.prototype.j = function (e, t) {
            var i = {},
              s = (2 * Math.PI * e.s) / e.u;
            return (
              (i.alpha = Math.sin(s) / (2 * e.Q)),
              (i.o = Math.cos(s)),
              (i.f = 1 + i.alpha),
              (t.f = i.f),
              t.i.push((-2 * i.o) / i.f),
              (t.k = 1),
              t.i.push((1 - i.alpha) / i.f),
              i
            );
          }),
          (t.prototype.l = function (e, t) {
            var i =
                t * this.a[e].k -
                this.a[e].v * this.a[e].z[0] -
                this.a[e].w * this.a[e].z[1],
              s =
                this.a[e].A * i +
                this.a[e].B * this.a[e].z[0] +
                this.a[e].C * this.a[e].z[1];
            return (this.a[e].z[1] = this.a[e].z[0]), (this.a[e].z[0] = i), s;
          }),
          (t.prototype.reset = function () {
            for (var e = 0; e < this.a.length; e++) this.a[e].z = [0, 0];
          });
        var l = { point: !1, linear: !1, cubic: !0, sinc: !0 },
          a = { IIR: 16, FIR: 71 },
          h = { IIR: t, FIR: i };
        (e.resample = function (e, t, i, n) {
          n = void 0 === n ? {} : n;
          var o = new Float64Array(e.length * ((i - t) / t + 1));
          n.method = n.method || "cubic";
          var c = new s(e.length, o.length, {
            method: n.method,
            tension: n.tension || 0,
            sincFilterSize: n.sincFilterSize || 6,
            sincWindow: n.sincWindow || void 0,
          });
          if ((void 0 === n.LPF && (n.LPF = l[n.method]), n.LPF)) {
            n.LPFType = n.LPFType || "IIR";
            var d = h[n.LPFType];
            if (i > t) {
              for (
                t = new d(n.LPFOrder || a[n.LPFType], i, t / 2),
                  i = 0,
                  n = o.length;
                i < n;
                i++
              )
                o[i] = t.filter(c.h(i, e));
              for (t.reset(), e = o.length - 1; 0 <= e; e--)
                o[e] = t.filter(o[e]);
            } else {
              for (
                t = new d(n.LPFOrder || a[n.LPFType], t, i / 2),
                  i = 0,
                  n = e.length;
                i < n;
                i++
              )
                e[i] = t.filter(e[i]);
              for (t.reset(), i = e.length - 1; 0 <= i; i--)
                e[i] = t.filter(e[i]);
              r(e, o, c);
            }
          } else r(e, o, c);
          return o;
        }),
          Object.defineProperty(e, "__esModule", { value: !0 });
      }
      "object" === typeof exports && "undefined" !== typeof e
        ? Y(exports)
        : "function" === typeof define && define.L
        ? define(["exports"], Y)
        : ((Z = Z || self), Y((Z.waveResampler = {})));
      var q = {
          components: {
            Toolbar: m,
            Button: g["a"],
            ButtonBar: v["a"],
            InputSelect: _["a"],
          },
          data() {
            return {
              stream: 1,
              ratio: 0,
              row: 3,
              col: 3,
              count: 9,
              talks: {
                options: null,
                value: null,
                show: !1,
                playing: !1,
                waiting: !1,
              },
              auto_talks: !1,
              showRcWindow: !1,
              socketIsOpen: !1,
              toolbar: "top",
            };
          },
          created() {
            (this._PlayerClass = r["a"].extend(V)),
              (this.stream = j["a"].get("VRT_STREAM", 1));
          },
          watch: {
            socketIsOpen: function (e) {
              e && this._player_list.forEach((e) => e.replay());
            },
          },
          mounted() {
            (this._sessionId = this._uuid()),
              (this._player_map = {}),
              (this._player_list = []),
              (this._cfg = {}),
              this._regrid(),
              window.addResizeListener(this.$refs.videos, this._onResize),
              window.onVideoRealPlayLoad &&
                window.onVideoRealPlayLoad(flvjs.isSupported(), this);
          },
          methods: {
            init(e) {
              (this._cfg = e),
                (e.user_pwd = encodeURI(e.user || e.userId || "")),
                e.pwd && (e.user_pwd += "*" + e.pwd),
                this._player_list.forEach(
                  (t) => ((t.user_pwd = e.user_pwd), (t.videoIp = e.ip))
                ),
                (this.toolbar = void 0 == e.toolbar ? this.toolbar : e.toolbar),
                (this._videoUrl =
                  ("https:" == location.protocol ? "wss://" : "ws://") +
                  e.ip +
                  ":" +
                  e.port);
              let t = 1,
                i = 1;
              if (
                ((this._socket = new z["a"](
                  this._sessionId,
                  this._videoUrl + "/video",
                  () => {
                    (this.socketIsOpen = !0),
                      e.onServerOpen && e.onServerOpen(t++),
                      2 == t && this.auto_talks && this._toogleTalk();
                  },
                  () => {
                    (this.socketIsOpen = !1),
                      e.onServerClose && e.onServerClose(i++);
                  }
                )),
                this._socket.connect(),
                this._socket.addListener("real_play", this._on_real_play),
                this._socket.addListener("play_flow", this._on_play_flow),
                this._socket.addListener("tmn_close", this._on_tmn_close),
                this._socket.addListener("tmn_open", this._on_tmn_open),
                this._socket.addListener("record_start", this._on_record_start),
                e.count > 0)
              ) {
                let t = 1,
                  i = 1;
                while (t * i < e.count) t == i ? i++ : t++;
                this.regrid(t, i);
              } else e.row && e.col && this.regrid(e.row, e.col);
              this._setPlayTimeout(parseInt(e.timeout || 0));
            },
            regrid(e, t) {
              (this.row = e),
                (this.col = t),
                (this.count = e * t),
                this._regrid();
            },
            playVideo(e, t, i, s) {
              let n =
                arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
              for (let r, l = 0; l < this._player_list.length; l++)
                if (
                  ((r = this._player_list[l]),
                  r.playing && r._chn.sim == t && r._chn.chn == i)
                )
                  return 0;
              let o = this._nextIdlePlayer();
              return o
                ? ((this.stream =
                    0 === s || 1 === s || "0" === s || "1" === s
                      ? parseInt(s)
                      : this.stream),
                  o.play(
                    { sim: t, chn: i, title: e, cloud: n },
                    0,
                    this.stream,
                    this._socket
                  ),
                  1)
                : -1;
            },
            closeVideo(e, t) {
              for (let i, s = 0; s < this._player_list.length; s++)
                if (
                  ((i = this._player_list[s]),
                  i.playing && i._chn.sim == e && i._chn.chn == t)
                )
                  return i.close();
            },
            playListen(e, t, i, s) {
              this._closeAllAudio(),
                (this._listen = {
                  sim: e,
                  chn: t,
                  uuid: this._uuid(),
                  on_close: s,
                  on_result: (e) => {
                    if (this._listen.uuid == e.uuid) {
                      if (
                        (this._socket.removeListener(
                          "listen_open",
                          this._listen.on_result
                        ),
                        0 == e.ret)
                      )
                        return i && i(1, this._listen.sim, this._listen.chn);
                      this._closeAudio(),
                        (this._listen = null),
                        i &&
                          i(
                            0,
                            this._listen.sim,
                            this._listen.chn,
                            Object(L["a"])(e.ret)
                          );
                    }
                  },
                }),
                this._socket.addListener("listen_open", this._listen.on_result);
              let n =
                "/listen_open/" +
                [
                  this._sessionId,
                  this._cfg.user_pwd,
                  this._listen.uuid,
                  "_" + e,
                  t,
                  "1",
                ].join("/");
              this._openAudio(n, !0);
            },
            closeListen() {
              this._listen &&
                (this._socket.removeListener(
                  "listen_open",
                  this._listen.on_result
                ),
                this._socket.send({
                  cmd: "listen_close",
                  uuid: this._listen.uuid,
                  carId: "_" + this._listen.sim,
                  channel: this._listen.chn,
                  stream: "1",
                }),
                this._closeAudio(),
                this._listen.on_close &&
                  this._listen.on_close(this._listen.sim, this._listen.chn),
                (this._listen = null));
            },
            showTalks(e, t) {
              (this.talks.options = e),
                (this.talks.show = e && e.length > 0),
                (this.talks.value = this.talks.show ? e[0].value : null),
                (this.auto_talks = this.talks.show && t);
            },
            _toogleTalk() {
              if (this.talks.playing) return this.closeTalk();
              let e = this.talks.value.split("_"),
                t = Object(o["a"])(e, 2),
                i = t[0],
                s = t[1];
              (this.talks.waiting = !0),
                this.playTalk(i, s, (e, t, i, s) => {
                  if (((this.talks.waiting = !1), 0 == e))
                    return b["a"].warn(s);
                  (this.talks.playing = !0),
                    2 == e && b["a"].warn("获取不到本地麦克风 " + (s || ""));
                });
            },
            playTalk(e, t, i, s) {
              this._closeAllAudio(),
                (this._talk = {
                  sim: e,
                  chn: t,
                  uuid: this._uuid(),
                  on_close: s,
                  on_result: (e) => {
                    if (this._talk.uuid == e.uuid) {
                      if (0 == e.ret)
                        return H(
                          this._videoUrl + "/mic_data/" + this._talk.uuid,
                          (e) => {
                            (this._mic = e),
                              i &&
                                i(
                                  e ? 1 : 2,
                                  this._talk.sim,
                                  this._talk.chn,
                                  ""
                                );
                          },
                          (e) => i && i(2, this._talk.sim, this._talk.chn, e)
                        );
                      this._socket.removeListener(
                        "talk_open",
                        this._talk.on_result
                      ),
                        this._closeAudio(),
                        (this._talk = null),
                        i &&
                          i(
                            0,
                            this._talk.sim,
                            this._talk.chn,
                            Object(L["a"])(e.ret)
                          );
                    }
                  },
                }),
                this._socket.addListener("talk_open", this._talk.on_result);
              let n =
                "/talk_open/" +
                [
                  this._sessionId,
                  this._cfg.user_pwd,
                  this._talk.uuid,
                  "_" + e,
                  t,
                  "1",
                ].join("/");
              this._openAudio(n, !0);
            },
            closeTalk() {
              this._talk &&
                (this._socket.removeListener("talk_open", this._talk.on_result),
                this._socket.send({
                  cmd: "talk_close",
                  uuid: this._talk.uuid,
                  carId: "_" + this._talk.sim,
                  channel: this._talk.chn,
                  stream: "1",
                }),
                this._closeAudio(),
                this._talk.on_close &&
                  this._talk.on_close(this._talk.sim, this._talk.chn),
                (this._talk = null),
                this._mic && (this._mic.close(), (this._mic = null)),
                this.talks.show &&
                  (this.talks.playing = this.talks.waiting = !1));
            },
            closeAll() {
              this._closeAll(), this.closeListen(), this.closeTalk();
            },
            destroy() {
              removeResizeListener(this.$refs.videos, this._onResize),
                this._mouseMove &&
                  (document.removeEventListener("mousemove", this._mouseMove),
                  (this._mouseMove = null)),
                this._interval &&
                  (clearInterval(this._interval), (this._interval = null)),
                this.closeAll(),
                this._player_list.forEach((e) => e.$destroy()),
                (this._PlayerClass = null),
                (this._player_map = null),
                (this._player_list = null),
                (this._player = null),
                this._socket && (this._socket.destroy(), (this._socket = null));
            },
            _setPlayTimeout(e) {
              if (e <= 0) return;
              e *= 1e3;
              let t = new Date().getTime(),
                i = !1,
                s = !1;
              document.addEventListener(
                "mousemove",
                (this._mouseMove = () => (i = !0))
              ),
                (this._interval = setInterval(() => {
                  i
                    ? ((t = new Date().getTime()), (i = s = !1))
                    : !s &&
                      new Date().getTime() - t > e &&
                      ((s = !0),
                      this._closeAll() &&
                        b["a"].warn("您已长时间不操作系统，视频已经自动关闭"));
                }, 1e3));
            },
            _closeAllAudio() {
              this._player_list.forEach((e) => e.setVoice(!1)),
                this.closeListen(),
                this.closeTalk();
            },
            _on_real_play(e) {
              let t = this._player_map[e.uuid];
              t && t.playing && t.on_real_play(e);
            },
            _on_tmn_close(e) {
              let t = this._player_map[e.uuid];
              t && t.playing && t.on_tmn_close();
            },
            _on_tmn_open(e) {
              let t = this._player_map[e.uuid];
              t && t.playing && t.on_tmn_open();
            },
            _on_play_flow(e) {
              let t = this._player_map[e.uuid];
              t && t.playing && t.on_play_flow(e);
            },
            _on_record_start(e) {
              let t = this._player_map[e.uuid];
              t && t.playing && t.on_record_start(e);
            },
            _regrid() {
              if (0 != this.count) {
                for (let e = 0; e < this.count; e++) {
                  let t =
                    this._player_list.length > e
                      ? this._player_list[e]
                      : this._newPlayer();
                  t.$el.style.display = "flex";
                }
                for (let e = this.count; e < this._player_list.length; e++)
                  this._player_list[e].$el.style.display = "none";
                (this._playerIsMax = !1),
                  this._player && 1 != this.count && (this._player.border = !0),
                  this._onResize();
              }
            },
            _newPlayer() {
              let e = this._uuid(),
                t = new this._PlayerClass({
                  propsData: {
                    uuid: e,
                    sessionId: this._sessionId,
                    user_pwd: this._cfg.user_pwd,
                    videoIp: this._cfg.ip,
                    onClose: this._onPlayerClose,
                    onVoiceOpen: this._onPlayerVoiceOpen,
                    openVideo: this._openVideo,
                    openAudio: this._openAudio,
                    closeAudio: this._closeAudio,
                  },
                });
              return (
                t.$mount(),
                (t.$el.onclick = () => this._onPlayerClick(t)),
                (t.$el.ondblclick = () => this._onPlayerDbclick(t)),
                this.$refs.videos.appendChild(t.$el),
                this._player_list.push(t),
                (this._player_map[e] = t),
                t
              );
            },
            _openAudio(e, t) {
              !t && (this.closeListen(), this.closeTalk());
              let i = this._videoUrl + e;
              (this._audio = flvjs.createPlayer(
                {
                  type: "flv",
                  isLive: !0,
                  hasAudio: !0,
                  hasVideo: !1,
                  cors: !0,
                  url: i,
                },
                { enableStashBuffer: !1, fixAudioTimestampGap: !1 }
              )),
                this._audio.attachMediaElement(this.$refs.audio),
                this._audio.load(),
                this._audio.play();
            },
            _closeAudio() {
              this._audio && (this._audio.destroy(), (this._audio = null));
            },
            _openVideo(e, t) {
              let i = this._videoUrl + e,
                s = flvjs.createPlayer(
                  {
                    type: "flv",
                    isLive: !0,
                    hasAudio: !1,
                    hasVideo: !0,
                    cors: !0,
                    url: i,
                  },
                  { enableStashBuffer: !1, fixAudioTimestampGap: !1 }
                );
              return s.attachMediaElement(t), s.load(), s.play(), s;
            },
            _onResize() {
              if (0 == this.count) return;
              if (this._playerIsMax) {
                (this._player.$el.style.width =
                  this.$refs.videos.clientWidth + "px"),
                  (this._player.$el.style.height =
                    this.$refs.videos.clientHeight + "px");
                let e = this._getRatioAjust(
                    this.$refs.videos.clientWidth,
                    this.$refs.videos.clientHeight
                  ),
                  t = Object(o["a"])(e, 4),
                  i = t[0],
                  s = t[1],
                  n = t[2],
                  r = t[3];
                return void this._player.resize(i, s, n, r);
              }
              let e = this.$refs.videos.clientWidth / this.col,
                t = this.$refs.videos.clientHeight / this.row,
                i = this._getRatioAjust(e, t),
                s = Object(o["a"])(i, 4),
                n = s[0],
                r = s[1],
                l = s[2],
                a = s[3];
              (e = Math.ceil(e)), (t = Math.ceil(t));
              for (
                let o,
                  h = 0,
                  c = Math.min(this.count, this._player_list.length);
                h < c;
                h++
              )
                (o = this._player_list[h]),
                  (o.$el.style.width = e + "px"),
                  (o.$el.style.height = t + "px"),
                  (o.$el.style.left = (h % this.col) * e + "px"),
                  (o.$el.style.top = Math.floor(h / this.col) * t + "px"),
                  o.resize(n, r, l, a);
            },
            _onPlayerClick(e) {
              this._switchPlayer(e);
            },
            _onPlayerDbclick(e) {
              if (
                ((this._playerIsMax = !this._playerIsMax), !this._playerIsMax)
              )
                return this._regrid();
              this._player_list.forEach(
                (t) => t != e && (t.$el.style.display = "none")
              ),
                (e.$el.style.width = this.$refs.videos.clientWidth + "px"),
                (e.$el.style.height = this.$refs.videos.clientHeight + "px"),
                (e.$el.style.top = "0px"),
                (e.$el.style.left = "0px"),
                (e.border = !1);
              let t = this._getRatioAjust(
                  this.$refs.videos.clientWidth,
                  this.$refs.videos.clientHeight
                ),
                i = Object(o["a"])(t, 4),
                s = i[0],
                n = i[1],
                r = i[2],
                l = i[3];
              e.resize(s, n, r, l);
            },
            _switchPlayer(e) {
              return this._player == e
                ? e
                : (this._player && (this._player.border = !1),
                  (this._player = e),
                  1 != this.count && (e.border = !0),
                  e);
            },
            _onPlayerClose(e) {
              let t = e.sim,
                i = e.chn;
              this._cfg.onVideoClose && this._cfg.onVideoClose(t, i);
            },
            _onPlayerVoiceOpen(e) {
              this._player_list.forEach((t) => t != e && t.setVoice(!1));
            },
            _getRatioAjust(e, t) {
              if (((t -= 26), 0 == this.ratio)) return [e, t, "0px", "0px"];
              let i = e / t;
              if (this.ratio == i) return [e, t, "0px", "0px"];
              if (i > this.ratio) {
                i = t * this.ratio;
                let s = (e - i) / 2;
                return [i, t, s + "px", "0px"];
              }
              {
                i = e / this.ratio;
                let s = (t - e / this.ratio) / 2;
                return [e, i, "0px", s + "px"];
              }
            },
            _onStreamChg() {
              j["a"].set("VRT_STREAM", this.stream),
                this._player_list.forEach((e) => e.switchStream(this.stream));
            },
            _onRcBtnClick() {
              this.showRcWindow ||
                ((this.showRcWindow = !0),
                this.$nextTick(() => {
                  let e = Object(I["b"])(this.$refs.rcBtn.$el),
                    t = e.left,
                    i = e.top;
                  (this.$refs.rc.style.width =
                    this.$refs.rcBtn.$el.clientWidth + 2 + "px"),
                    (this.$refs.rc.style["z-index"] = window.$_theme.zindex()),
                    (this.$refs.rc.style.left = t + "px"),
                    "top" == this.toolbar
                      ? (this.$refs.rc.style.top =
                          i + this.$refs.rcBtn.$el.clientHeight + "px")
                      : (this.$refs.rc.style.top =
                          i - this.$refs.rc.clientHeight + "px"),
                    document.addEventListener("click", this._hideRcWindow);
                }));
            },
            _hideRcWindow(e) {
              this.$refs.rc.contains(e.target) ||
                this.$refs.rcBtn.$el.contains(e.target) ||
                ((this.showRcWindow = !1),
                document.removeEventListener("click", this._hideRcWindow));
            },
            _nextIdlePlayer() {
              let e = this._player
                ? this._player_list.indexOf(this._player)
                : 0;
              for (let t, i = e; i < this.count; i++)
                if (((t = this._player_list[i]), !t.playing))
                  return this._switchPlayer(t);
              e = Math.min(e, this.count);
              for (let t, i = 0; i < e; i++)
                if (((t = this._player_list[i]), !t.playing))
                  return this._switchPlayer(t);
              return null;
            },
            _closeAll() {
              if (0 == this._player_list.length) return !1;
              let e = !1;
              return (
                [...this._player_list].forEach((t) => {
                  (e = e || t.playing), t.close();
                }),
                this._switchPlayer(this._player_list[0]),
                e
              );
            },
            _fullScreen() {
              let e = this.$refs.videos,
                t =
                  e.requestFullscreen ||
                  e.webkitRequestFullscreen ||
                  e.mozRequestFullScreen ||
                  e.msRequestFullscreen;
              t && t.call(e);
            },
            _uuid() {
              let e = () =>
                ((65536 * (1 + Math.random())) | 0).toString(16).substring(1);
              return e() + e() + e() + e() + e() + e() + e() + e();
            },
          },
        },
        X = q,
        K = (i("b9fe"), i("930c"));
      function J(e) {
        this["$style"] = K["default"].locals || K["default"];
      }
      var Q = Object(u["a"])(X, s, n, !1, J, null, null);
      t["a"] = Q.exports;
    },
    "2a7d": function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "button",
            {
              class: [
                e.$style.btn,
                "transparent" == e.type && e.$style.transparent,
              ],
              style: [
                "transparent" != e.type && e.buttonColor,
                e.buttonStyle,
                { borderRadius: e.radius },
              ],
              attrs: { type: "button" },
              on: {
                mouseenter: function (t) {
                  !e.disabled_ && (e.hover = !0);
                },
                mouseleave: function (t) {
                  e.hover = !1;
                },
                mousedown: function (t) {
                  !e.disabled_ && (e.down = !0), e.$emit("mousedown", t);
                },
                mouseup: function (t) {
                  !e.disabled_ && (e.down = !1), e.$emit("mouseup", t);
                },
                click: function (t) {
                  !e.disabled_ && e.handleClick(t);
                },
              },
            },
            [
              e.icon_
                ? i("i", {
                    class: e.icon_,
                    staticStyle: { "font-size": "16px" },
                    style: [e.istyle, e.iconStyle],
                  })
                : e._e(),
              e.$slots.default
                ? i(
                    "span",
                    {
                      staticStyle: {
                        display: "inline-block",
                        "margin-top": "-1px",
                        "vertical-align": "middle",
                      },
                      style: e.slotStyle,
                    },
                    [e._t("default")],
                    2
                  )
                : e._e(),
              e.disabled_
                ? i("div", {
                    class: e.$style.disabled,
                    style: [
                      e.border && {
                        left: "-1px",
                        top: "-1px",
                        width: "calc(100% + 2px)",
                        height: "calc(100% + 2px)",
                      },
                    ],
                  })
                : e._e(),
            ]
          );
        },
        n = [],
        o = {
          name: "Button",
          props: {
            type: { type: String, default: "plain" },
            customs: { type: Array, default: null },
            border: { type: Boolean, default: !0 },
            borderColor: { type: String, default: null },
            height: { type: Number, default: $_theme.inputHeight },
            padding: String,
            radius: { type: String, default: "0px" },
            disabled: Boolean,
            icon: String,
            iconStyle: { default: null },
            slotStyle: { default: null },
          },
          data() {
            return {
              hover: !1,
              down: !1,
              disabled_: this.disabled,
              icon_: this.icon,
            };
          },
          watch: {
            disabled: function (e) {
              (this.disabled_ = e), e && (this.hover = !1);
            },
            icon: function (e) {
              this.icon_ = e;
            },
          },
          methods: {
            handleClick(e) {
              this.$emit("click", e);
            },
            setIcon(e) {
              this.icon_ = e;
            },
            setDisabled(e) {
              this.disabled_ = e;
            },
          },
          computed: {
            istyle() {
              return this.$slots.default
                ? { marginRight: "5px", verticalAlign: "middle" }
                : null;
            },
            buttonStyle() {
              return {
                height: this.height + "px",
                padding:
                  this.padding ||
                  "0 " + Math.max(this.height / 2 - 6, 0) + "px",
                borderWidth: this.border ? "1px" : "0",
                cursor: this.disabled ? "not-allowed" : "pointer",
              };
            },
            buttonColor() {
              return this[this.type][
                this.down ? "down" : this.hover ? "hover" : "normal"
              ];
            },
            plain() {
              return {
                down: {
                  backgroundColor: this.theme.bg_color,
                  borderColor: this.borderColor || this.theme.color,
                  color: this.theme.color,
                },
                hover: {
                  backgroundColor: "#fff",
                  borderColor: this.borderColor || this.theme.border_color_dark,
                  color: this.theme.color,
                },
                normal: {
                  backgroundColor: "#fff",
                  borderColor: this.borderColor || this.theme.border_color_dark,
                  color: this.disabled ? "#707070" : null,
                },
              };
            },
            primary() {
              return {
                down: {
                  color: "#fff",
                  borderColor: this.theme.color,
                  backgroundColor: this.theme.color,
                },
                hover: {
                  color: "#fff",
                  borderColor: this.theme.rgba(this.theme.color, 0.1),
                  backgroundColor: this.theme.rgba(this.theme.color, 0.8),
                },
                normal: {
                  color: "#fff",
                  borderColor: this.theme.color,
                  backgroundColor: this.theme.color,
                },
              };
            },
            light() {
              return {
                down: {
                  borderColor:
                    this.borderColor || this.theme.border_color_light,
                  color: this.theme.color,
                  backgroundColor: this.theme.selected_color,
                },
                hover: {
                  borderColor:
                    this.borderColor || this.theme.border_color_light,
                  color: this.theme.color,
                  backgroundColor: "#fff",
                },
                normal: {
                  borderColor:
                    this.borderColor || this.theme.border_color_light,
                  backgroundColor: this.theme.bg_color,
                },
              };
            },
            custom() {
              return this.customs
                ? {
                    down: {
                      backgroundColor: this.customs[2][0],
                      borderColor: this.customs[2][1],
                      color: this.customs[2][2],
                    },
                    hover: {
                      backgroundColor: this.customs[1][0],
                      borderColor: this.customs[1][1],
                      color: this.customs[1][2],
                    },
                    normal: {
                      backgroundColor: this.customs[0][0],
                      borderColor: this.customs[0][1],
                      color: this.customs[0][2],
                    },
                  }
                : {};
            },
          },
        },
        r = o,
        l = i("8f6b"),
        a = i("2877");
      function h(e) {
        this["$style"] = l["default"].locals || l["default"];
      }
      var c = Object(a["a"])(r, s, n, !1, h, null, null);
      t["a"] = c.exports;
    },
    "2fbf": function (e, t, i) {
      "use strict";
      var s = i("ce55"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "332c": function (e, t, i) {
      "use strict";
      var s = i("bb81"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "360e": function (e, t, i) {
      "use strict";
      i.d(t, "a", function () {
        return s;
      });
      i("ac6a");
      function s(e, t, i, s) {
        (this.onopen = i),
          (this.onclose = s),
          (this.sid = e),
          (this.url = t),
          (this.ws = null),
          (this.opened = !1),
          (this.stopped = !1),
          (this.listeners = {});
      }
      s.prototype = {
        connect: function () {
          (this.stopped = !1),
            (this.ws = new WebSocket(this.url)),
            (this.ws.onopen = this._onopen.bind(this)),
            (this.ws.onmessage = this._onmessage.bind(this)),
            (this.ws.onclose = this._onclose.bind(this));
        },
        close: function () {
          (this.stopped = !0),
            (this.opened = !1),
            (this.listeners = {}),
            this.ws && 1 === this.ws.readyState && this.ws.close();
        },
        destroy: function () {
          this.close(),
            (this.ws = null),
            (this.onopen = null),
            (this.onclose = null),
            (this.listeners = null);
        },
        send: function (e) {
          return (
            !(!this.opened || !this.ws || 1 != this.ws.readyState) &&
            (this.ws.send("string" === typeof e ? e : JSON.stringify(e)), !0)
          );
        },
        addListener: function (e, t) {
          (this.listeners[e] = this.listeners[e] || []),
            this.listeners[e].push(t);
        },
        removeListener: function (e, t) {
          let i = this.listeners[e];
          if (!i) return;
          let s = i.indexOf(t);
          -1 != s && (i.splice(s, 1), i.length || delete this.listeners[e]);
        },
        _onopen: function () {
          if (this.stopped) return this.ws.close();
          (this.opened = !0),
            (this.time = new Date().getTime()),
            this._keepalive(),
            this.onopen && this.onopen();
        },
        _onmessage: function (e) {
          (this.time = new Date().getTime()), (e = JSON.parse(e.data));
          let t = this.listeners[e.cmd];
          t &&
            t.forEach((t) => {
              try {
                t(e);
              } catch (i) {
                console.log(i);
              }
            });
        },
        _onclose: function () {
          this.opened && (this.onclose && this.onclose(), (this.opened = !1)),
            this.keepaliveTimer &&
              (clearTimeout(this.keepaliveTimer), (this.keepaliveTimer = !1)),
            !this.stopped && this.connect();
        },
        _keepalive: function () {
          if (this.opened) {
            if (new Date().getTime() - this.time > 6e4)
              return console.log("socket超时断开"), this.ws && this.ws.close();
            this.send('{"cmd":"keep_alive","sid":"' + this.sid + '"}'),
              (this.keepaliveTimer = setTimeout(
                this._keepalive.bind(this),
                1e4
              ));
          }
        },
      };
    },
    3727: function (e, t, i) {
      e.exports = {
        checked: "InputRadio_checked_2uyhw",
        unchecked: "InputRadio_unchecked_3F-GA",
        container: "InputRadio_container_16315",
        border: "InputRadio_border_31Kcm",
        label: "InputRadio_label_34Ssu",
        radioGroup: "InputRadio_radioGroup_1VW9c",
        radioItem: "InputRadio_radioItem_pdDQ_",
        unit: "InputRadio_unit_2VcvA",
        required: "InputRadio_required_2bkNY",
        disabled: "InputRadio_disabled_yToEl",
      };
    },
    "3d56": function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            { class: e.$style.container, style: e.containerStyle },
            [
              e._l(e.options, function (t, s) {
                return i(
                  "div",
                  {
                    key: e.getItemValue(t),
                    class: [
                      e.$style.btnItem,
                      "underline" == e.mode
                        ? null
                        : e.vertical
                        ? e.$style.btnItem_v
                        : e.$style.btnItem_h,
                    ],
                    style:
                      e.getItemValue(t) === e.value
                        ? [
                            e.checkedStyle,
                            e.gapStyle,
                            e.widthStyle,
                            e.boxShadowStyle(s),
                            e.buttonStyle,
                          ]
                        : [
                            e.uncheckedStyle,
                            e.gapStyle,
                            e.widthStyle,
                            e.buttonStyle,
                          ],
                    on: {
                      mouseenter: function (i) {
                        e.mouseenter(e.getItemValue(t) !== e.value, i);
                      },
                      mouseleave: function (i) {
                        e.mouseleave(e.getItemValue(t) !== e.value, i);
                      },
                      click: function (i) {
                        e.handleClick(e.getItemValue(t));
                      },
                    },
                  },
                  [
                    e.iconField
                      ? i("i", {
                          class: t[e.iconField],
                          staticStyle: { "font-size": "16px" },
                        })
                      : e._e(),
                    e._v("\n      " + e._s(e.getItemText(t)) + "\n      "),
                    e._t("default", null, { item: t }),
                  ],
                  2
                );
              }),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
            ],
            2
          );
        },
        n = [],
        o = {
          name: "ButtonBar",
          props: {
            value: [String, Number],
            options: Array,
            labelField: { type: String, default: "label" },
            valueField: { type: String, default: "value" },
            iconField: { type: String, default: null },
            mode: { type: String, default: "button" },
            gap: { type: Number, default: 0 },
            widthIsSet: { type: Boolean, default: !0 },
            vertical: { type: Boolean, default: !1 },
            padding: { type: String, default: "0 10px" },
            borderColor: { type: String, default: $_theme.border_color_dark },
            disabled: Boolean,
            height: { type: Number, default: $_theme.inputHeight },
            beforeChange: Function,
            buttonStyle: { default: null },
          },
          _single: null,
          data() {
            return { groupName: window.$_uuid("RadioGroup") };
          },
          created() {
            if (
              ((this._single = !1), null != this.options && this.options.length)
            ) {
              let e = typeof this.options[0];
              ("string" != e && "number" != e) || (this._single = !0);
            }
          },
          methods: {
            getItemValue(e) {
              return this._single ? e : e[this.valueField];
            },
            getItemText(e) {
              return this._single ? e : e[this.labelField];
            },
            handleClick(e) {
              if (
                this.value !== e &&
                (!this.beforeChange || !1 !== this.beforeChange(e, this.value))
              ) {
                let t = this.value;
                this.$emit("input", e), this.$emit("change", e, t);
              }
              this.$emit("click", e);
            },
            mouseenter(e, t) {
              e && (t.target.style.color = this.theme.color);
            },
            mouseleave(e, t) {
              e && (t.target.style.color = "");
            },
            boxShadowStyle(e) {
              return "underline" == this.mode
                ? null
                : {
                    boxShadow: `${this.vertical || 0 == e ? "0" : "-1px"} ${
                      this.vertical && 0 != e ? "-1px" : "0"
                    } 0 0 ${this.theme.color}`,
                  };
            },
          },
          computed: {
            containerStyle() {
              return this.vertical
                ? { flexFlow: "column" }
                : {
                    height: this.height + "px",
                    lineHeight: this.height + "px",
                  };
            },
            checkedStyle() {
              return "underline" == this.mode
                ? {
                    color: this.theme.color,
                    borderBottomWidth: "2px",
                    borderBottomStyle: "solid",
                    borderBottomColor: this.theme.color,
                  }
                : {
                    backgroundColor: this.theme.color,
                    borderColor: this.theme.color,
                    color: "#fff",
                  };
            },
            uncheckedStyle() {
              return "underline" == this.mode
                ? null
                : { backgroundColor: "#fff", borderColor: this.borderColor };
            },
            gapStyle() {
              return this.gap <= 0
                ? { padding: this.padding }
                : {
                    borderLeftWidth: "1px",
                    marginRight: this.gap + "px",
                    padding: this.padding,
                  };
            },
            widthStyle() {
              return this.widthIsSet ? { width: "100%" } : null;
            },
          },
        },
        r = o,
        l = i("5742"),
        a = i("2877");
      function h(e) {
        this["$style"] = l["default"].locals || l["default"];
      }
      var c = Object(a["a"])(r, s, n, !1, h, null, null);
      t["a"] = c.exports;
    },
    "3e88": function (e, t, i) {
      "use strict";
      var s = i("6eef"),
        n = i.n(s);
      n.a;
    },
    "4a66": function (e, t, i) {
      "use strict";
      var s = i("2b0e"),
        n = i("7319");
      function o(e, t, i) {
        (t = t || document.body),
          "string" === typeof t &&
            (t = document.getElementById(t) || document.body);
        let s = Object(n["b"])(t),
          o = s.left,
          r = s.top,
          l = t.offsetWidth,
          a = t.offsetHeight,
          h = e.$el.clientWidth,
          c = e.$el.clientHeight;
        if (
          ((o = Math.max(0, o + (l - h) / 2)),
          (r = Math.max(0, r + (a - c) / 3)),
          (e.$el.style.top = r + "px"),
          (e.$el.style.left = o + "px"),
          (e.$el.style["z-index"] = window.$_theme.zindex()),
          i)
        )
          for (let n in i) e.$el.style[n] = i[n];
      }
      t["a"] = {
        open: function (e, t, i) {
          let n =
              arguments.length > 3 && void 0 !== arguments[3]
                ? arguments[3]
                : null,
            r =
              arguments.length > 4 && void 0 !== arguments[4]
                ? arguments[4]
                : null,
            l = arguments.length > 5 ? arguments[5] : void 0,
            a = arguments.length > 6 ? arguments[6] : void 0,
            h = s["a"].extend(e),
            c = new h({ data: t || null, propsData: a || null });
          n && n(c);
          let d = document.createElement("div");
          return (
            l ? l.appendChild(d) : document.body.appendChild(d),
            c.$mount(d),
            o(c, i, r),
            c
          );
        },
        position: (e, t, i) => {
          o(e, t, i);
        },
      };
    },
    "4cda": function (e, t, i) {
      e.exports = {
        container: "Window_container_2MYCb",
        fullScreen: "Window_fullScreen_3nxbU",
        title: "Window_title_17nFY",
        closebtn: "Window_closebtn_3ravb",
        fullScreenbtn: "Window_fullScreenbtn_38xSC",
        header: "Window_header_1r3Ke",
        footer: "Window_footer_PRMYT",
        modal: "Window_modal_305nc",
        waiting: "Window_waiting_1ccAc",
      };
    },
    "4d00": function (e, t, i) {
      "use strict";
      var s = i("b1b2"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "53b0": function (e, t, i) {
      "use strict";
      i.d(t, "a", function () {
        return s;
      }),
        i.d(t, "b", function () {
          return n;
        }),
        i.d(t, "c", function () {
          return r;
        });
      i("55dd");
      function s(e, t, i) {
        if (!e) return null;
        for (let s = 0, n = e.length; s < n; s++)
          if (e[s][t] === i) return e[s];
        return null;
      }
      function n(e) {
        let t =
            arguments.length > 1 && void 0 !== arguments[1]
              ? arguments[1]
              : null,
          i =
            !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
        return e && 0 != e.length
          ? e.sort((e, s) => {
              return (i ? 1 : -1) * r(e, s, t);
            })
          : e;
      }
      let o = {
        零: 10,
        一: 11,
        二: 12,
        三: 13,
        四: 14,
        五: 15,
        六: 16,
        七: 17,
        八: 18,
        九: 19,
        十: 20,
      };
      function r(e, t) {
        let i =
          arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;
        if (null === e || void 0 == e) return -1;
        if (null === t || void 0 == t) return 1;
        if (((e = i ? e[i] : e), (t = i ? t[i] : t), e == t)) return 0;
        if (null === e || void 0 == e) return -1;
        if (null === t || void 0 == t) return 1;
        let s = !isNaN(e),
          n = !isNaN(t);
        if (((e = String(e)), (t = String(t)), s || n))
          return s && n
            ? e.length > t.length
              ? 1
              : e.length < t.length
              ? -1
              : Number(e) > Number(t)
              ? 1
              : -1
            : s
            ? -1
            : 1;
        for (
          let l, a, h, c, d = 0, u = Math.min(e.length, t.length);
          d < u;
          d++
        )
          if (((l = e.charAt(d)), (a = t.charAt(d)), l != a))
            return (
              (h = o[l] || Number(l)),
              (c = o[a] || Number(a)),
              isNaN(h) || isNaN(c) ? l.localeCompare(a, "zh") : h > c ? 1 : -1
            );
        let r = e.length - t.length;
        return 0 == r ? 0 : r > 0 ? 1 : -1;
      }
    },
    "568c": function (e, t, i) {
      e.exports = {
        layout: "VideoRealPlay_layout_2h5tk",
        videos: "VideoRealPlay_videos_1frY1",
        toolbar: "VideoRealPlay_toolbar_1dwqf",
      };
    },
    5742: function (e, t, i) {
      "use strict";
      var s = i("e58f"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "58a7": function (e, t, i) {
      "use strict";
      var s = i("2707"),
        n = i.n(s);
      t["default"] = n.a;
    },
    5916: function (e, t, i) {
      e.exports = {
        container: "RealVideoPlayer_container_3pUZp",
        bar: "RealVideoPlayer_bar_2UdJY",
        border_top: "RealVideoPlayer_border_top_1I_In",
        border_bottom: "RealVideoPlayer_border_bottom_2NaQf",
        border_left: "RealVideoPlayer_border_left_3HpXB",
        border_right: "RealVideoPlayer_border_right_3AwPj",
        reverse: "RealVideoPlayer_reverse_2VvbS",
      };
    },
    "63b4": function (e, t, i) {
      "use strict";
      var s = i("9647"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "64fd": function (e, t, i) {
      "use strict";
      var s = i("c695"),
        n = i.n(s);
      i("6b54");
      const o = "vxe-icon--";
      var r = {
        size: null,
        zIndex: 100,
        version: 0,
        emptyCell: "　",
        table: {
          fit: !0,
          showHeader: !0,
          delayHover: 250,
          showOverflow: "tooltip",
          showHeaderOverflow: "tooltip",
          highlightHoverRow: !0,
          highlightCurrentRow: !0,
          size: "mini",
          resizable: !0,
          stripe: !0,
          border: !0,
          checkboxConfig: { strict: !0 },
          validConfig: { showMessage: !0, message: "default" },
          sortConfig: { showIcon: !0 },
          filterConfig: { showIcon: !0 },
          treeConfig: {
            children: "children",
            hasChild: "hasChild",
            indent: 20,
            showIcon: !0,
          },
          expandConfig: { showIcon: !0 },
          editConfig: { showIcon: !0, showAsterisk: !0 },
          importConfig: { modes: ["insert", "covering"] },
          exportConfig: { modes: ["current", "selected"] },
          printConfig: { modes: ["current", "selected"] },
          mouseConfig: { extension: !0 },
          areaConfig: { selectCellByHeader: !0 },
          clipConfig: { isCopy: !0, isCut: !0, isPaste: !0 },
          fnrConfig: { isFind: !0, isReplace: !0 },
          scrollX: { enabled: !0, gt: 60 },
          scrollY: { enabled: !0, gt: 100 },
        },
        export: { types: {} },
        icon: {
          TABLE_SORT_ASC: o + "caret-top",
          TABLE_SORT_DESC: o + "caret-bottom",
          TABLE_FILTER_NONE: o + "funnel",
          TABLE_FILTER_MATCH: o + "funnel",
          TABLE_EDIT: o + "edit-outline",
          TABLE_HELP: o + "question",
          TABLE_TREE_LOADED: o + "refresh roll",
          TABLE_TREE_OPEN: o + "caret-right rotate90",
          TABLE_TREE_CLOSE: o + "caret-right",
          TABLE_EXPAND_LOADED: o + "refresh roll",
          TABLE_EXPAND_OPEN: o + "arrow-right rotate90",
          TABLE_EXPAND_CLOSE: o + "arrow-right",
          BUTTON_DROPDOWN: o + "arrow-bottom",
          BUTTON_LOADING: o + "refresh roll",
          SELECT_LOADED: o + "refresh roll",
          SELECT_OPEN: o + "caret-bottom rotate180",
          SELECT_CLOSE: o + "caret-bottom",
          PAGER_JUMP_PREV: o + "d-arrow-left",
          PAGER_JUMP_NEXT: o + "d-arrow-right",
          PAGER_PREV_PAGE: o + "arrow-left",
          PAGER_NEXT_PAGE: o + "arrow-right",
          PAGER_JUMP_MORE: o + "more",
          INPUT_CLEAR: o + "close",
          INPUT_PWD: o + "eye-slash",
          INPUT_SHOW_PWD: o + "eye",
          INPUT_PREV_NUM: o + "caret-top",
          INPUT_NEXT_NUM: o + "caret-bottom",
          INPUT_DATE: o + "calendar",
          INPUT_SEARCH: o + "search",
          MODAL_ZOOM_IN: o + "square",
          MODAL_ZOOM_OUT: o + "zoomout",
          MODAL_CLOSE: o + "close",
          MODAL_INFO: o + "info",
          MODAL_SUCCESS: o + "success",
          MODAL_WARNING: o + "warning",
          MODAL_ERROR: o + "error",
          MODAL_QUESTION: o + "question",
          MODAL_LOADING: o + "refresh roll",
          TOOLBAR_TOOLS_REFRESH: o + "refresh",
          TOOLBAR_TOOLS_REFRESH_LOADING: o + "refresh roll",
          TOOLBAR_TOOLS_IMPORT: o + "upload",
          TOOLBAR_TOOLS_EXPORT: o + "download",
          TOOLBAR_TOOLS_PRINT: o + "print",
          TOOLBAR_TOOLS_ZOOM_IN: o + "zoomin",
          TOOLBAR_TOOLS_ZOOM_OUT: o + "zoomout",
          TOOLBAR_TOOLS_CUSTOM: o + "menu",
          FORM_PREFIX: o + "question",
          FORM_SUFFIX: o + "question",
          FORM_FOLDING: o + "arrow-top rotate180",
          FORM_UNFOLDING: o + "arrow-top",
        },
        grid: {
          size: "mini",
          formConfig: { enabled: !0 },
          pagerConfig: { enabled: !0 },
          toolbarConfig: { enabled: !0 },
          proxyConfig: {
            enabled: !0,
            autoLoad: !0,
            message: !0,
            props: {
              list: null,
              result: "result",
              total: "page.total",
              message: "message",
            },
          },
        },
        tooltip: { trigger: "hover", skin: "dark", leaveDelay: 300 },
        pager: {},
        form: {
          validConfig: { showMessage: !0, autoPos: !0 },
          titleAsterisk: !0,
        },
        input: {
          minDate: new Date(1900, 0, 1),
          maxDate: new Date(2100, 0, 1),
          startDay: 1,
          selectDay: 1,
          digits: 2,
          controls: !0,
        },
        textarea: {},
        select: { multiCharOverflow: 8 },
        toolbar: {},
        button: {},
        radio: {},
        checkbox: {},
        switch: {},
        modal: {
          top: 15,
          showHeader: !0,
          minWidth: 340,
          minHeight: 140,
          lockView: !0,
          mask: !0,
          duration: 3e3,
          marginSize: 0,
          dblclickZoom: !0,
          showTitleOverflow: !0,
          animat: !0,
          showClose: !0,
          storageKey: "VXE_MODAL_POSITION",
        },
        list: { scrollY: { enabled: !0, gt: 100 } },
        i18n: (e) => e,
      };
      i("28a5"), i("a481"), i("ac6a"), i("d263");
      class l {
        constructor() {
          this.store = {};
        }
        mixin(e) {
          return Object.assign(this.store, e), l;
        }
        get(e) {
          return this.store[e];
        }
        add(e, t) {
          return (
            "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV &&
              (n.a.eqNull(this.store[e]) ||
                this.store[e] === t ||
                g.warn("vxe.error.coverProp", [this._name, e])),
            (this.store[e] = t),
            l
          );
        }
        delete(e) {
          return delete this.store[e], l;
        }
      }
      var a = l;
      const h = new a();
      "development" ===
        Object({ NODE_ENV: "production", BASE_URL: "" })
          .VUE_APP_VXE_TABLE_ENV && Object.assign(h, { _name: "Formats" });
      let c = 0,
        d = 1;
      class u {
        constructor(e, t) {
          let i =
              arguments.length > 2 && void 0 !== arguments[2]
                ? arguments[2]
                : {},
            s = i.renderHeader,
            o = i.renderCell,
            r = i.renderFooter,
            l = i.renderData;
          const a = e.$xegrid,
            c = a ? a.proxyOpts : null,
            d = t.formatter,
            u = !n.a.isBoolean(t.visible) || t.visible;
          if (
            "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV
          ) {
            const i = ["seq", "index", "checkbox", "radio", "expand", "html"];
            if (
              (t.type &&
                -1 === i.indexOf(t.type) &&
                g.warn("vxe.error.errProp", [`type=${t.type}`, i.join(", ")]),
              (n.a.isBoolean(t.cellRender) ||
                (t.cellRender && !n.a.isObject(t.cellRender))) &&
                g.warn("vxe.error.errProp", [
                  `column.cell-render=${t.cellRender}`,
                  "column.cell-render={}",
                ]),
              (n.a.isBoolean(t.editRender) ||
                (t.editRender && !n.a.isObject(t.editRender))) &&
                g.warn("vxe.error.errProp", [
                  `column.edit-render=${t.editRender}`,
                  "column.edit-render={}",
                ]),
              t.cellRender &&
                t.editRender &&
                g.warn("vxe.error.errConflicts", [
                  "column.cell-render",
                  "column.edit-render",
                ]),
              "expand" === t.type &&
                e.treeConfig &&
                e.treeOpts.line &&
                g.error("vxe.error.errConflicts", [
                  "tree-config.line",
                  "column.type=expand",
                ]),
              t.remoteSort &&
                g.warn("vxe.error.delProp", [
                  "column.remote-sort",
                  "sort-config.remote",
                ]),
              t.sortMethod &&
                g.warn("vxe.error.delProp", [
                  "column.sort-method",
                  "sort-config.sortMethod",
                ]),
              d)
            )
              if (n.a.isString(d)) {
                const e = h.get(d) || n.a[d];
                n.a.isFunction(e) || g.error("vxe.error.notFunc", [d]);
              } else if (n.a.isArray(d)) {
                const e = h.get(d[0]) || n.a[d[0]];
                n.a.isFunction(e) || g.error("vxe.error.notFunc", [d[0]]);
              }
          }
          Object.assign(this, {
            type: t.type,
            property: t.field,
            title: t.title,
            width: t.width,
            minWidth: t.minWidth,
            resizable: t.resizable,
            fixed: t.fixed,
            align: t.align,
            headerAlign: t.headerAlign,
            footerAlign: t.footerAlign,
            showOverflow: t.showOverflow,
            showHeaderOverflow: t.showHeaderOverflow,
            showFooterOverflow: t.showFooterOverflow,
            className: t.className,
            headerClassName: t.headerClassName,
            footerClassName: t.footerClassName,
            formatter: d,
            sortable: t.sortable,
            sortBy: t.sortBy,
            sortType: t.sortType,
            sortMethod: t.sortMethod,
            remoteSort: t.remoteSort,
            sortByFormatter: t.sortByFormatter,
            filters: g.getFilters(t.filters),
            filterMultiple:
              !n.a.isBoolean(t.filterMultiple) || t.filterMultiple,
            filterMethod: t.filterMethod,
            filterResetMethod: t.filterResetMethod,
            filterRecoverMethod: t.filterRecoverMethod,
            filterRender: t.filterRender,
            treeNode: t.treeNode,
            cellType: t.cellType,
            cellRender: t.cellRender,
            editRender: t.editRender,
            contentRender: t.contentRender,
            exportMethod: t.exportMethod,
            footerExportMethod: t.footerExportMethod,
            titleHelp: t.titleHelp,
            params: t.params,
            id: t.colId || n.a.uniqueId("col_"),
            parentId: null,
            visible: u,
            halfVisible: !1,
            defaultVisible: u,
            checked: !1,
            halfChecked: !1,
            disabled: !1,
            level: 1,
            rowSpan: 1,
            colSpan: 1,
            order: null,
            sortTime: 0,
            renderWidth: 0,
            renderHeight: 0,
            resizeWidth: 0,
            renderLeft: 0,
            renderArgs: [],
            model: {},
            renderHeader: s || t.renderHeader,
            renderCell: o || t.renderCell,
            renderFooter: r || t.renderFooter,
            renderData: l,
            slots: t.slots,
          }),
            c && c.beforeColumn && c.beforeColumn({ $grid: a, column: this });
        }
        getTitle() {
          return g.getFuncText(
            this.title ||
              ("seq" === this.type || "index" === this.type
                ? r.i18n("vxe.table.seqTitle")
                : "")
          );
        }
        getKey() {
          return this.property || (this.type ? `type=${this.type}` : null);
        }
        update(e, t) {
          "filters" !== e &&
            ("field" === e ? (this.property = t) : (this[e] = t));
        }
      }
      function p(e) {
        return e && !1 !== e.enabled;
      }
      function f(e) {
        return function (t, i) {
          const s = g.getLog(t, i);
          return console[e](s), s;
        };
      }
      function m(e) {
        return "" === e || n.a.eqNull(e);
      }
      const g = {
        warn: f("warn"),
        error: f("error"),
        getLog(e, t) {
          return `[vxe-table] ${r.i18n(e, t)}`;
        },
        getFuncText(e) {
          return n.a.isFunction(e) ? e() : r.translate ? r.translate(e) : e;
        },
        nextZIndex() {
          return (d = r.zIndex + c++), d;
        },
        getLastZIndex() {
          return d;
        },
        getRowkey(e) {
          return e.rowId || "_XID";
        },
        getRowid(e, t) {
          const i = n.a.get(t, g.getRowkey(e));
          return i ? encodeURIComponent(i) : "";
        },
        getColumnList(e) {
          const t = [];
          return (
            e.forEach((e) => {
              t.push(
                ...(e.children && e.children.length
                  ? g.getColumnList(e.children)
                  : [e])
              );
            }),
            t
          );
        },
        getClass(e, t) {
          return e ? (n.a.isFunction(e) ? e(t) : e) : "";
        },
        getFilters(e) {
          return e && n.a.isArray(e)
            ? e.map((e) => {
                let t = e.label,
                  i = e.value,
                  s = e.data,
                  n = e.resetValue,
                  o = e.checked;
                return {
                  label: t,
                  value: i,
                  data: s,
                  resetValue: n,
                  checked: !!o,
                  _checked: !!o,
                };
              })
            : e;
        },
        formatText(e, t) {
          return (
            "" +
            ("" === e || null === e || void 0 === e
              ? t
                ? r.emptyCell
                : ""
              : e)
          );
        },
        getCellValue(e, t) {
          return n.a.get(e, t.property);
        },
        setCellValue(e, t, i) {
          return n.a.set(e, t.property, i);
        },
        isColumn(e) {
          return e instanceof u;
        },
        getColumnConfig(e, t, i) {
          return g.isColumn(t) ? t : new u(e, t, i);
        },
        assemColumn(e) {
          const t = e.$el,
            i = e.$xetable,
            s = e.$xecolumn,
            n = e.columnConfig,
            o = s ? s.columnConfig : null;
          (n.slots = e.$scopedSlots),
            o
              ? ("development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  ("vxe-table-column" === s.$options._componentTag
                    ? g.error("vxe.error.groupTag", [
                        `<vxe-table-colgroup title=${s.title} ...>`,
                        `<vxe-table-column title=${s.title} ...>`,
                      ])
                    : "vxe-column" === s.$options._componentTag &&
                      g.warn("vxe.error.groupTag", [
                        `<vxe-colgroup title=${s.title} ...>`,
                        `<vxe-column title=${s.title} ...>`,
                      ])),
                o.children || (o.children = []),
                o.children.splice([].indexOf.call(s.$el.children, t), 0, n))
              : i.staticColumns.splice(
                  [].indexOf.call(i.$refs.hideColumn.children, t),
                  0,
                  n
                );
        },
        destroyColumn(e) {
          const t = e.$xetable,
            i = e.columnConfig,
            s = n.a.findTree(t.staticColumns, (e) => e === i);
          s && s.items.splice(s.index, 1);
        },
        hasChildrenList(e) {
          return e && e.children && e.children.length > 0;
        },
        parseFile(e) {
          const t = e.name,
            i = n.a.lastIndexOf(t, "."),
            s = t.substring(i + 1, t.length),
            o = t.substring(0, i);
          return { filename: o, type: s };
        },
        isNumVal(e) {
          return !isNaN(parseFloat("" + e));
        },
      };
      var v = g;
      i("4917"), i("3b2b");
      const _ = v.getRowid,
        b = n.a.browse(),
        y = {};
      function x(e) {
        return y[e] || (y[e] = new RegExp(`(?:^|\\s)${e}(?!\\S)`, "g")), y[e];
      }
      function w(e, t, i) {
        if (e) {
          const s = e.parentNode;
          if (
            ((i.top += e.offsetTop),
            (i.left += e.offsetLeft),
            s &&
              s !== document.documentElement &&
              s !== document.body &&
              ((i.top -= s.scrollTop), (i.left -= s.scrollLeft)),
            (!t || (e !== t && e.offsetParent !== t)) && e.offsetParent)
          )
            return w(e.offsetParent, t, i);
        }
        return i;
      }
      function S(e) {
        return e && /^\d+%$/.test(e);
      }
      function E(e, t) {
        return e && e.className && e.className.match && e.className.match(x(t));
      }
      function k(e, t) {
        e && E(e, t) && (e.className = e.className.replace(x(t), ""));
      }
      function C() {
        const e = document.documentElement,
          t = document.body;
        return {
          scrollTop: e.scrollTop || t.scrollTop,
          scrollLeft: e.scrollLeft || t.scrollLeft,
          visibleHeight: e.clientHeight || t.clientHeight,
          visibleWidth: e.clientWidth || t.clientWidth,
        };
      }
      function T(e) {
        return e ? e.offsetHeight : 0;
      }
      function O(e) {
        if (e) {
          const t = getComputedStyle(e),
            i = n.a.toNumber(t.paddingTop),
            s = n.a.toNumber(t.paddingBottom);
          return i + s;
        }
        return 0;
      }
      function $(e, t) {
        e && (e.scrollTop = t);
      }
      function R(e, t) {
        e && (e.scrollLeft = t);
      }
      const A = {
        browse: b,
        isPx(e) {
          return e && /^\d+(px)?$/.test(e);
        },
        isScale: S,
        hasClass: E,
        removeClass: k,
        addClass(e, t) {
          e && !E(e, t) && (k(e, t), (e.className = `${e.className} ${t}`));
        },
        updateCellTitle(e, t) {
          const i = "html" === t.type ? e.innerText : e.textContent;
          e.getAttribute("title") !== i && e.setAttribute("title", i);
        },
        rowToVisible(e, t) {
          const i = e.$refs.tableBody.$el,
            s = i.querySelector(`[rowid="${_(e, t)}"]`);
          if (s) {
            const t = i.clientHeight,
              n = i.scrollTop,
              o = s.offsetTop + (s.offsetParent ? s.offsetParent.offsetTop : 0),
              r = s.clientHeight;
            if (o < n || o > n + t) return e.scrollTo(null, o);
            if (o + r >= t + n) return e.scrollTo(null, n + r);
          } else if (e.scrollYLoad)
            return e.scrollTo(
              null,
              (e.afterFullData.indexOf(t) - 1) * e.scrollYStore.rowHeight
            );
          return Promise.resolve();
        },
        colToVisible(e, t) {
          const i = e.$refs.tableBody.$el,
            s = i.querySelector(`.${t.id}`);
          if (s) {
            const t = i.clientWidth,
              n = i.scrollLeft,
              o =
                s.offsetLeft + (s.offsetParent ? s.offsetParent.offsetLeft : 0),
              r = s.clientWidth;
            if (o < n || o > n + t) return e.scrollTo(o);
            if (o + r >= t + n) return e.scrollTo(n + r);
          } else if (e.scrollXLoad) {
            const i = e.visibleColumn;
            let s = 0;
            for (let e = 0; e < i.length; e++) {
              if (i[e] === t) break;
              s += i[e].renderWidth;
            }
            return e.scrollTo(s);
          }
          return Promise.resolve();
        },
        getDomNode: C,
        getEventTargetNode(e, t, i, s) {
          let n,
            o = e.target;
          while (o && o.nodeType && o !== document) {
            if (i && E(o, i) && (!s || s(o))) n = o;
            else if (o === t)
              return { flag: !i || !!n, container: t, targetElem: n };
            o = o.parentNode;
          }
          return { flag: !1 };
        },
        getOffsetPos(e, t) {
          return w(e, t, { left: 0, top: 0 });
        },
        getAbsolutePos(e) {
          const t = e.getBoundingClientRect(),
            i = t.top,
            s = t.left,
            n = C(),
            o = n.scrollTop,
            r = n.scrollLeft,
            l = n.visibleHeight,
            a = n.visibleWidth;
          return {
            boundingTop: i,
            top: o + i,
            boundingLeft: s,
            left: r + s,
            visibleHeight: l,
            visibleWidth: a,
          };
        },
        scrollToView(e) {
          const t = "scrollIntoViewIfNeeded",
            i = "scrollIntoView";
          e && (e[t] ? e[t]() : e[i] && e[i]());
        },
        triggerEvent(e, t) {
          let i;
          "function" === typeof Event
            ? (i = new Event(t))
            : ((i = document.createEvent("Event")), i.initEvent(t, !0, !0)),
            e.dispatchEvent(i);
        },
        calcHeight(e, t) {
          const i = e[t];
          let s = 0;
          if (i)
            if ("auto" === i) s = e.parentHeight;
            else {
              const t = e.getExcludeHeight();
              (s = S(i)
                ? Math.floor(((n.a.toInteger(i) || 1) / 100) * e.parentHeight)
                : n.a.toNumber(i)),
                (s = Math.max(40, s - t));
            }
          return s;
        },
      };
      const L = {
          F2: "F2",
          ESCAPE: "Escape",
          ENTER: "Enter",
          TAB: "Tab",
          DELETE: "Delete",
          BACKSPACE: "Backspace",
          SPACEBAR: " ",
          CONTEXT_MENU: "ContextMenu",
          ARROW_UP: "ArrowUp",
          ARROW_DOWN: "ArrowDown",
          ARROW_LEFT: "ArrowLeft",
          ARROW_RIGHT: "ArrowRight",
          PAGE_UP: "PageUp",
          PAGE_DOWN: "PageDown",
        },
        D =
          (L.CONTEXT_MENU,
          L.DELETE,
          L.ARROW_UP,
          L.ARROW_DOWN,
          L.ARROW_LEFT,
          L.ARROW_RIGHT,
          b.firefox ? "DOMMouseScroll" : "mousewheel"),
        I = [],
        M = {
          on(e, t, i) {
            i && I.push({ comp: e, type: t, cb: i });
          },
          off(e, t) {
            n.a.remove(I, (i) => i.comp === e && i.type === t);
          },
          trigger(e) {
            const t = e.type === D;
            I.forEach((i) => {
              let s = i.comp,
                n = i.type,
                o = i.cb;
              e.cancelBubble ||
                ((n === e.type || (t && "mousewheel" === n)) && o.call(s, e));
            });
          },
          eqKeypad(e, t) {
            const i = e.key;
            return t.toLowerCase() === i.toLowerCase();
          },
        };
      b.isDoc &&
        (b.msie ||
          (document.addEventListener("copy", M.trigger, !1),
          document.addEventListener("cut", M.trigger, !1),
          document.addEventListener("paste", M.trigger, !1)),
        document.addEventListener("keydown", M.trigger, !1),
        document.addEventListener("contextmenu", M.trigger, !1),
        window.addEventListener("mousedown", M.trigger, !1),
        window.addEventListener("blur", M.trigger, !1),
        window.addEventListener("resize", M.trigger, !1),
        window.addEventListener(
          D,
          n.a.throttle(M.trigger, 100, { leading: !0, trailing: !1 }),
          !1
        ));
      let P;
      const N = [],
        B = 500;
      function F() {
        N.length &&
          (N.forEach((e) => {
            e.tarList.forEach((t) => {
              const i = t.target,
                s = t.width,
                n = t.heighe,
                o = i.clientWidth,
                r = i.clientHeight,
                l = o && s !== o,
                a = r && n !== r;
              (l || a) &&
                ((t.width = o), (t.heighe = r), setTimeout(e.callback));
            });
          }),
          V());
      }
      function V() {
        clearTimeout(P), (P = setTimeout(F, r.resizeInterval || B));
      }
      class z {
        constructor(e) {
          (this.tarList = []), (this.callback = e);
        }
        observe(e) {
          e &&
            (this.tarList.some((t) => t.target === e) ||
              this.tarList.push({
                target: e,
                width: e.clientWidth,
                heighe: e.clientHeight,
              }),
            N.length || V(),
            N.some((e) => e === this) || N.push(this));
        }
        unobserve(e) {
          n.a.remove(N, (t) => t.tarList.some((t) => t.target === e));
        }
        disconnect() {
          n.a.remove(N, (e) => e === this);
        }
      }
      function j(e) {
        return window.ResizeObserver ? new window.ResizeObserver(e) : new z(e);
      }
      function H(e) {
        return n.a.toString(e).replace("_", "").toLowerCase();
      }
      const U =
          "created,mounted,activated,beforeDestroy,destroyed,event.clearActived,event.clearFilter,event.clearAreas,event.showMenu,event.keydown,event.export,event.import"
            .split(",")
            .map(H),
        W = {},
        G = {
          mixin(e) {
            return n.a.each(e, (e, t) => G.add(t, e)), G;
          },
          get(e) {
            return W[H(e)] || [];
          },
          add(e, t) {
            if (
              ((e = H(e)),
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                -1 === U.indexOf(e) &&
                g.warn("vxe.error.errProp", [`Interceptor.${e}`, U.join("|")]),
              t && U.indexOf(e) > -1)
            ) {
              let i = W[e];
              i || (i = W[e] = []),
                "development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  i.indexOf(t) > -1 &&
                  g.warn("vxe.error.coverProp", ["Interceptor", e]),
                i.push(t);
            }
            return G;
          },
          delete(e, t) {
            const i = W[H(e)];
            return i && n.a.remove(i, (e) => e === t), G;
          },
        },
        Z = { transfer: !0 },
        Y = "value";
      function q(e) {
        return null === e || void 0 === e || "" === e;
      }
      function X(e) {
        switch (e.name) {
          case "input":
          case "textarea":
          case "$input":
          case "$textarea":
            return "input";
        }
        return "change";
      }
      function K(e, t) {
        return e && t.valueFormat ? n.a.toStringDate(e, t.valueFormat) : e;
      }
      function J(e, t, i) {
        const s = t.dateConfig,
          o = void 0 === s ? {} : s;
        return n.a.toDateString(K(e, t), o.labelFormat || i);
      }
      function Q(e, t) {
        return J(e, t, r.i18n(`vxe.input.date.labelFormat.${t.type}`));
      }
      function ee(e) {
        let t = e.name;
        return `vxe-${t.replace("$", "")}`;
      }
      function te(e, t, i) {
        const s = e.$panel;
        s.changeOption({}, t, i);
      }
      function ie(e) {
        let t = e.name,
          i = e.attrs;
        return "input" === t && (i = Object.assign({ type: "text" }, i)), i;
      }
      function se(e) {
        const t = e.name,
          i = e.immediate,
          s = e.props;
        if (!i) {
          if ("$input" === t) {
            const e = s || {},
              t = e.type;
            return !(
              !t ||
              "text" === t ||
              "number" === t ||
              "integer" === t ||
              "float" === t
            );
          }
          return "input" !== t && "textarea" !== t && "$textarea" !== t;
        }
        return i;
      }
      function ne(e, t) {
        return "cell" === t.$type || se(e);
      }
      function oe(e, t, i, s) {
        const o = t.$table.vSize;
        return n.a.assign(
          { immediate: se(e) },
          o ? { size: o } : {},
          Z,
          s,
          e.props,
          { [Y]: i }
        );
      }
      function re(e, t, i, s) {
        const o = t.$table.vSize;
        return n.a.assign(o ? { size: o } : {}, Z, s, e.props, { [Y]: i });
      }
      function le(e, t, i, s) {
        const o = t.$form.vSize;
        return n.a.assign(o ? { size: o } : {}, Z, s, e.props, { [Y]: i });
      }
      function ae(e, t, i, s) {
        const n = t.placeholder;
        return [
          e(
            "span",
            { class: "vxe-cell--label" },
            n && q(s)
              ? [
                  e(
                    "span",
                    { class: "vxe-cell--placeholder" },
                    g.formatText(g.getFuncText(n), 1)
                  ),
                ]
              : g.formatText(s, 1)
          ),
        ];
      }
      function he(e, t) {
        const i = e.nativeEvents,
          s = {};
        return (
          n.a.objectEach(i, (e, i) => {
            s[i] = function () {
              for (
                var i = arguments.length, s = new Array(i), n = 0;
                n < i;
                n++
              )
                s[n] = arguments[n];
              e(t, ...s);
            };
          }),
          s
        );
      }
      function ce(e, t, i, s) {
        const o = e.name,
          r = e.events,
          l = "input",
          a = X(e),
          h = a === l,
          c = {};
        return (
          n.a.objectEach(r, (e, i) => {
            c[i] = function () {
              for (
                var i = arguments.length, s = new Array(i), n = 0;
                n < i;
                n++
              )
                s[n] = arguments[n];
              e(t, ...s);
            };
          }),
          i &&
            (c[l] = function (e) {
              i("$input" === o || "$textarea" === o ? e.value : e),
                r && r[l] && r[l](t, e),
                h && s && s(e);
            }),
          !h &&
            s &&
            (c[a] = function () {
              for (
                var e = arguments.length, i = new Array(e), n = 0;
                n < e;
                n++
              )
                i[n] = arguments[n];
              s(...i), r && r[a] && r[a](t, ...i);
            }),
          c
        );
      }
      function de(e, t) {
        const i = t.$table,
          s = t.row,
          n = t.column,
          o = e.name,
          r = n.model,
          l = ne(e, t);
        return ce(
          e,
          t,
          (e) => {
            l ? g.setCellValue(s, n, e) : ((r.update = !0), (r.value = e));
          },
          (e) => {
            l || ("$input" !== o && "$textarea" !== o)
              ? i.updateStatus(t)
              : i.updateStatus(t, e.value);
          }
        );
      }
      function ue(e, t, i) {
        return ce(
          e,
          t,
          (e) => {
            i.data = e;
          },
          () => {
            te(t, !n.a.eqNull(i.data), i);
          }
        );
      }
      function pe(e, t) {
        const i = t.$form,
          s = t.data,
          o = t.property;
        return ce(
          e,
          t,
          (e) => {
            n.a.set(s, o, e);
          },
          () => {
            i.updateStatus(t);
          }
        );
      }
      function fe(e, t) {
        const i = t.$table,
          s = t.row,
          n = t.column,
          o = n.model;
        return ce(
          e,
          t,
          (i) => {
            const r = i.target.value;
            ne(e, t)
              ? g.setCellValue(s, n, r)
              : ((o.update = !0), (o.value = r));
          },
          (e) => {
            const s = e.target.value;
            i.updateStatus(t, s);
          }
        );
      }
      function me(e, t, i) {
        return ce(
          e,
          t,
          (e) => {
            i.data = e.target.value;
          },
          () => {
            te(t, !n.a.eqNull(i.data), i);
          }
        );
      }
      function ge(e, t) {
        const i = t.$form,
          s = t.data,
          o = t.property;
        return ce(
          e,
          t,
          (e) => {
            const t = e.target.value;
            n.a.set(s, o, t);
          },
          () => {
            i.updateStatus(t);
          }
        );
      }
      function ve(e, t, i) {
        const s = i.row,
          n = i.column,
          o = t.name,
          r = ie(t),
          l = ne(t, i) ? g.getCellValue(s, n) : n.model.value;
        return [
          e(o, {
            class: `vxe-default-${o}`,
            attrs: r,
            domProps: { value: l },
            on: fe(t, i),
          }),
        ];
      }
      function _e(e, t, i) {
        const s = i.row,
          n = i.column,
          o = g.getCellValue(s, n);
        return [
          e(ee(t), { props: oe(t, i, o), on: de(t, i), nativeOn: he(t, i) }),
        ];
      }
      function be(e, t, i) {
        return [
          e("vxe-button", {
            props: oe(t, i),
            on: ce(t, i),
            nativeOn: he(t, i),
          }),
        ];
      }
      function ye(e, t, i) {
        return t.children.map((t) => be(e, t, i)[0]);
      }
      function xe(e, t, i, s) {
        const n = t.optionGroups,
          o = t.optionGroupProps,
          r = void 0 === o ? {} : o,
          l = r.options || "options",
          a = r.label || "label";
        return n.map((n, o) => {
          return e(
            "optgroup",
            { key: o, domProps: { label: n[a] } },
            s(e, n[l], t, i)
          );
        });
      }
      function we(e, t, i, s) {
        const n = i.optionProps,
          o = void 0 === n ? {} : n,
          r = s.row,
          l = s.column,
          a = o.label || "label",
          h = o.value || "value",
          c = o.disabled || "disabled",
          d = ne(i, s) ? g.getCellValue(r, l) : l.model.value;
        return t.map((t, i) => {
          return e(
            "option",
            {
              key: i,
              attrs: { value: t[h], disabled: t[c] },
              domProps: { selected: t[h] == d },
            },
            t[a]
          );
        });
      }
      function Se(e, t, i) {
        const s = i.column,
          n = t.name,
          o = ie(t);
        return s.filters.map((s, r) => {
          return e(n, {
            key: r,
            class: `vxe-default-${n}`,
            attrs: o,
            domProps: { value: s.data },
            on: me(t, i, s),
          });
        });
      }
      function Ee(e, t, i) {
        const s = i.column;
        return s.filters.map((s, n) => {
          const o = s.data;
          return e(ee(t), { key: n, props: re(t, t, o), on: ue(t, i, s) });
        });
      }
      function ke(e) {
        let t = e.option,
          i = e.row,
          s = e.column;
        const o = t.data,
          r = n.a.get(i, s.property);
        return r == o;
      }
      function Ce(e, t, i) {
        return [
          e(
            "select",
            { class: "vxe-default-select", attrs: ie(t), on: fe(t, i) },
            t.optionGroups ? xe(e, t, i, we) : we(e, t.options, t, i)
          ),
        ];
      }
      function Te(e, t, i) {
        const s = i.row,
          n = i.column,
          o = t.options,
          r = t.optionProps,
          l = t.optionGroups,
          a = t.optionGroupProps,
          h = g.getCellValue(s, n);
        return [
          e(ee(t), {
            props: oe(t, i, h, {
              options: o,
              optionProps: r,
              optionGroups: l,
              optionGroupProps: a,
            }),
            on: de(t, i),
          }),
        ];
      }
      function Oe(e, t) {
        let i = t.row,
          s = t.column;
        const o = e.props,
          r = void 0 === o ? {} : o,
          l = e.options,
          a = e.optionGroups,
          h = e.optionProps,
          c = void 0 === h ? {} : h,
          d = e.optionGroupProps,
          u = void 0 === d ? {} : d,
          p = n.a.get(i, s.property);
        let f;
        const m = c.label || "label",
          g = c.value || "value";
        return q(p)
          ? null
          : n.a
              .map(
                r.multiple ? p : [p],
                a
                  ? (e) => {
                      const t = u.options || "options";
                      for (let i = 0; i < a.length; i++)
                        if (((f = n.a.find(a[i][t], (t) => t[g] == e)), f))
                          break;
                      return f ? f[m] : e;
                    }
                  : (e) => {
                      return (f = n.a.find(l, (t) => t[g] == e)), f ? f[m] : e;
                    }
              )
              .join(", ");
      }
      function $e(e, t, i) {
        const s = i.data,
          o = i.property,
          r = t.name,
          l = ie(t),
          a = n.a.get(s, o);
        return [
          e(r, {
            class: `vxe-default-${r}`,
            attrs: l,
            domProps:
              !l || "input" !== r || ("submit" !== l.type && "reset" !== l.type)
                ? { value: a }
                : null,
            on: ge(t, i),
          }),
        ];
      }
      function Re(e, t, i) {
        const s = i.data,
          o = i.property,
          r = n.a.get(s, o);
        return [
          e(ee(t), { props: le(t, i, r), on: pe(t, i), nativeOn: he(t, i) }),
        ];
      }
      function Ae(e, t, i) {
        return [
          e("vxe-button", {
            props: le(t, i),
            on: ce(t, i),
            nativeOn: he(t, i),
          }),
        ];
      }
      function Le(e, t, i) {
        return t.children.map((t) => Ae(e, t, i)[0]);
      }
      function De(e, t, i, s) {
        const o = s.data,
          r = s.property,
          l = i.optionProps,
          a = void 0 === l ? {} : l,
          h = a.label || "label",
          c = a.value || "value",
          d = a.disabled || "disabled",
          u = n.a.get(o, r);
        return t.map((t, i) => {
          return e(
            "option",
            {
              key: i,
              attrs: { value: t[c], disabled: t[d] },
              domProps: { selected: t[c] == u },
            },
            t[h]
          );
        });
      }
      function Ie(e) {
        const t = e.row,
          i = e.column,
          s = e.options;
        return s.original
          ? g.getCellValue(t, i)
          : Oe(i.editRender || i.cellRender, e);
      }
      function Me(e, t, i) {
        const s = t.options,
          o = t.optionProps,
          r = void 0 === o ? {} : o,
          l = i.data,
          a = i.property,
          h = r.label || "label",
          c = r.value || "value",
          d = r.disabled || "disabled",
          u = n.a.get(l, a),
          p = ee(t);
        return [
          e(
            `${p}-group`,
            { props: le(t, i, u), on: pe(t, i), nativeOn: he(t, i) },
            s.map((t, i) => {
              return e(p, {
                key: i,
                props: { label: t[c], content: t[h], disabled: t[d] },
              });
            })
          ),
        ];
      }
      const Pe = {
          input: {
            autofocus: "input",
            renderEdit: ve,
            renderDefault: ve,
            renderFilter: Se,
            filterMethod: ke,
            renderItemContent: $e,
          },
          textarea: {
            autofocus: "textarea",
            renderEdit: ve,
            renderItemContent: $e,
          },
          select: {
            renderEdit: Ce,
            renderDefault: Ce,
            renderCell(e, t, i) {
              return ae(e, t, i, Oe(t, i));
            },
            renderFilter(e, t, i) {
              const s = i.column;
              return s.filters.map((s, n) => {
                return e(
                  "select",
                  {
                    key: n,
                    class: "vxe-default-select",
                    attrs: ie(t),
                    on: me(t, i, s),
                  },
                  t.optionGroups ? xe(e, t, i, we) : we(e, t.options, t, i)
                );
              });
            },
            filterMethod: ke,
            renderItemContent(e, t, i) {
              return [
                e(
                  "select",
                  { class: "vxe-default-select", attrs: ie(t), on: ge(t, i) },
                  t.optionGroups ? xe(e, t, i, De) : De(e, t.options, t, i)
                ),
              ];
            },
            cellExportMethod: Ie,
          },
          $input: {
            autofocus: ".vxe-input--inner",
            renderEdit: _e,
            renderCell(e, t, i) {
              const s = t.props,
                o = void 0 === s ? {} : s,
                l = i.row,
                a = i.column,
                h = o.digits || r.input.digits;
              let c = n.a.get(l, a.property);
              if (c)
                switch (o.type) {
                  case "date":
                  case "week":
                  case "month":
                  case "year":
                    c = Q(c, o);
                    break;
                  case "float":
                    c = n.a.toFixed(n.a.floor(c, h), h);
                    break;
                }
              return ae(e, t, i, c);
            },
            renderDefault: _e,
            renderFilter: Ee,
            filterMethod: ke,
            renderItemContent: Re,
          },
          $textarea: {
            autofocus: ".vxe-textarea--inner",
            renderItemContent: Re,
          },
          $button: { renderDefault: be, renderItemContent: Ae },
          $buttons: { renderDefault: ye, renderItemContent: Le },
          $select: {
            autofocus: ".vxe-input--inner",
            renderEdit: Te,
            renderDefault: Te,
            renderCell(e, t, i) {
              return ae(e, t, i, Oe(t, i));
            },
            renderFilter(e, t, i) {
              const s = i.column,
                n = t.options,
                o = t.optionProps,
                r = t.optionGroups,
                l = t.optionGroupProps,
                a = he(t, i);
              return s.filters.map((s, h) => {
                const c = s.data;
                return e(ee(t), {
                  key: h,
                  props: re(t, i, c, {
                    options: n,
                    optionProps: o,
                    optionGroups: r,
                    optionGroupProps: l,
                  }),
                  on: ue(t, i, s),
                  nativeOn: a,
                });
              });
            },
            filterMethod: ke,
            renderItemContent(e, t, i) {
              const s = i.data,
                o = i.property,
                r = t.options,
                l = t.optionProps,
                a = t.optionGroups,
                h = t.optionGroupProps,
                c = n.a.get(s, o);
              return [
                e(ee(t), {
                  props: le(t, i, c, {
                    options: r,
                    optionProps: l,
                    optionGroups: a,
                    optionGroupProps: h,
                  }),
                  on: pe(t, i),
                  nativeOn: he(t, i),
                }),
              ];
            },
            cellExportMethod: Ie,
          },
          $radio: { autofocus: ".vxe-radio--input", renderItemContent: Me },
          $checkbox: {
            autofocus: ".vxe-checkbox--input",
            renderItemContent: Me,
          },
          $switch: {
            autofocus: ".vxe-switch--button",
            renderEdit: _e,
            renderDefault: _e,
            renderItemContent: Re,
          },
        },
        Ne = {
          mixin(e) {
            return n.a.each(e, (e, t) => Ne.add(t, e)), Ne;
          },
          get(e) {
            return Pe[e] || null;
          },
          add(e, t) {
            if (e && t) {
              const i = Pe[e];
              i
                ? ("development" ===
                    Object({ NODE_ENV: "production", BASE_URL: "" })
                      .VUE_APP_VXE_TABLE_ENV &&
                    n.a.each(t, (t, s) => {
                      n.a.eqNull(i[s]) ||
                        i[s] === t ||
                        g.warn("vxe.error.coverProp", [`Renderer.${e}`, s]);
                    }),
                  Object.assign(i, t))
                : (Pe[e] = t);
            }
            return Ne;
          },
          delete(e) {
            return delete Pe[e], Ne;
          },
        },
        Be = new a();
      "development" ===
        Object({ NODE_ENV: "production", BASE_URL: "" })
          .VUE_APP_VXE_TABLE_ENV && Object.assign(Be, { _name: "Commands" });
      const Fe = new a();
      function Ve(e) {
        return n.a.merge(r, e);
      }
      "development" ===
        Object({ NODE_ENV: "production", BASE_URL: "" })
          .VUE_APP_VXE_TABLE_ENV && Object.assign(Fe, { _name: "Menus" });
      const ze = [];
      function je(e, t) {
        return (
          e &&
            e.install &&
            -1 === ze.indexOf(e) &&
            (e.install(Xe, t), ze.push(e)),
          Xe
        );
      }
      function He(e) {
        "development" ===
          Object({ NODE_ENV: "production", BASE_URL: "" })
            .VUE_APP_VXE_TABLE_ENV &&
          Xe.Table &&
          g.error("vxe.error.useErr", [e]),
          (Xe[`_${e}`] = 1);
      }
      function Ue(e, t) {
        const i = [];
        return (
          n.a.objectEach(e, (e, s) => {
            (0 !== e && e !== t) || i.push(s);
          }),
          i
        );
      }
      class We {
        get zIndex() {
          return g.getLastZIndex();
        }
        get nextZIndex() {
          return g.nextZIndex();
        }
        get exportTypes() {
          return Ue(r.export.types, 1);
        }
        get importTypes() {
          return Ue(r.export.types, 2);
        }
      }
      const Ge = new We();
      function Ze(e, t) {
        return r.i18n(e, t);
      }
      function Ye(e, t) {
        return e ? n.a.toString(r.translate ? r.translate(e, t) : e) : "";
      }
      const qe = "v3",
        Xe = {
          v: qe,
          reg: He,
          use: je,
          setup: Ve,
          interceptor: G,
          renderer: Ne,
          commands: Be,
          formats: h,
          menus: Fe,
          config: Ge,
          t: Ze,
          _t: Ye,
        };
      var Ke = Xe;
      const Je = { install() {} };
      const Qe = { mini: 3, small: 2, medium: 1 };
      function et(e) {
        if (e) {
          const t = getComputedStyle(e),
            i = n.a.toNumber(t.paddingLeft),
            s = n.a.toNumber(t.paddingRight);
          return i + s;
        }
        return 0;
      }
      function tt(e) {
        if (e) {
          const t = getComputedStyle(e),
            i = n.a.toNumber(t.marginLeft),
            s = n.a.toNumber(t.marginRight);
          return e.offsetWidth + i + s;
        }
        return 0;
      }
      function it(e, t) {
        return t ? (n.a.isString(t) ? e.getColumnByField(t) : t) : null;
      }
      function st(e, t) {
        return e.querySelector(".vxe-cell" + t);
      }
      function nt(e) {
        const t = e.$table,
          i = e.column,
          s = e.cell,
          o = t.showHeaderOverflow,
          r = t.resizableOpts,
          l = r.minWidth;
        if (l) {
          const t = n.a.isFunction(l) ? l(e) : l;
          if ("auto" !== t) return Math.max(1, n.a.toNumber(t));
        }
        const a = i.showHeaderOverflow,
          h = i.minWidth,
          c = n.a.isUndefined(a) || n.a.isNull(a) ? o : a,
          d = "ellipsis" === c,
          u = "title" === c,
          p = !0 === c || "tooltip" === c,
          f = u || p || d,
          m = n.a.floor(
            1.6 * (n.a.toNumber(getComputedStyle(s).fontSize) || 14)
          ),
          g = et(s) + et(st(s, ""));
        let v = m + g;
        if (f) {
          const e = et(st(s, "--title>.vxe-cell--checkbox")),
            t = tt(st(s, ">.vxe-cell--required-icon")),
            i = tt(st(s, ">.vxe-cell--edit-icon")),
            n = tt(st(s, ">.vxe-cell-help-icon")),
            o = tt(st(s, ">.vxe-cell--sort")),
            r = tt(st(s, ">.vxe-cell--filter"));
          v += e + t + i + n + r + o;
        }
        if (h) {
          const e = t.$refs.tableBody,
            i = e ? e.$el : null;
          if (i) {
            if (A.isScale(h)) {
              const e = i.clientWidth - 1,
                t = e / 100;
              return Math.max(v, Math.floor(n.a.toInteger(h) * t));
            }
            if (A.isPx(h)) return Math.max(v, n.a.toInteger(h));
          }
        }
        return v;
      }
      function ot(e, t) {
        const i = t.$table,
          s = e[i.treeOpts.children];
        let n = 1;
        if (i.isTreeExpandByRow(e))
          for (let o = 0; o < s.length; o++) n += ot(s[o], t);
        return n;
      }
      function rt(e) {
        return Qe[e.vSize] || 0;
      }
      function lt(e, t) {
        const i = e.$table,
          s = e.$rowIndex;
        let n = 1;
        return (
          s && (n = ot(t[s - 1], e)), i.rowHeight * n - (s ? 1 : 12 - rt(i))
        );
      }
      function at(e, t, i) {
        for (let s = 0; s < e.length; s++) {
          const n = e[s],
            o = n.row,
            r = n.col,
            l = n.rowspan,
            a = n.colspan;
          if (r > -1 && o > -1 && l && a) {
            if (o === t && r === i) return { rowspan: l, colspan: a };
            if (t >= o && t < o + l && i >= r && i < r + a)
              return { rowspan: 0, colspan: 0 };
          }
        }
      }
      function ht(e) {
        return (
          (e.initStatus = !1),
          e.clearSort(),
          e.clearCurrentRow(),
          e.clearCurrentColumn(),
          e.clearRadioRow(),
          e.clearRadioReserve(),
          e.clearCheckboxRow(),
          e.clearCheckboxReserve(),
          e.clearRowExpand(),
          e.clearTreeExpand(),
          e.clearTreeExpandReserve(),
          e.clearActived && Ke._edit && e.clearActived(),
          e.clearSelected &&
            (e.keyboardConfig || e.mouseConfig) &&
            e.clearSelected(),
          e.clearCellAreas &&
            e.mouseConfig &&
            (e.clearCellAreas(), e.clearCopyCellArea()),
          e.clearScroll()
        );
      }
      function ct(e) {
        return e.clearFilter && Ke._filter && e.clearFilter(), ht(e);
      }
      const dt = "body";
      function ut(e) {
        return (
          e._isResize ||
          (e.lastScrollTime && Date.now() < e.lastScrollTime + e.delayHover)
        );
      }
      function pt(e, t, i, s, n, o) {
        const r = o.column,
          l = i.treeOpts,
          a = i.treeConfig,
          h = r.slots,
          c = r.treeNode;
        return h && h.line
          ? i.callSlot(h.line, o, e)
          : a && c && l.line
          ? [
              e("div", { class: "vxe-tree--line-wrapper" }, [
                e("div", {
                  class: "vxe-tree--line",
                  style: {
                    height: `${lt(o, n)}px`,
                    left: `${s * l.indent + (s ? 2 - rt(i) : 0) + 16}px`,
                  },
                }),
              ]),
            ]
          : [];
      }
      function ft(e, t, i, s, o, r, l, a, h, c, d, u, f, m, v, _) {
        const b = i.$listeners,
          y = i.afterFullData,
          x = i.tableData,
          w = i.height,
          S = i.columnKey,
          E = i.overflowX,
          k = i.scrollXLoad,
          C = i.scrollYLoad,
          T = i.highlightCurrentRow,
          O = i.showOverflow,
          $ = i.isAllOverflow,
          R = i.align,
          L = i.currentColumn,
          D = i.cellClassName,
          I = i.cellStyle,
          M = i.mergeList,
          P = i.spanMethod,
          N = i.radioOpts,
          B = i.checkboxOpts,
          F = i.expandOpts,
          V = i.treeOpts,
          z = i.tooltipOpts,
          j = i.mouseConfig,
          H = i.editConfig,
          U = i.editOpts,
          W = i.editRules,
          G = i.validOpts,
          Z = i.editStore,
          Y = i.validStore,
          q = i.tooltipConfig,
          X = f.type,
          K = f.cellRender,
          J = f.editRender,
          Q = f.align,
          ee = f.showOverflow,
          te = f.className,
          ie = f.treeNode,
          se = Z.actived,
          ne = z.showAll || z.enabled,
          oe = i.getColumnIndex(f),
          re = i.getVTColumnIndex(f),
          le = p(J);
        let ae = l ? f.fixed !== l : f.fixed && E;
        const he = n.a.isUndefined(ee) || n.a.isNull(ee) ? O : ee;
        let ce = "ellipsis" === he;
        const de = "title" === he,
          ue = !0 === he || "tooltip" === he;
        let pe,
          fe = de || ue || ce;
        const me = {},
          ge = Q || R,
          ve = Y.row === h && Y.column === f,
          _e =
            W &&
            G.showMessage &&
            ("default" === G.message
              ? w || x.length > 1
              : "inline" === G.message),
          be = { colid: f.id },
          ye = b["cell-mouseenter"],
          xe = b["cell-mouseleave"],
          we = J && H && "dblclick" === U.trigger,
          Se = {
            $table: i,
            $seq: s,
            seq: o,
            rowid: r,
            row: h,
            rowIndex: c,
            $rowIndex: d,
            _rowIndex: u,
            column: f,
            columnIndex: oe,
            $columnIndex: m,
            _columnIndex: re,
            fixed: l,
            type: dt,
            isHidden: ae,
            level: a,
            visibleData: y,
            data: x,
            items: _,
          };
        if (
          ((!k && !C) || fe || (ce = fe = !0),
          (de || ue || ne || ye || q) &&
            (me.mouseenter = (e) => {
              ut(i) ||
                (de
                  ? A.updateCellTitle(e.currentTarget, f)
                  : (ue || ne) && i.triggerBodyTooltipEvent(e, Se),
                ye &&
                  i.emitEvent(
                    "cell-mouseenter",
                    Object.assign({ cell: e.currentTarget }, Se),
                    e
                  ));
            }),
          (ue || ne || xe || q) &&
            (me.mouseleave = (e) => {
              ut(i) ||
                ((ue || ne) && i.handleTargetLeaveEvent(e),
                xe &&
                  i.emitEvent(
                    "cell-mouseleave",
                    Object.assign({ cell: e.currentTarget }, Se),
                    e
                  ));
            }),
          (B.range || j) &&
            (me.mousedown = (e) => {
              i.triggerCellMousedownEvent(e, Se);
            }),
          (T ||
            b["cell-click"] ||
            (J && H) ||
            "row" === F.trigger ||
            "cell" === F.trigger ||
            "row" === N.trigger ||
            ("radio" === f.type && "cell" === N.trigger) ||
            "row" === B.trigger ||
            ("checkbox" === f.type && "cell" === B.trigger) ||
            "row" === V.trigger ||
            (f.treeNode && "cell" === V.trigger)) &&
            (me.click = (e) => {
              i.triggerCellClickEvent(e, Se);
            }),
          (we || b["cell-dblclick"]) &&
            (me.dblclick = (e) => {
              i.triggerCellDblclickEvent(e, Se);
            }),
          M.length)
        ) {
          const e = at(M, u, re);
          if (e) {
            const t = e.rowspan,
              i = e.colspan;
            if (!t || !i) return null;
            t > 1 && (be.rowspan = t), i > 1 && (be.colspan = i);
          }
        } else if (P) {
          const e = P(Se) || {},
            t = e.rowspan,
            i = void 0 === t ? 1 : t,
            s = e.colspan,
            n = void 0 === s ? 1 : s;
          if (!i || !n) return null;
          i > 1 && (be.rowspan = i), n > 1 && (be.colspan = n);
        }
        ae && M && (be.colspan > 1 || be.rowspan > 1) && (ae = !1),
          !ae &&
            H &&
            (J || K) &&
            (U.showStatus || U.showUpdateStatus) &&
            (pe = i.isUpdateByRow(h, f.property));
        const Ee = [];
        return (
          ae && (O ? $ : O)
            ? Ee.push(
                e("div", {
                  class: [
                    "vxe-cell",
                    { "c--title": de, "c--tooltip": ue, "c--ellipsis": ce },
                  ],
                })
              )
            : (Ee.push(
                ...pt(e, t, i, a, _, Se),
                e(
                  "div",
                  {
                    class: [
                      "vxe-cell",
                      { "c--title": de, "c--tooltip": ue, "c--ellipsis": ce },
                    ],
                    attrs: { title: de ? i.getCellLabel(h, f) : null },
                  },
                  f.renderCell(e, Se)
                )
              ),
              _e &&
                ve &&
                Ee.push(
                  e(
                    "div",
                    {
                      class: "vxe-cell--valid",
                      style:
                        Y.rule && Y.rule.maxWidth
                          ? { width: `${Y.rule.maxWidth}px` }
                          : null,
                    },
                    [e("span", { class: "vxe-cell--valid-msg" }, Y.content)]
                  )
                )),
          e(
            "td",
            {
              class: [
                "vxe-body--column",
                f.id,
                {
                  [`col--${ge}`]: ge,
                  [`col--${X}`]: X,
                  "col--last": m === v.length - 1,
                  "col--tree-node": ie,
                  "col--edit": le,
                  "col--ellipsis": fe,
                  "fixed--hidden": ae,
                  "col--dirty": pe,
                  "col--actived":
                    H &&
                    le &&
                    se.row === h &&
                    (se.column === f || "row" === U.mode),
                  "col--valid-error": ve,
                  "col--current": L === f,
                },
                g.getClass(te, Se),
                g.getClass(D, Se),
              ],
              key: S ? f.id : m,
              attrs: be,
              style: I ? (n.a.isFunction(I) ? I(Se) : I) : null,
              on: me,
            },
            Ee
          )
        );
      }
      function mt(e, t, i, s, o, r, l, a) {
        const h = i.stripe,
          c = i.rowKey,
          d = i.highlightHoverRow,
          u = i.rowClassName,
          p = i.rowStyle,
          f = i.editConfig,
          m = i.showOverflow,
          v = i.treeConfig,
          _ = i.treeOpts,
          b = i.editOpts,
          y = i.treeExpandeds,
          x = i.scrollYLoad,
          w = i.scrollYStore,
          S = i.editStore,
          E = i.rowExpandeds,
          k = i.radioOpts,
          C = i.checkboxOpts,
          T = i.expandColumn,
          O = i.hasFixedColumn,
          $ = [];
        return (
          l.forEach((R, A) => {
            const L = {};
            let D = A,
              I = D + 1;
            x && (I += w.startIndex);
            const M = i.getVTRowIndex(R);
            (D = i.getRowIndex(R)),
              d &&
                ((L.mouseenter = (e) => {
                  ut(i) || i.triggerHoverEvent(e, { row: R, rowIndex: D });
                }),
                (L.mouseleave = () => {
                  ut(i) || i.clearHoverRow();
                }));
            const P = g.getRowid(i, R),
              N = {
                $table: i,
                $seq: s,
                seq: I,
                rowid: P,
                fixed: r,
                type: dt,
                level: o,
                row: R,
                rowIndex: D,
                $rowIndex: A,
              };
            let B = !1;
            if (
              (f && (B = S.insertList.indexOf(R) > -1),
              $.push(
                e(
                  "tr",
                  {
                    class: [
                      "vxe-body--row",
                      {
                        "row--stripe": h && (i.getVTRowIndex(R) + 1) % 2 === 0,
                        "is--new": B,
                        "row--new": B && (b.showStatus || b.showInsertStatus),
                        "row--radio": k.highlight && i.selectRow === R,
                        "row--checked":
                          C.highlight && i.isCheckedByCheckboxRow(R),
                      },
                      u ? (n.a.isFunction(u) ? u(N) : u) : "",
                    ],
                    attrs: { rowid: P },
                    style: p ? (n.a.isFunction(p) ? p(N) : p) : null,
                    key: c || v ? P : A,
                    on: L,
                  },
                  a.map((n, h) => {
                    return ft(e, t, i, s, I, P, r, o, R, D, A, M, n, h, a, l);
                  })
                )
              ),
              T && E.length && E.indexOf(R) > -1)
            ) {
              let t;
              v && (t = { paddingLeft: `${o * _.indent + 30}px` });
              const l = T.showOverflow,
                h = n.a.isUndefined(l) || n.a.isNull(l) ? m : l,
                c = {
                  $table: i,
                  $seq: s,
                  seq: I,
                  column: T,
                  fixed: r,
                  type: dt,
                  level: o,
                  row: R,
                  rowIndex: D,
                  $rowIndex: A,
                };
              $.push(
                e(
                  "tr",
                  {
                    class: "vxe-body--expanded-row",
                    key: `expand_${P}`,
                    style: p ? (n.a.isFunction(p) ? p(c) : p) : null,
                    on: L,
                  },
                  [
                    e(
                      "td",
                      {
                        class: [
                          "vxe-body--expanded-column",
                          { "fixed--hidden": r && !O, "col--ellipsis": h },
                        ],
                        attrs: { colspan: a.length },
                      },
                      [
                        e(
                          "div",
                          { class: "vxe-body--expanded-cell", style: t },
                          [T.renderData(e, c)]
                        ),
                      ]
                    ),
                  ]
                )
              );
            }
            if (v && y.length) {
              const n = R[_.children];
              n &&
                n.length &&
                y.indexOf(R) > -1 &&
                $.push(
                  ...mt(e, t, i, s ? `${s}.${I}` : `${I}`, o + 1, r, n, a)
                );
            }
          }),
          $
        );
      }
      let gt;
      function vt(e, t, i) {
        (t || i) &&
          (t && ((t.onscroll = null), (t.scrollTop = e)),
          i && ((i.onscroll = null), (i.scrollTop = e)),
          clearTimeout(gt),
          (gt = setTimeout(function () {
            t && (t.onscroll = t._onscroll), i && (i.onscroll = i._onscroll);
          }, 300)));
      }
      var _t = {
          name: "VxeTableBody",
          props: {
            tableData: Array,
            tableColumn: Array,
            fixedColumn: Array,
            size: String,
            fixedType: String,
          },
          data() {
            return {
              wheelTime: null,
              wheelYSize: 0,
              wheelYInterval: 0,
              wheelYTotal: 0,
            };
          },
          mounted() {
            const e = this.$parent,
              t = this.$el,
              i = this.$refs,
              s = this.fixedType,
              n = e.elemStore,
              o = `${s || "main"}-body-`;
            (n[`${o}wrapper`] = t),
              (n[`${o}table`] = i.table),
              (n[`${o}colgroup`] = i.colgroup),
              (n[`${o}list`] = i.tbody),
              (n[`${o}xSpace`] = i.xSpace),
              (n[`${o}ySpace`] = i.ySpace),
              (n[`${o}emptyBlock`] = i.emptyBlock),
              (this.$el.onscroll = this.scrollEvent),
              (this.$el._onscroll = this.scrollEvent);
          },
          beforeDestroy() {
            clearTimeout(this.wheelTime),
              (this.$el._onscroll = null),
              (this.$el.onscroll = null);
          },
          render(e) {
            const t = this._e,
              i = this.$parent,
              s = this.fixedColumn,
              n = this.fixedType;
            let o,
              l = i.$scopedSlots,
              a = i.tId,
              h = i.tableData,
              c = i.tableColumn,
              d = i.showOverflow,
              u = i.keyboardConfig,
              p = i.keyboardOpts,
              f = i.mergeList,
              m = i.spanMethod,
              g = i.scrollXLoad,
              v = i.scrollYLoad,
              _ = i.isAllOverflow,
              b = i.emptyOpts,
              y = i.mouseConfig,
              x = i.mouseOpts,
              w = i.sYOpts;
            if (
              (n &&
                (f.length ||
                  m ||
                  (u && p.isMerge) ||
                  !(g || v || (d ? _ : d)) ||
                  (c = s)),
              l.empty)
            )
              o = l.empty.call(this, { $table: i }, e);
            else {
              const t = b.name ? Ke.renderer.get(b.name) : null,
                s = t ? t.renderEmpty : null;
              o = s
                ? s.call(this, e, b, { $table: i })
                : i.emptyText || r.i18n("vxe.table.emptyText");
            }
            return e(
              "div",
              {
                class: [
                  "vxe-table--body-wrapper",
                  n ? `fixed-${n}--wrapper` : "body--wrapper",
                ],
                attrs: { xid: a },
                on: v && "wheel" === w.mode ? { wheel: this.wheelEvent } : {},
              },
              [
                n
                  ? t()
                  : e("div", { class: "vxe-body--x-space", ref: "xSpace" }),
                e("div", { class: "vxe-body--y-space", ref: "ySpace" }),
                e(
                  "table",
                  {
                    class: "vxe-table--body",
                    attrs: {
                      xid: a,
                      cellspacing: 0,
                      cellpadding: 0,
                      border: 0,
                    },
                    ref: "table",
                  },
                  [
                    e(
                      "colgroup",
                      { ref: "colgroup" },
                      c.map((t, i) => {
                        return e("col", { attrs: { name: t.id }, key: i });
                      })
                    ),
                    e(
                      "tbody",
                      { ref: "tbody" },
                      mt(e, this, i, "", 0, n, h, c)
                    ),
                  ]
                ),
                e("div", { class: "vxe-table--checkbox-range" }),
                y && x.area
                  ? e("div", { class: "vxe-table--cell-area" }, [
                      e(
                        "span",
                        { class: "vxe-table--cell-main-area" },
                        x.extension
                          ? [
                              e("span", {
                                class: "vxe-table--cell-main-area-btn",
                                on: {
                                  mousedown(e) {
                                    i.triggerCellExtendMousedownEvent(e, {
                                      $table: i,
                                      fixed: n,
                                      type: dt,
                                    });
                                  },
                                },
                              }),
                            ]
                          : null
                      ),
                      e("span", { class: "vxe-table--cell-copy-area" }),
                      e("span", { class: "vxe-table--cell-extend-area" }),
                      e("span", { class: "vxe-table--cell-multi-area" }),
                      e("span", { class: "vxe-table--cell-active-area" }),
                    ])
                  : null,
                n
                  ? null
                  : e(
                      "div",
                      { class: "vxe-table--empty-block", ref: "emptyBlock" },
                      [e("div", { class: "vxe-table--empty-content" }, o)]
                    ),
              ]
            );
          },
          methods: {
            scrollEvent(e) {
              const t = this.$el,
                i = this.$parent,
                s = this.fixedType,
                n = i.$refs,
                o = i.highlightHoverRow,
                r = i.scrollXLoad,
                l = i.scrollYLoad,
                a = i.lastScrollTop,
                h = i.lastScrollLeft,
                c = n.tableHeader,
                d = n.tableBody,
                u = n.leftBody,
                p = n.rightBody,
                f = n.tableFooter,
                m = n.validTip,
                g = c ? c.$el : null,
                v = f ? f.$el : null,
                _ = d.$el,
                b = u ? u.$el : null,
                y = p ? p.$el : null;
              let x = t.scrollTop;
              const w = _.scrollLeft,
                S = w !== h,
                E = x !== a;
              (i.lastScrollTop = x),
                (i.lastScrollLeft = w),
                (i.lastScrollTime = Date.now()),
                o && i.clearHoverRow(),
                b && "left" === s
                  ? ((x = b.scrollTop), vt(x, _, y))
                  : y && "right" === s
                  ? ((x = y.scrollTop), vt(x, _, b))
                  : (S &&
                      (g && (g.scrollLeft = _.scrollLeft),
                      v && (v.scrollLeft = _.scrollLeft)),
                    (b || y) && (i.checkScrolling(), E && vt(x, b, y))),
                r && S && i.triggerScrollXEvent(e),
                l && E && i.triggerScrollYEvent(e),
                S && m && m.visible && m.updatePlacement(),
                i.emitEvent(
                  "scroll",
                  {
                    type: dt,
                    fixed: s,
                    scrollTop: x,
                    scrollLeft: w,
                    isX: S,
                    isY: E,
                  },
                  e
                );
            },
            handleWheel(e, t, i, s, n) {
              const o = this.$parent,
                r = o.$refs,
                l = r.tableBody,
                a = r.leftBody,
                h = r.rightBody,
                c = l.$el,
                d = a ? a.$el : null,
                u = h ? h.$el : null,
                p =
                  this.isPrevWheelTop === t
                    ? Math.max(0, this.wheelYSize - this.wheelYTotal)
                    : 0;
              (this.isPrevWheelTop = t),
                (this.wheelYSize = Math.abs(t ? i - p : i + p)),
                (this.wheelYInterval = 0),
                (this.wheelYTotal = 0),
                clearTimeout(this.wheelTime);
              const f = () => {
                let i = this.fixedType,
                  r = this.wheelYTotal,
                  l = this.wheelYSize,
                  a = this.wheelYInterval;
                if (r < l) {
                  (a = Math.max(5, Math.floor(1.5 * a))),
                    (r += a),
                    r > l && (a -= r - l);
                  const h = c.scrollTop,
                    p = c.clientHeight,
                    m = c.scrollHeight,
                    g = h + a * (t ? -1 : 1);
                  (c.scrollTop = g),
                    d && (d.scrollTop = g),
                    u && (u.scrollTop = g),
                    (t ? g < m - p : g >= 0) &&
                      (this.wheelTime = setTimeout(f, 10)),
                    (this.wheelYTotal = r),
                    (this.wheelYInterval = a),
                    o.emitEvent(
                      "scroll",
                      {
                        type: dt,
                        fixed: i,
                        scrollTop: c.scrollTop,
                        scrollLeft: c.scrollLeft,
                        isX: s,
                        isY: n,
                      },
                      e
                    );
                }
              };
              f();
            },
            wheelEvent(e) {
              const t = e.deltaY,
                i = e.deltaX,
                s = this.$el,
                n = this.$parent,
                o = n.$refs,
                r = n.highlightHoverRow,
                l = n.scrollYLoad,
                a = n.lastScrollTop,
                h = n.lastScrollLeft,
                c = o.tableBody,
                d = c.$el,
                u = b.firefox ? 40 * t : t,
                p = b.firefox ? 40 * i : i,
                f = u < 0;
              if (
                f
                  ? s.scrollTop <= 0
                  : s.scrollTop >= s.scrollHeight - s.clientHeight
              )
                return;
              const m = s.scrollTop + u,
                g = d.scrollLeft + p,
                v = g !== h,
                _ = m !== a;
              _ &&
                (e.preventDefault(),
                (n.lastScrollTop = m),
                (n.lastScrollLeft = g),
                (n.lastScrollTime = Date.now()),
                r && n.clearHoverRow(),
                this.handleWheel(e, f, u, v, _),
                l && n.triggerScrollYEvent(e));
            },
          },
        },
        bt = {
          computed: {
            vSize() {
              const e = this.$parent,
                t = this.size;
              return t || (e && (e.size || e.vSize));
            },
          },
        },
        yt = (i("55dd"), i("ade3"));
      function xt(e, t) {
        var i = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
          var s = Object.getOwnPropertySymbols(e);
          t &&
            (s = s.filter(function (t) {
              return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })),
            i.push.apply(i, s);
        }
        return i;
      }
      function wt(e) {
        for (var t = 1; t < arguments.length; t++) {
          var i = null != arguments[t] ? arguments[t] : {};
          t % 2
            ? xt(i, !0).forEach(function (t) {
                Object(yt["a"])(e, t, i[t]);
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i))
            : xt(i).forEach(function (t) {
                Object.defineProperty(
                  e,
                  t,
                  Object.getOwnPropertyDescriptor(i, t)
                );
              });
        }
        return e;
      }
      function St(e, t) {
        const i = t.$table,
          s = t.column,
          n = s.titleHelp;
        return n
          ? [
              e("i", {
                class: ["vxe-cell-help-icon", n.icon || r.icon.TABLE_HELP],
                on: {
                  mouseenter(e) {
                    i.triggerHeaderHelpEvent(e, t);
                  },
                  mouseleave(e) {
                    i.handleTargetLeaveEvent(e);
                  },
                },
              }),
            ]
          : [];
      }
      function Et(e, t, i) {
        const s = t.$table,
          o = t.column,
          r = o.type,
          l = o.showHeaderOverflow,
          a = s.showHeaderOverflow,
          h = s.tooltipOpts,
          c = h.showAll || h.enabled,
          d = n.a.isUndefined(l) || n.a.isNull(l) ? a : l,
          u = "title" === d,
          p = !0 === d || "tooltip" === d,
          f = {};
        return (
          (u || p || c) &&
            (f.mouseenter = (e) => {
              s._isResize ||
                (u
                  ? A.updateCellTitle(e.currentTarget, o)
                  : (p || c) && s.triggerHeaderTooltipEvent(e, t));
            }),
          (p || c) &&
            (f.mouseleave = (e) => {
              s._isResize || ((p || c) && s.handleTargetLeaveEvent(e));
            }),
          [
            "html" === r && n.a.isString(i)
              ? e("span", {
                  class: "vxe-cell--title",
                  domProps: { innerHTML: i },
                  on: f,
                })
              : e("span", { class: "vxe-cell--title", on: f }, i),
          ]
        );
      }
      function kt(e, t) {
        const i = t.$table,
          s = t.column,
          n = t._columnIndex,
          o = t.items,
          r = s.slots,
          l = s.editRender,
          a = s.cellRender,
          h = l || a;
        if (r && r.footer) return i.callSlot(r.footer, t, e);
        if (h) {
          const s = Ke.renderer.get(h.name);
          if (s && s.renderFooter) return s.renderFooter.call(i, e, h, t);
        }
        return [g.formatText(o[n], 1)];
      }
      function Ct(e) {
        const t = e.$table,
          i = e.row,
          s = e.column;
        return g.formatText(t.getCellLabel(i, s), 1);
      }
      const Tt = {
        createColumn(e, t) {
          const i = t.type,
            s = t.sortable,
            n = t.remoteSort,
            o = t.filters,
            r = t.editRender,
            l = t.treeNode,
            a = e.editConfig,
            h = e.editOpts,
            c = e.checkboxOpts,
            d = {
              renderHeader: this.renderDefaultHeader,
              renderCell: l ? this.renderTreeCell : this.renderDefaultCell,
              renderFooter: this.renderDefaultFooter,
            };
          switch (i) {
            case "index":
            case "seq":
              (d.renderHeader = this.renderIndexHeader),
                (d.renderCell = l
                  ? this.renderTreeIndexCell
                  : this.renderIndexCell);
              break;
            case "radio":
              (d.renderHeader = this.renderRadioHeader),
                (d.renderCell = l
                  ? this.renderTreeRadioCell
                  : this.renderRadioCell);
              break;
            case "checkbox":
              (d.renderHeader = this.renderSelectionHeader),
                (d.renderCell = c.checkField
                  ? l
                    ? this.renderTreeSelectionCellByProp
                    : this.renderSelectionCellByProp
                  : l
                  ? this.renderTreeSelectionCell
                  : this.renderSelectionCell);
              break;
            case "expand":
              (d.renderCell = this.renderExpandCell),
                (d.renderData = this.renderExpandData);
              break;
            case "html":
              (d.renderCell = l
                ? this.renderTreeHTMLCell
                : this.renderHTMLCell),
                o && (s || n)
                  ? (d.renderHeader = this.renderSortAndFilterHeader)
                  : s || n
                  ? (d.renderHeader = this.renderSortHeader)
                  : o && (d.renderHeader = this.renderFilterHeader);
              break;
            default:
              a && r
                ? ((d.renderHeader = this.renderEditHeader),
                  (d.renderCell =
                    "cell" === h.mode
                      ? l
                        ? this.renderTreeCellEdit
                        : this.renderCellEdit
                      : l
                      ? this.renderTreeRowEdit
                      : this.renderRowEdit))
                : o && (s || n)
                ? (d.renderHeader = this.renderSortAndFilterHeader)
                : s || n
                ? (d.renderHeader = this.renderSortHeader)
                : o && (d.renderHeader = this.renderFilterHeader);
          }
          return g.getColumnConfig(e, t, d);
        },
        renderHeaderTitle(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.slots,
            o = s.editRender,
            r = s.cellRender,
            l = o || r;
          if (n && n.header) return Et(e, t, i.callSlot(n.header, t, e));
          if (l) {
            const s = Ke.renderer.get(l.name);
            if (s && s.renderHeader)
              return Et(e, t, s.renderHeader.call(i, e, l, t));
          }
          return Et(e, t, g.formatText(s.getTitle(), 1));
        },
        renderDefaultHeader(e, t) {
          return St(e, t).concat(Tt.renderHeaderTitle(e, t));
        },
        renderDefaultCell(e, t) {
          const i = t.$table,
            s = t.row,
            n = t.column,
            o = n.slots,
            r = n.editRender,
            l = n.cellRender,
            a = r || l;
          if (o && o.default) return i.callSlot(o.default, t, e);
          if (a) {
            const s = r ? "renderCell" : "renderDefault",
              n = Ke.renderer.get(a.name);
            if (n && n[s])
              return n[s].call(
                i,
                e,
                a,
                Object.assign({ $type: r ? "edit" : "cell" }, t)
              );
          }
          const h = i.getCellLabel(s, n),
            c = r ? r.placeholder : "";
          return [
            e(
              "span",
              { class: "vxe-cell--label" },
              r && m(h)
                ? [
                    e(
                      "span",
                      { class: "vxe-cell--placeholder" },
                      g.formatText(g.getFuncText(c), 1)
                    ),
                  ]
                : g.formatText(h, 1)
            ),
          ];
        },
        renderTreeCell(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderDefaultCell.call(this, e, t));
        },
        renderDefaultFooter(e, t) {
          return [e("span", { class: "vxe-cell--item" }, kt(e, t))];
        },
        renderTreeIcon(e, t, i) {
          const s = t.$table,
            n = t.isHidden,
            o = s.treeOpts,
            l = s.treeExpandeds,
            a = s.treeLazyLoadeds,
            h = t.row,
            c = t.column,
            d = t.level,
            u = c.slots,
            p = o.children,
            f = o.hasChild,
            m = o.indent,
            g = o.lazy,
            v = o.trigger,
            _ = o.iconLoaded,
            b = o.showIcon,
            y = o.iconOpen,
            x = o.iconClose,
            w = h[p];
          let S = !1,
            E = !1,
            k = !1;
          const C = {};
          return u && u.icon
            ? s.callSlot(u.icon, t, e, i)
            : (n ||
                ((E = l.indexOf(h) > -1),
                g && ((k = a.indexOf(h) > -1), (S = h[f]))),
              (v && "default" !== v) ||
                (C.click = (e) => s.triggerTreeExpandEvent(e, t)),
              [
                e(
                  "div",
                  {
                    class: ["vxe-cell--tree-node", { "is--active": E }],
                    style: { paddingLeft: `${d * m}px` },
                  },
                  [
                    b && ((w && w.length) || S)
                      ? [
                          e("div", { class: "vxe-tree--btn-wrapper", on: C }, [
                            e("i", {
                              class: [
                                "vxe-tree--node-btn",
                                k
                                  ? _ || r.icon.TABLE_TREE_LOADED
                                  : E
                                  ? y || r.icon.TABLE_TREE_OPEN
                                  : x || r.icon.TABLE_TREE_CLOSE,
                              ],
                            }),
                          ]),
                        ]
                      : null,
                    e("div", { class: "vxe-tree-cell" }, i),
                  ]
                ),
              ]);
        },
        renderIndexHeader(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.slots;
          return Et(
            e,
            t,
            n && n.header
              ? i.callSlot(n.header, t, e)
              : g.formatText(s.getTitle(), 1)
          );
        },
        renderIndexCell(e, t) {
          const i = t.$table,
            s = t.column,
            n = i.seqOpts,
            o = s.slots;
          if (o && o.default) return i.callSlot(o.default, t, e);
          const r = t.$seq,
            l = t.seq,
            a = t.level,
            h = n.seqMethod;
          return [
            g.formatText(h ? h(t) : a ? `${r}.${l}` : n.startIndex + l, 1),
          ];
        },
        renderTreeIndexCell(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderIndexCell(e, t));
        },
        renderRadioHeader(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.slots,
            o = n ? n.header : null,
            r = n ? n.title : null;
          return Et(
            e,
            t,
            o
              ? i.callSlot(o, t, e)
              : [
                  e(
                    "span",
                    { class: "vxe-radio--label" },
                    r ? i.callSlot(r, t, e) : g.formatText(s.getTitle(), 1)
                  ),
                ]
          );
        },
        renderRadioCell(e, t) {
          const i = t.$table,
            s = t.column,
            o = t.isHidden,
            r = i.radioOpts,
            l = i.selectRow,
            a = s.slots,
            h = r.labelField,
            c = r.checkMethod,
            d = t.row,
            u = a ? a.default : null,
            p = a ? a.radio : null,
            f = d === l;
          let m,
            g = !!c;
          o ||
            ((m = {
              click(e) {
                g || i.triggerRadioRowEvent(e, t);
              },
            }),
            c && (g = !c({ row: d })));
          const v = wt({}, t, { checked: f, disabled: g });
          return p
            ? i.callSlot(p, v, e)
            : [
                e(
                  "span",
                  {
                    class: [
                      "vxe-cell--radio",
                      { "is--checked": f, "is--disabled": g },
                    ],
                    on: m,
                  },
                  [
                    e("span", {
                      class: "vxe-radio--icon vxe-radio--checked-icon",
                    }),
                    e("span", {
                      class: "vxe-radio--icon vxe-radio--unchecked-icon",
                    }),
                  ].concat(
                    u || h
                      ? [
                          e(
                            "span",
                            { class: "vxe-radio--label" },
                            u ? i.callSlot(u, v, e) : n.a.get(d, h)
                          ),
                        ]
                      : []
                  )
                ),
              ];
        },
        renderTreeRadioCell(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderRadioCell(e, t));
        },
        renderSelectionHeader(e, t) {
          const i = t.$table,
            s = t.column,
            n = t.isHidden,
            o = i.isIndeterminate,
            l = i.isAllCheckboxDisabled,
            a = s.slots,
            h = a ? a.header : null,
            c = a ? a.title : null,
            d = i.checkboxOpts,
            u = s.getTitle();
          let p,
            f = !1;
          n ||
            ((f = !l && i.isAllSelected),
            (p = {
              click(e) {
                l || i.triggerCheckAllEvent(e, !f);
              },
            }));
          const m = wt({}, t, { checked: f, disabled: l, indeterminate: o });
          return h
            ? Et(e, m, i.callSlot(h, m, e))
            : (d.checkStrictly ? d.showHeader : !1 !== d.showHeader)
            ? Et(e, m, [
                e(
                  "span",
                  {
                    class: [
                      "vxe-cell--checkbox",
                      {
                        "is--checked": f,
                        "is--disabled": l,
                        "is--indeterminate": o,
                      },
                    ],
                    attrs: { title: r.i18n("vxe.table.allTitle") },
                    on: p,
                  },
                  [
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class:
                        "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                  ].concat(
                    c || u
                      ? [
                          e(
                            "span",
                            { class: "vxe-checkbox--label" },
                            c ? i.callSlot(c, m, e) : u
                          ),
                        ]
                      : []
                  )
                ),
              ])
            : Et(e, m, [
                e(
                  "span",
                  { class: "vxe-checkbox--label" },
                  c ? i.callSlot(c, m, e) : u
                ),
              ]);
        },
        renderSelectionCell(e, t) {
          const i = t.$table,
            s = t.row,
            o = t.column,
            r = t.isHidden,
            l = i.treeConfig,
            a = i.treeIndeterminates,
            h = i.checkboxOpts,
            c = h.labelField,
            d = h.checkMethod,
            u = o.slots,
            p = u ? u.default : null,
            f = u ? u.checkbox : null;
          let m,
            g = !1,
            v = !1,
            _ = !!d;
          r ||
            ((v = i.selection.indexOf(s) > -1),
            (m = {
              click(e) {
                _ || i.triggerCheckRowEvent(e, t, !v);
              },
            }),
            d && (_ = !d({ row: s })),
            l && (g = a.indexOf(s) > -1));
          const b = wt({}, t, { checked: v, disabled: _, indeterminate: g });
          return f
            ? i.callSlot(f, b, e)
            : [
                e(
                  "span",
                  {
                    class: [
                      "vxe-cell--checkbox",
                      {
                        "is--checked": v,
                        "is--disabled": _,
                        "is--indeterminate": g,
                      },
                    ],
                    on: m,
                  },
                  [
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class:
                        "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                  ].concat(
                    p || c
                      ? [
                          e(
                            "span",
                            { class: "vxe-checkbox--label" },
                            p ? i.callSlot(p, b, e) : n.a.get(s, c)
                          ),
                        ]
                      : []
                  )
                ),
              ];
        },
        renderTreeSelectionCell(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderSelectionCell(e, t));
        },
        renderSelectionCellByProp(e, t) {
          const i = t.$table,
            s = t.row,
            o = t.column,
            r = t.isHidden,
            l = i.treeConfig,
            a = i.treeIndeterminates,
            h = i.checkboxOpts,
            c = h.labelField,
            d = h.checkField,
            u = h.halfField,
            p = h.checkMethod,
            f = o.slots,
            m = f ? f.default : null,
            g = f ? f.checkbox : null;
          let v,
            _ = !1,
            b = !1,
            y = !!p;
          r ||
            ((b = n.a.get(s, d)),
            (v = {
              click(e) {
                y || i.triggerCheckRowEvent(e, t, !b);
              },
            }),
            p && (y = !p({ row: s })),
            l && (_ = a.indexOf(s) > -1));
          const x = wt({}, t, { checked: b, disabled: y, indeterminate: _ });
          return g
            ? i.callSlot(g, x, e)
            : [
                e(
                  "span",
                  {
                    class: [
                      "vxe-cell--checkbox",
                      {
                        "is--checked": b,
                        "is--disabled": y,
                        "is--indeterminate": u && !b ? s[u] : _,
                      },
                    ],
                    on: v,
                  },
                  [
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class:
                        "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                  ].concat(
                    m || c
                      ? [
                          e(
                            "span",
                            { class: "vxe-checkbox--label" },
                            m ? i.callSlot(m, x, e) : n.a.get(s, c)
                          ),
                        ]
                      : []
                  )
                ),
              ];
        },
        renderTreeSelectionCellByProp(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderSelectionCellByProp(e, t));
        },
        renderExpandCell(e, t) {
          const i = t.$table,
            s = t.isHidden,
            o = t.row,
            l = t.column,
            a = i.expandOpts,
            h = i.rowExpandeds,
            c = i.expandLazyLoadeds,
            d = a.lazy,
            u = a.labelField,
            p = a.iconLoaded,
            f = a.showIcon,
            m = a.iconOpen,
            g = a.iconClose,
            v = a.visibleMethod,
            _ = l.slots,
            b = _ ? _.default : null;
          let y = !1,
            x = !1;
          return _ && _.icon
            ? i.callSlot(_.icon, t, e)
            : (s || ((y = h.indexOf(t.row) > -1), d && (x = c.indexOf(o) > -1)),
              [
                !f || (v && !v(t))
                  ? null
                  : e(
                      "span",
                      {
                        class: ["vxe-table--expanded", { "is--active": y }],
                        on: {
                          click(e) {
                            i.triggerRowExpandEvent(e, t);
                          },
                        },
                      },
                      [
                        e("i", {
                          class: [
                            "vxe-table--expand-btn",
                            x
                              ? p || r.icon.TABLE_EXPAND_LOADED
                              : y
                              ? m || r.icon.TABLE_EXPAND_OPEN
                              : g || r.icon.TABLE_EXPAND_CLOSE,
                          ],
                        }),
                      ]
                    ),
                b || u
                  ? e(
                      "span",
                      { class: "vxe-table--expand-label" },
                      b ? i.callSlot(b, t, e) : n.a.get(o, u)
                    )
                  : null,
              ]);
        },
        renderExpandData(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.slots,
            o = s.contentRender;
          if (n && n.content) return i.callSlot(n.content, t, e);
          if (o) {
            const s = Ke.renderer.get(o.name);
            if (s && s.renderExpand) return s.renderExpand.call(i, e, o, t);
          }
          return [];
        },
        renderHTMLCell(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.slots;
          return n && n.default
            ? i.callSlot(n.default, t, e)
            : [
                e("span", {
                  class: "vxe-cell--html",
                  domProps: { innerHTML: Ct(t) },
                }),
              ];
        },
        renderTreeHTMLCell(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderHTMLCell(e, t));
        },
        renderSortAndFilterHeader(e, t) {
          return Tt.renderDefaultHeader(e, t)
            .concat(Tt.renderSortIcon(e, t))
            .concat(Tt.renderFilterIcon(e, t));
        },
        renderSortHeader(e, t) {
          return Tt.renderDefaultHeader(e, t).concat(Tt.renderSortIcon(e, t));
        },
        renderSortIcon(e, t) {
          const i = t.$table,
            s = t.column,
            n = i.sortOpts,
            o = n.showIcon,
            l = n.iconAsc,
            a = n.iconDesc;
          return o
            ? [
                e(
                  "span",
                  {
                    class: "vxe-cell--sort",
                    style: {
                      visibility:
                        "asc" === s.order || "desc" === s.order
                          ? "visible"
                          : "",
                    },
                  },
                  [
                    e("i", {
                      class: [
                        "vxe-sort--asc-btn",
                        l || r.icon.TABLE_SORT_ASC,
                        { "sort--active": "asc" === s.order },
                      ],
                      attrs: { title: r.i18n("vxe.table.sortAsc") },
                      on: {
                        click(e) {
                          i.triggerSortEvent(e, s, "asc");
                        },
                      },
                    }),
                    e("i", {
                      class: [
                        "vxe-sort--desc-btn",
                        a || r.icon.TABLE_SORT_DESC,
                        { "sort--active": "desc" === s.order },
                      ],
                      attrs: { title: r.i18n("vxe.table.sortDesc") },
                      on: {
                        click(e) {
                          i.triggerSortEvent(e, s, "desc");
                        },
                      },
                    }),
                  ]
                ),
              ]
            : [];
        },
        renderFilterHeader(e, t) {
          return Tt.renderDefaultHeader(e, t).concat(Tt.renderFilterIcon(e, t));
        },
        renderFilterIcon(e, t) {
          const i = t.$table,
            s = t.column,
            n = t.hasFilter,
            o = i.filterStore,
            l = i.filterOpts,
            a = l.showIcon,
            h = l.iconNone,
            c = l.iconMatch;
          return a
            ? [
                e(
                  "span",
                  {
                    class: [
                      "vxe-cell--filter",
                      { "is--active": o.visible && o.column === s },
                    ],
                  },
                  [
                    e("i", {
                      class: [
                        "vxe-filter--btn",
                        n
                          ? c || r.icon.TABLE_FILTER_MATCH
                          : h || r.icon.TABLE_FILTER_NONE,
                      ],
                      attrs: { title: r.i18n("vxe.table.filter") },
                      on: {
                        click(e) {
                          i.triggerFilterEvent(e, t.column, t);
                        },
                      },
                    }),
                  ]
                ),
              ]
            : [];
        },
        renderEditHeader(e, t) {
          const i = t.$table,
            s = t.column,
            o = i.editRules,
            l = i.editOpts,
            a = s.sortable,
            h = s.remoteSort,
            c = s.filters,
            d = s.editRender;
          let u;
          if (o) {
            const e = n.a.get(o, t.column.property);
            e && (u = e.some((e) => e.required));
          }
          return [
            u && l.showAsterisk
              ? e("i", { class: "vxe-cell--required-icon" })
              : null,
            p(d) && l.showIcon
              ? e("i", {
                  class: ["vxe-cell--edit-icon", l.icon || r.icon.TABLE_EDIT],
                })
              : null,
          ]
            .concat(Tt.renderDefaultHeader(e, t))
            .concat(a || h ? Tt.renderSortIcon(e, t) : [])
            .concat(c ? Tt.renderFilterIcon(e, t) : []);
        },
        renderRowEdit(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.editRender,
            o = i.editStore.actived;
          return Tt.runRenderer(e, t, this, p(n) && o && o.row === t.row);
        },
        renderTreeRowEdit(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderRowEdit(e, t));
        },
        renderCellEdit(e, t) {
          const i = t.$table,
            s = t.column,
            n = s.editRender,
            o = i.editStore.actived;
          return Tt.runRenderer(
            e,
            t,
            this,
            p(n) && o && o.row === t.row && o.column === t.column
          );
        },
        renderTreeCellEdit(e, t) {
          return Tt.renderTreeIcon(e, t, Tt.renderCellEdit(e, t));
        },
        runRenderer(e, t, i, s) {
          const n = t.$table,
            o = t.column,
            r = o.slots,
            l = o.editRender,
            a = o.formatter,
            h = Ke.renderer.get(l.name);
          return s
            ? r && r.edit
              ? n.callSlot(r.edit, t, e)
              : h && h.renderEdit
              ? h.renderEdit.call(n, e, l, Object.assign({ $type: "edit" }, t))
              : []
            : r && r.default
            ? n.callSlot(r.default, t, e)
            : a
            ? [e("span", { class: "vxe-cell--label" }, [Ct(t)])]
            : Tt.renderDefaultCell.call(i, e, t);
        },
      };
      var Ot = Tt,
        $t = i("53b0");
      const Rt = g.getRowid,
        At = g.getRowkey,
        Lt = g.setCellValue,
        Dt = g.hasChildrenList,
        It = g.getColumnList,
        Mt = A.calcHeight,
        Pt = A.hasClass,
        Nt = A.addClass,
        Bt = A.removeClass,
        Ft = A.getEventTargetNode,
        Vt = b["-webkit"] && !b.edge,
        zt = b.msie ? 80 : 20,
        jt = "VXE_TABLE_CUSTOM_COLUMN_WIDTH",
        Ht = "VXE_TABLE_CUSTOM_COLUMN_VISIBLE";
      function Ut() {
        return n.a.uniqueId("row_");
      }
      function Wt(e, t, i) {
        const s = n.a.get(e, i),
          o = n.a.get(t, i);
        return (
          !(!m(s) || !m(o)) ||
          (n.a.isString(s) || n.a.isNumber(s) ? s == o : n.a.isEqual(s, o))
        );
      }
      function Gt(e, t) {
        const i = e.sortOpts.orders,
          s = t.order || null,
          n = i.indexOf(s) + 1;
        return i[n < i.length ? n : 0];
      }
      function Zt(e) {
        const t = r.version,
          i = n.a.toStringJSON(localStorage.getItem(e));
        return i && i._v === t ? i : { _v: t };
      }
      function Yt(e, t) {
        const i = e.fullAllDataRowMap;
        return t.filter((e) => i.has(e));
      }
      function qt(e, t) {
        const i = e.fullDataRowIdData,
          s = [];
        return (
          n.a.each(t, (e, t) => {
            i[t] && -1 === s.indexOf(i[t].row) && s.push(i[t].row);
          }),
          s
        );
      }
      function Xt(e, t, i) {
        return e.clearScroll().then(() => {
          if (t || i)
            return (
              (e.lastScrollLeft = 0), (e.lastScrollTop = 0), e.scrollTo(t, i)
            );
        });
      }
      function Kt(e) {
        const t = e.$refs,
          i = e.visibleColumn,
          s = t.tableBody,
          n = s ? s.$el : null;
        if (n) {
          const e = n.scrollLeft,
            t = n.clientWidth,
            s = e + t;
          let o = -1,
            r = 0,
            l = 0;
          for (let n = 0, a = i.length; n < a; n++)
            if (
              ((r += i[n].renderWidth),
              -1 === o && e < r && (o = n),
              o >= 0 && (l++, r > s))
            )
              break;
          return {
            toVisibleIndex: Math.max(0, o),
            visibleSize: Math.max(8, l),
          };
        }
        return { toVisibleIndex: 0, visibleSize: 8 };
      }
      function Jt(e) {
        const t = e.$refs,
          i = e.vSize,
          s = e.rowHeightMaps,
          n = e.params,
          o = t.tableHeader,
          r = t.tableBody,
          l = r ? r.$el : null;
        if (l) {
          const e = o ? o.$el : null;
          let t = n ? n.rowHeight : 0;
          if (!t) {
            let i;
            (i = l.querySelector("tr")),
              !i && e && (i = e.querySelector("tr")),
              i && (t = i.clientHeight);
          }
          t || (t = s[i || "default"]);
          const r = Math.max(8, Math.ceil(l.clientHeight / t) + 2);
          return { rowHeight: t, visibleSize: r };
        }
        return { rowHeight: 0, visibleSize: 8 };
      }
      function Qt(e, t, i) {
        for (let s = 0, n = e.length; s < n; s++) {
          const n = e[s],
            o = t.startIndex,
            r = t.endIndex,
            l = n[i],
            a = n[i + "span"],
            h = l + a;
          l < o && o < h && (t.startIndex = l),
            l < r && r < h && (t.endIndex = h),
            (t.startIndex === o && t.endIndex === r) || (s = -1);
        }
      }
      function ei(e, t, i, s) {
        if (t) {
          const o = e.treeConfig,
            r = e.visibleColumn;
          if (o)
            throw new Error(
              g.getLog("vxe.error.noTree", ["merge-footer-items"])
            );
          n.a.isArray(t) || (t = [t]),
            t.forEach((e) => {
              let t = e.row,
                o = e.col,
                l = e.rowspan,
                a = e.colspan;
              if (
                (s && n.a.isNumber(t) && (t = s[t]),
                n.a.isNumber(o) && (o = r[o]),
                (s ? t : n.a.isNumber(t)) &&
                  o &&
                  (l || a) &&
                  ((l = n.a.toNumber(l) || 1),
                  (a = n.a.toNumber(a) || 1),
                  l > 1 || a > 1))
              ) {
                const e = n.a.findIndexOf(
                    i,
                    (e) => e._row === t && e._col === o
                  ),
                  h = i[e];
                if (h)
                  (h.rowspan = l),
                    (h.colspan = a),
                    (h._rowspan = l),
                    (h._colspan = a);
                else {
                  const e = s ? s.indexOf(t) : t,
                    n = r.indexOf(o);
                  i.push({
                    row: e,
                    col: n,
                    rowspan: l,
                    colspan: a,
                    _row: t,
                    _col: o,
                    _rowspan: l,
                    _colspan: a,
                  });
                }
              }
            });
        }
      }
      function ti(e, t, i, s) {
        const o = [];
        if (t) {
          const r = e.treeConfig,
            l = e.visibleColumn;
          if (r) throw new Error(g.getLog("vxe.error.noTree", ["merge-cells"]));
          n.a.isArray(t) || (t = [t]),
            t.forEach((e) => {
              let t = e.row,
                r = e.col;
              s && n.a.isNumber(t) && (t = s[t]), n.a.isNumber(r) && (r = l[r]);
              const a = n.a.findIndexOf(i, (e) => e._row === t && e._col === r);
              if (a > -1) {
                const e = i.splice(a, 1);
                o.push(e[0]);
              }
            });
        }
        return o;
      }
      function ii(e) {
        e.tableFullColumn.forEach((e) => {
          e.order = null;
        });
      }
      function si(e, t) {
        const i = t.sortBy,
          s = t.sortType;
        return (o) => {
          let r;
          return (
            (r = i
              ? n.a.isFunction(i)
                ? i({ row: o, column: t })
                : n.a.get(o, i)
              : e.getCellLabel(o, t)),
            s && "auto" !== s
              ? "number" === s
                ? n.a.toNumber(r)
                : "string" === s
                ? n.a.toString(r)
                : r
              : isNaN(r)
              ? r
              : n.a.toNumber(r)
          );
        };
      }
      const ni = {
          callSlot(e, t, i, s) {
            if (e) {
              const o = this.$xegrid;
              if (o) return o.callSlot(e, t, i, s);
              if (n.a.isFunction(e)) return e.call(this, t, i, s);
            }
            return [];
          },
          getParentElem() {
            const e = this.$el,
              t = this.$xegrid;
            return t ? t.$el.parentNode : e.parentNode;
          },
          getParentHeight() {
            const e = this.$el,
              t = this.$xegrid,
              i = this.height,
              s = e.parentNode,
              o = "auto" === i ? O(s) : 0;
            return Math.floor(
              t
                ? t.getParentHeight()
                : n.a.toNumber(getComputedStyle(s).height) - o
            );
          },
          getExcludeHeight() {
            const e = this.$xegrid;
            return e ? e.getExcludeHeight() : 0;
          },
          clearAll() {
            return ct(this);
          },
          syncData() {
            return this.$nextTick().then(() => {
              return (
                (this.tableData = []),
                this.$nextTick().then(() =>
                  this.loadTableData(this.tableFullData)
                )
              );
            });
          },
          updateData() {
            return this.handleTableData(!0)
              .then(this.updateFooter)
              .then(this.recalculate);
          },
          handleTableData(e) {
            const t = this.scrollYLoad,
              i = this.scrollYStore,
              s = e ? this.updateAfterFullData() : this.afterFullData;
            return (
              (this.tableData = t
                ? s.slice(i.startIndex, i.endIndex)
                : s.slice(0)),
              this.$nextTick()
            );
          },
          loadTableData(e) {
            const t = this.keepSource,
              i = this.treeConfig,
              s = this.editStore,
              o = this.sYOpts,
              r = this.scrollYStore,
              l = this.scrollXStore,
              a = this.lastScrollLeft,
              h = this.lastScrollTop,
              c = this.scrollYLoad,
              d = e ? e.slice(0) : [],
              u = !i && o.enabled && o.gt > -1 && o.gt < d.length;
            return (
              (r.startIndex = 0),
              (r.endIndex = 1),
              (l.startIndex = 0),
              (l.endIndex = 1),
              (s.insertList = []),
              (s.removeList = []),
              (this.tableFullData = d),
              this.updateCache(!0),
              (this.tableSynchData = e),
              t && (this.tableSourceData = n.a.clone(d, !0)),
              (this.scrollYLoad = u),
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                u &&
                (this.height ||
                  this.maxHeight ||
                  g.error("vxe.error.reqProp", [
                    "table.height | table.max-height | table.scroll-y={enabled: false}",
                  ]),
                this.showOverflow ||
                  g.warn("vxe.error.reqProp", ["table.show-overflow"]),
                this.spanMethod &&
                  g.warn("vxe.error.scrollErrProp", ["table.span-method"])),
              this.clearCellAreas &&
                this.mouseConfig &&
                (this.clearCellAreas(), this.clearCopyCellArea()),
              this.clearMergeCells(),
              this.clearMergeFooterItems(),
              this.handleTableData(!0),
              this.updateFooter(),
              this.$nextTick()
                .then(() => {
                  this.updateHeight(), this.updateStyle();
                })
                .then(() => {
                  this.computeScrollLoad();
                })
                .then(() => {
                  return (
                    u && (r.endIndex = r.visibleSize),
                    this.handleReserveStatus(),
                    this.checkSelectionStatus(),
                    new Promise((e) => {
                      this.$nextTick()
                        .then(() => this.recalculate())
                        .then(() => {
                          c === u
                            ? Xt(this, a, h).then(e)
                            : setTimeout(() => Xt(this, a, h).then(e));
                        });
                    })
                  );
                })
            );
          },
          loadData(e) {
            const t = this.inited,
              i = this.initStatus;
            return this.loadTableData(e).then(() => {
              return (
                (this.inited = !0),
                (this.initStatus = !0),
                i || this.handleLoadDefaults(),
                t || this.handleInitDefaults(),
                this.recalculate()
              );
            });
          },
          reloadData(e) {
            const t = this.inited;
            return this.clearAll()
              .then(() => {
                return (
                  (this.inited = !0),
                  (this.initStatus = !0),
                  this.loadTableData(e)
                );
              })
              .then(() => {
                return (
                  this.handleLoadDefaults(),
                  t || this.handleInitDefaults(),
                  this.recalculate()
                );
              });
          },
          reloadRow(e, t, i) {
            const s = this.keepSource,
              o = this.tableSourceData,
              r = this.tableData;
            if (s) {
              const s = this.getRowIndex(e),
                l = o[s];
              l &&
                e &&
                (i
                  ? n.a.set(l, i, n.a.get(t || e, i))
                  : t
                  ? ((o[s] = t),
                    n.a.clear(e, void 0),
                    Object.assign(e, this.defineField(Object.assign({}, t))),
                    this.updateCache(!0))
                  : n.a.destructuring(l, n.a.clone(e, !0))),
                (this.tableData = r.slice(0));
            } else
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.reqProp", ["keep-source"]);
            return this.$nextTick();
          },
          loadColumn(e) {
            const t = n.a.mapTree(e, (e) => Ot.createColumn(this, e), {
              children: "children",
            });
            return this.handleColumn(t), this.$nextTick();
          },
          reloadColumn(e) {
            return this.clearAll().then(() => {
              return this.loadColumn(e);
            });
          },
          handleColumn(e) {
            this.collectColumn = e;
            const t = It(e);
            (this.tableFullColumn = t),
              this.cacheColumnMap(),
              this.restoreCustomStorage(),
              this.parseColumns().then(() => {
                this.scrollXLoad && this.loadScrollXData(!0);
              }),
              this.clearMergeCells(),
              this.clearMergeFooterItems(),
              this.handleTableData(!0),
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                (this.scrollXLoad || this.scrollYLoad) &&
                this.expandColumn &&
                g.warn("vxe.error.scrollErrProp", ["column.type=expand"]),
              this.$nextTick(() => {
                this.$toolbar &&
                  this.$toolbar.syncUpdate({ collectColumn: e, $table: this });
              });
          },
          updateCache(e) {
            const t = this.treeConfig,
              i = this.treeOpts,
              s = this.tableFullData,
              o = this.fullDataRowMap,
              r = this.fullAllDataRowMap;
            let l = this.fullDataRowIdData,
              a = this.fullAllDataRowIdData;
            const h = At(this),
              c = t && i.lazy,
              d = (s, d, u, p, f) => {
                let m = Rt(this, s);
                m || ((m = Ut()), n.a.set(s, h, m)),
                  c &&
                    s[i.hasChild] &&
                    n.a.isUndefined(s[i.children]) &&
                    (s[i.children] = null);
                const g = {
                  row: s,
                  rowid: m,
                  index: t && f ? -1 : d,
                  items: u,
                  parent: f,
                };
                e && ((l[m] = g), o.set(s, g)), (a[m] = g), r.set(s, g);
              };
            e && ((l = this.fullDataRowIdData = {}), o.clear()),
              (a = this.fullAllDataRowIdData = {}),
              r.clear(),
              t ? n.a.eachTree(s, d, i) : s.forEach(d);
          },
          loadChildren(e, t) {
            return this.createData(t).then((t) => {
              const i = this.keepSource,
                s = this.tableSourceData,
                o = this.treeOpts,
                r = this.fullDataRowIdData,
                l = this.fullDataRowMap,
                a = this.fullAllDataRowMap,
                h = this.fullAllDataRowIdData,
                c = o.children;
              if (i) {
                const i = Rt(this, e),
                  r = n.a.findTree(s, (e) => i === Rt(this, e), o);
                r && (r.item[c] = n.a.clone(t, !0));
              }
              return (
                n.a.eachTree(
                  t,
                  (e, t, i, s, n) => {
                    const o = Rt(this, e),
                      c = { row: e, rowid: o, index: -1, items: i, parent: n };
                    (r[o] = c), l.set(e, c), (h[o] = c), a.set(e, c);
                  },
                  o
                ),
                (e[c] = t),
                t
              );
            });
          },
          cacheColumnMap() {
            const e = this.tableFullColumn,
              t = this.collectColumn,
              i = this.fullColumnMap,
              s = this.showOverflow,
              o = (this.fullColumnIdData = {}),
              r = (this.fullColumnFieldData = {}),
              l = t.some(Dt);
            let a,
              h,
              c,
              d,
              u,
              p = !!s;
            const f = (e, t, s, n, l) => {
              const f = e.id,
                m = e.property,
                v = e.fixed,
                _ = e.type,
                b = e.treeNode,
                y = { column: e, colid: f, index: t, items: s, parent: l };
              m &&
                ("development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  r[m] &&
                  g.warn("vxe.error.colRepet", ["field", m]),
                (r[m] = y)),
                !u && v && (u = v),
                b
                  ? ("development" ===
                      Object({ NODE_ENV: "production", BASE_URL: "" })
                        .VUE_APP_VXE_TABLE_ENV &&
                      h &&
                      g.warn("vxe.error.colRepet", ["tree-node", b]),
                    h || (h = e))
                  : "expand" === _ &&
                    ("development" ===
                      Object({ NODE_ENV: "production", BASE_URL: "" })
                        .VUE_APP_VXE_TABLE_ENV &&
                      a &&
                      g.warn("vxe.error.colRepet", ["type", _]),
                    a || (a = e)),
                "development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  ("checkbox" === _
                    ? (c && g.warn("vxe.error.colRepet", ["type", _]),
                      c || (c = e))
                    : "radio" === _ &&
                      (d && g.warn("vxe.error.colRepet", ["type", _]),
                      d || (d = e))),
                "development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  (this.showOverflow &&
                    !1 === e.showOverflow &&
                    g.warn("vxe.error.errConflicts", [
                      `table.show-overflow=${this.showOverflow}`,
                      `column.show-overflow=${e.showOverflow}`,
                    ]),
                  this.showHeaderOverflow &&
                    !1 === e.showHeaderOverflow &&
                    g.warn("vxe.error.errConflicts", [
                      `table.show-header-overflow=${this.showHeaderOverflow}`,
                      `column.show-header-overflow=${e.showHeaderOverflow}`,
                    ]),
                  this.showFooterOverflow &&
                    !1 === e.showFooterOverflow &&
                    g.warn("vxe.error.errConflicts", [
                      `table.show-footer-overflow=${this.showFooterOverflow}`,
                      `column.show-footer-overflow=${e.showFooterOverflow}`,
                    ])),
                p && !1 === e.showOverflow && (p = !1),
                o[f] && g.error("vxe.error.colRepet", ["colId", f]),
                (o[f] = y),
                i.set(e, y);
            };
            i.clear(),
              l
                ? n.a.eachTree(t, (e, t, i, s, n, o) => {
                    (e.level = o.length), f(e, t, i, s, n);
                  })
                : e.forEach(f),
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                a &&
                this.mouseOpts.area &&
                g.error("vxe.error.errConflicts", [
                  "mouse-config.area",
                  "column.type=expand",
                ]),
              (this.isGroup = l),
              (this.treeNodeColumn = h),
              (this.expandColumn = a),
              (this.isAllOverflow = p);
          },
          getRowNode(e) {
            if (e) {
              const t = this.fullAllDataRowIdData,
                i = e.getAttribute("rowid"),
                s = t[i];
              if (s)
                return {
                  rowid: s.rowid,
                  item: s.row,
                  index: s.index,
                  items: s.items,
                  parent: s.parent,
                };
            }
            return null;
          },
          getColumnNode(e) {
            if (e) {
              const t = this.fullColumnIdData,
                i = e.getAttribute("colid"),
                s = t[i];
              if (s)
                return {
                  colid: s.colid,
                  item: s.column,
                  index: s.index,
                  items: s.items,
                  parent: s.parent,
                };
            }
            return null;
          },
          getRowIndex(e) {
            return this.fullDataRowMap.has(e)
              ? this.fullDataRowMap.get(e).index
              : -1;
          },
          getVTRowIndex(e) {
            return this.afterFullData.indexOf(e);
          },
          _getRowIndex(e) {
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.delFunc", ["_getRowIndex", "getVTRowIndex"]),
              this.getVTRowIndex(e)
            );
          },
          getVMRowIndex(e) {
            return this.tableData.indexOf(e);
          },
          $getRowIndex(e) {
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.delFunc", ["$getRowIndex", "getVMRowIndex"]),
              this.getVMRowIndex(e)
            );
          },
          getColumnIndex(e) {
            return this.fullColumnMap.has(e)
              ? this.fullColumnMap.get(e).index
              : -1;
          },
          getVTColumnIndex(e) {
            return this.visibleColumn.indexOf(e);
          },
          _getColumnIndex(e) {
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.delFunc", [
                  "_getColumnIndex",
                  "getVTColumnIndex",
                ]),
              this.getVTColumnIndex(e)
            );
          },
          getVMColumnIndex(e) {
            return this.tableColumn.indexOf(e);
          },
          $getColumnIndex(e) {
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.delFunc", [
                  "$getColumnIndex",
                  "getVMColumnIndex",
                ]),
              this.getVMColumnIndex(e)
            );
          },
          isSeqColumn(e) {
            return e && ("seq" === e.type || "index" === e.type);
          },
          defineField(e) {
            const t = this.radioOpts,
              i = this.checkboxOpts,
              s = this.treeConfig,
              o = this.treeOpts,
              r = this.expandOpts,
              l = At(this);
            this.visibleColumn.forEach((t) => {
              let i = t.property,
                s = t.editRender;
              i &&
                !n.a.has(e, i) &&
                n.a.set(
                  e,
                  i,
                  s && !n.a.isUndefined(s.defaultValue) ? s.defaultValue : null
                );
            });
            const a = [t.labelField, i.checkField, i.labelField, r.labelField];
            return (
              a.forEach((t) => {
                t && !n.a.get(e, t) && n.a.set(e, t, null);
              }),
              s &&
                o.lazy &&
                n.a.isUndefined(e[o.children]) &&
                (e[o.children] = null),
              n.a.get(e, l) || n.a.set(e, l, Ut()),
              e
            );
          },
          createData(e) {
            const t = this.treeConfig,
              i = this.treeOpts,
              s = (e) => this.defineField(Object.assign({}, e)),
              o = t ? n.a.mapTree(e, s, i) : e.map(s);
            return this.$nextTick().then(() => o);
          },
          createRow(e) {
            const t = n.a.isArray(e);
            return (
              t || (e = [e]),
              this.$nextTick().then(() =>
                this.createData(e).then((e) => (t ? e : e[0]))
              )
            );
          },
          revertData(e, t) {
            const i = this.keepSource,
              s = this.tableSourceData,
              o = this.treeConfig;
            if (!i)
              return (
                "development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  g.warn("vxe.error.reqProp", ["keep-source"]),
                this.$nextTick()
              );
            let r = e;
            return (
              e
                ? n.a.isArray(e) || (r = [e])
                : (r = n.a.toArray(this.getUpdateRecords())),
              r.length &&
                r.forEach((e) => {
                  if (!this.isInsertByRow(e)) {
                    const i = this.getRowIndex(e);
                    if (o && -1 === i)
                      throw new Error(
                        g.getLog("vxe.error.noTree", ["revertData"])
                      );
                    const r = s[i];
                    r &&
                      e &&
                      (t
                        ? n.a.set(e, t, n.a.clone(n.a.get(r, t), !0))
                        : n.a.destructuring(e, n.a.clone(r, !0)));
                  }
                }),
              e ? this.$nextTick() : this.reloadData(s)
            );
          },
          clearData(e, t) {
            const i = this.tableFullData,
              s = this.visibleColumn;
            return (
              arguments.length ? e && !n.a.isArray(e) && (e = [e]) : (e = i),
              t
                ? e.forEach((e) => n.a.set(e, t, null))
                : e.forEach((e) => {
                    s.forEach((t) => {
                      t.property && Lt(e, t, null);
                    });
                  }),
              this.$nextTick()
            );
          },
          isInsertByRow(e) {
            return this.editStore.insertList.indexOf(e) > -1;
          },
          isUpdateByRow(e, t) {
            const i = this.visibleColumn,
              s = this.keepSource,
              o = this.treeConfig,
              r = this.treeOpts,
              l = this.tableSourceData,
              a = this.fullDataRowIdData;
            if (s) {
              let s, h;
              const c = Rt(this, e);
              if (!a[c]) return !1;
              if (o) {
                const t = r.children,
                  i = n.a.findTree(l, (e) => c === Rt(this, e), r);
                (e = Object.assign({}, e, { [t]: null })),
                  i && (s = Object.assign({}, i.item, { [t]: null }));
              } else {
                const e = a[c].index;
                s = l[e];
              }
              if (s) {
                if (arguments.length > 1) return !Wt(s, e, t);
                for (let t = 0, n = i.length; t < n; t++)
                  if (((h = i[t].property), h && !Wt(s, e, h))) return !0;
              }
            }
            return !1;
          },
          getColumns(e) {
            const t = this.visibleColumn;
            return n.a.isUndefined(e) ? t.slice(0) : t[e];
          },
          getColumnById(e) {
            const t = this.fullColumnIdData;
            return t[e] ? t[e].column : null;
          },
          getColumnByField(e) {
            const t = this.fullColumnFieldData;
            return t[e] ? t[e].column : null;
          },
          getTableColumn() {
            return {
              collectColumn: this.collectColumn.slice(0),
              fullColumn: this.tableFullColumn.slice(0),
              visibleColumn: this.visibleColumn.slice(0),
              tableColumn: this.tableColumn.slice(0),
            };
          },
          getData(e) {
            const t = this.data || this.tableSynchData;
            return n.a.isUndefined(e) ? t.slice(0) : t[e];
          },
          getCheckboxRecords() {
            const e = this.tableFullData,
              t = this.treeConfig,
              i = this.treeOpts,
              s = this.checkboxOpts,
              o = s.checkField;
            let r = [];
            if (o)
              r = t
                ? n.a.filterTree(e, (e) => n.a.get(e, o), i)
                : e.filter((e) => n.a.get(e, o));
            else {
              const s = this.selection;
              r = t
                ? n.a.filterTree(e, (e) => s.indexOf(e) > -1, i)
                : e.filter((e) => s.indexOf(e) > -1);
            }
            return r;
          },
          updateAfterFullData() {
            const e = this.tableFullColumn,
              t = this.tableFullData,
              i = this.filterOpts,
              s = this.sortOpts,
              o = i.remote,
              r = i.filterMethod,
              l = s.remote,
              a = s.sortMethod,
              h = s.multiple;
            let c = t.slice(0);
            const d = [],
              u = [];
            e.forEach((e) => {
              const t = e.sortable,
                i = e.order,
                s = e.filters;
              if (!o && s && s.length) {
                const t = [],
                  i = [];
                s.forEach((e) => {
                  e.checked && (i.push(e), t.push(e.value));
                }),
                  i.length && d.push({ column: e, valueList: t, itemList: i });
              }
              !l &&
                t &&
                i &&
                u.push({ column: e, property: e.property, order: i });
            }),
              d.length &&
                (c = c.filter((e) => {
                  return d.every((t) => {
                    let i = t.column,
                      s = t.valueList,
                      l = t.itemList;
                    if (s.length && !o) {
                      const t = i.filterMethod,
                        o = i.filterRender,
                        a = o ? Ke.renderer.get(o.name) : null,
                        h = a && a.renderFilter ? a.filterMethod : null,
                        c = g.getCellValue(e, i);
                      return t
                        ? l.some((s) =>
                            t({
                              value: s.value,
                              option: s,
                              cellValue: c,
                              row: e,
                              column: i,
                              $table: this,
                            })
                          )
                        : h
                        ? l.some((t) =>
                            h({
                              value: t.value,
                              option: t,
                              cellValue: c,
                              row: e,
                              column: i,
                              $table: this,
                            })
                          )
                        : r
                        ? r({
                            options: l,
                            values: s,
                            cellValue: c,
                            row: e,
                            column: i,
                          })
                        : s.indexOf(n.a.get(e, i.property)) > -1;
                    }
                    return !0;
                  });
                }));
            const p = u[0];
            if (!l && p)
              if (a) {
                const e = a({
                  data: c,
                  column: p.column,
                  property: p.property,
                  order: p.order,
                  sortList: u,
                  $table: this,
                });
                c = n.a.isArray(e) ? e : c;
              } else if (h)
                c = n.a.orderBy(
                  c,
                  u.map((e) => {
                    let t = e.column,
                      i = e.order;
                    return [si(this, t), i];
                  })
                );
              else {
                let e = p.column,
                  t = null;
                if (e.sortMethod) t = c.sort(e.sortMethod);
                else if (e.sortBy) t = Object($t["b"])(c, e.sortBy, !0);
                else if (e.formatter && e.sortByFormatter) {
                  let i = { $table: this, column: e };
                  t = c.sort((t, s) => {
                    return (
                      (i.row = t),
                      (t = this.getCellLabel(t, e, i)),
                      (i.row = s),
                      (s = this.getCellLabel(s, e, i)),
                      Object($t["c"])(t, s)
                    );
                  });
                } else t = e.property ? Object($t["b"])(c, e.property, !0) : c;
                c = "desc" === e.order ? t.reverse() : t;
              }
            return (this.afterFullData = c), c;
          },
          getRowById(e) {
            const t = this.fullDataRowIdData;
            return t[e] ? t[e].row : null;
          },
          getRowid(e) {
            const t = this.fullAllDataRowMap;
            return t.has(e) ? t.get(e).rowid : null;
          },
          getTableData() {
            const e = this.tableFullData,
              t = this.afterFullData,
              i = this.tableData,
              s = this.footerTableData;
            return {
              fullData: e.slice(0),
              visibleData: t.slice(0),
              tableData: i.slice(0),
              footerData: s.slice(0),
            };
          },
          handleLoadDefaults() {
            this.checkboxConfig && this.handleDefaultSelectionChecked(),
              this.radioConfig && this.handleDefaultRadioChecked(),
              this.expandConfig && this.handleDefaultRowExpand(),
              this.treeConfig && this.handleDefaultTreeExpand(),
              this.mergeCells && this.handleDefaultMergeCells(),
              this.mergeFooterItems && this.handleDefaultMergeFooterItems(),
              this.$nextTick(() => setTimeout(this.recalculate));
          },
          handleInitDefaults() {
            const e = this.sortConfig;
            e && this.handleDefaultSort();
          },
          hideColumn(e) {
            const t = it(this, e);
            return t && (t.visible = !1), this.handleCustom();
          },
          showColumn(e) {
            const t = it(this, e);
            return t && (t.visible = !0), this.handleCustom();
          },
          resetColumn(e) {
            const t = this.customOpts,
              i = t.checkMethod,
              s = Object.assign({ visible: !0, resizable: !0 === e }, e);
            return (
              this.tableFullColumn.forEach((e) => {
                s.resizable && (e.resizeWidth = 0),
                  (i && !i({ column: e })) || (e.visible = e.defaultVisible);
              }),
              s.resizable && this.saveCustomResizable(!0),
              this.handleCustom()
            );
          },
          handleCustom() {
            return (
              this.saveCustomVisible(),
              this.analyColumnWidth(),
              this.refreshColumn()
            );
          },
          restoreCustomStorage() {
            const e = this.id,
              t = this.collectColumn,
              i = this.customConfig,
              s = this.customOpts,
              o = s.storage,
              r = !0 === s.storage,
              l = r || (o && o.resizable),
              a = r || (o && o.visible);
            if (i && (l || a)) {
              const i = {};
              if (!e) return void g.error("vxe.error.reqProp", ["id"]);
              if (l) {
                const t = Zt(jt)[e];
                t &&
                  n.a.each(t, (e, t) => {
                    i[t] = { field: t, resizeWidth: e };
                  });
              }
              if (a) {
                const t = Zt(Ht)[e];
                if (t) {
                  const e = t.split("|"),
                    s = e[0] ? e[0].split(",") : [],
                    n = e[1] ? e[1].split(",") : [];
                  s.forEach((e) => {
                    i[e]
                      ? (i[e].visible = !1)
                      : (i[e] = { field: e, visible: !1 });
                  }),
                    n.forEach((e) => {
                      i[e]
                        ? (i[e].visible = !0)
                        : (i[e] = { field: e, visible: !0 });
                    });
                }
              }
              const s = {};
              n.a.eachTree(t, (e) => {
                const t = e.getKey();
                t && (s[t] = e);
              }),
                n.a.each(i, (e, t) => {
                  let i = e.visible,
                    o = e.resizeWidth;
                  const r = s[t];
                  r &&
                    (n.a.isNumber(o) && (r.resizeWidth = o),
                    n.a.isBoolean(i) && (r.visible = i));
                });
            }
          },
          saveCustomVisible() {
            const e = this.id,
              t = this.collectColumn,
              i = this.customConfig,
              s = this.customOpts,
              o = s.checkMethod,
              r = s.storage,
              l = !0 === s.storage,
              a = l || (r && r.visible);
            if (i && a) {
              const i = Zt(Ht),
                s = [],
                r = [];
              if (!e) return void g.error("vxe.error.reqProp", ["id"]);
              n.a.eachTree(t, (e) => {
                if (!o || o({ column: e }))
                  if (!e.visible && e.defaultVisible) {
                    const t = e.getKey();
                    t && s.push(t);
                  } else if (e.visible && !e.defaultVisible) {
                    const t = e.getKey();
                    t && r.push(t);
                  }
              }),
                (i[e] =
                  [s.join(",")]
                    .concat(r.length ? [r.join(",")] : [])
                    .join("|") || void 0),
                localStorage.setItem(Ht, n.a.toJSONString(i));
            }
          },
          saveCustomResizable(e) {
            const t = this.id,
              i = this.collectColumn,
              s = this.customConfig,
              o = this.customOpts,
              r = o.storage,
              l = !0 === o.storage,
              a = l || (r && r.resizable);
            if (s && a) {
              const s = Zt(jt);
              let o;
              if (!t) return void g.error("vxe.error.reqProp", ["id"]);
              e ||
                ((o = n.a.isPlainObject(s[t]) ? s[t] : {}),
                n.a.eachTree(i, (e) => {
                  if (e.resizeWidth) {
                    const t = e.getKey();
                    t && (o[t] = e.renderWidth);
                  }
                })),
                (s[t] = n.a.isEmpty(o) ? void 0 : o),
                localStorage.setItem(jt, n.a.toJSONString(s));
            }
          },
          refreshColumn() {
            return this.parseColumns()
              .then(() => {
                return this.refreshScroll();
              })
              .then(() => {
                return this.recalculate();
              });
          },
          parseColumns() {
            const e = [],
              t = [],
              i = [],
              s = this.collectColumn,
              o = this.tableFullColumn,
              r = this.isGroup,
              l = this.columnStore,
              a = this.sXOpts,
              h = this.scrollXStore;
            if (r) {
              const o = [],
                r = [],
                l = [];
              n.a.eachTree(s, (s, o, r, l, a) => {
                const h = Dt(s);
                a && a.fixed && (s.fixed = a.fixed),
                  a && s.fixed !== a.fixed && g.error("vxe.error.groupFixed"),
                  h
                    ? (s.visible = !!n.a.findTree(s.children, (e) =>
                        Dt(e) ? null : e.visible
                      ))
                    : s.visible &&
                      ("left" === s.fixed
                        ? e.push(s)
                        : "right" === s.fixed
                        ? i.push(s)
                        : t.push(s));
              }),
                s.forEach((e) => {
                  e.visible &&
                    ("left" === e.fixed
                      ? o.push(e)
                      : "right" === e.fixed
                      ? l.push(e)
                      : r.push(e));
                }),
                (this.tableGroupColumn = o.concat(r).concat(l));
            } else
              o.forEach((s) => {
                s.visible &&
                  ("left" === s.fixed
                    ? e.push(s)
                    : "right" === s.fixed
                    ? i.push(s)
                    : t.push(s));
              });
            const c = e.concat(t).concat(i);
            let d = a.enabled && a.gt > -1 && a.gt < o.length;
            if (
              ((this.hasFixedColumn = e.length > 0 || i.length > 0),
              Object.assign(l, { leftList: e, centerList: t, rightList: i }),
              d &&
                r &&
                ((d = !1),
                "development" ===
                  Object({ NODE_ENV: "production", BASE_URL: "" })
                    .VUE_APP_VXE_TABLE_ENV &&
                  g.warn("vxe.error.scrollXNotGroup")),
              d)
            ) {
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                (this.showHeader &&
                  !this.showHeaderOverflow &&
                  g.warn("vxe.error.reqProp", ["show-header-overflow"]),
                this.showFooter &&
                  !this.showFooterOverflow &&
                  g.warn("vxe.error.reqProp", ["show-footer-overflow"]),
                this.spanMethod &&
                  g.warn("vxe.error.scrollErrProp", ["span-method"]),
                this.footerSpanMethod &&
                  g.warn("vxe.error.scrollErrProp", ["footer-span-method"]));
              const e = Kt(this),
                t = e.visibleSize;
              (h.startIndex = 0), (h.endIndex = t), (h.visibleSize = t);
            }
            return (
              (c.length === this.visibleColumn.length &&
                this.visibleColumn.every((e, t) => e === c[t])) ||
                (this.clearMergeCells(), this.clearMergeFooterItems()),
              (this.scrollXLoad = d),
              (this.visibleColumn = c),
              this.handleTableColumn(),
              this.updateFooter()
                .then(() => {
                  return this.recalculate();
                })
                .then(() => {
                  return this.updateCellAreas(), this.recalculate();
                })
            );
          },
          analyColumnWidth() {
            const e = this.columnOpts,
              t = e.width,
              i = e.minWidth,
              s = [],
              n = [],
              o = [],
              r = [],
              l = [],
              a = [];
            this.tableFullColumn.forEach((e) => {
              t && !e.width && (e.width = t),
                i && !e.minWidth && (e.minWidth = i),
                e.visible &&
                  (e.resizeWidth
                    ? s.push(e)
                    : A.isPx(e.width)
                    ? n.push(e)
                    : A.isScale(e.width)
                    ? r.push(e)
                    : A.isPx(e.minWidth)
                    ? o.push(e)
                    : A.isScale(e.minWidth)
                    ? l.push(e)
                    : a.push(e));
            }),
              Object.assign(this.columnStore, {
                resizeList: s,
                pxList: n,
                pxMinList: o,
                scaleList: r,
                scaleMinList: l,
                autoList: a,
              });
          },
          refreshScroll() {
            const e = this.lastScrollLeft,
              t = this.lastScrollTop,
              i = this.$refs,
              s = i.tableBody,
              n = i.leftBody,
              o = i.rightBody,
              r = i.tableFooter,
              l = s ? s.$el : null,
              a = n ? n.$el : null,
              h = o ? o.$el : null,
              c = r ? r.$el : null;
            if (e || t) return Xt(this, e, t);
            $(l, t), $(a, t), $(h, t), R(c, e);
          },
          recalculate(e) {
            const t = this.$refs,
              i = t.tableBody,
              s = t.tableHeader,
              n = t.tableFooter,
              o = i ? i.$el : null,
              r = s ? s.$el : null,
              l = n ? n.$el : null;
            return o && (this.autoCellWidth(r, o, l), !0 === e)
              ? this.computeScrollLoad().then(() => {
                  return this.autoCellWidth(r, o, l), this.computeScrollLoad();
                })
              : this.computeScrollLoad();
          },
          autoCellWidth(e, t, i) {
            let s = 0;
            const n = 40,
              o = t.clientWidth - 1;
            let r = o,
              l = r / 100;
            const a = this.fit,
              h = this.columnStore,
              c = h.resizeList,
              d = h.pxMinList,
              u = h.pxList,
              p = h.scaleList,
              f = h.scaleMinList,
              m = h.autoList;
            if (
              (d.forEach((e) => {
                const t = parseInt(e.minWidth);
                (s += t), (e.renderWidth = t);
              }),
              f.forEach((e) => {
                const t = Math.floor(parseInt(e.minWidth) * l);
                (s += t), (e.renderWidth = t);
              }),
              p.forEach((e) => {
                const t = Math.floor(parseInt(e.width) * l);
                (s += t), (e.renderWidth = t);
              }),
              u.forEach((e) => {
                const t = parseInt(e.width);
                (s += t), (e.renderWidth = t);
              }),
              c.forEach((e) => {
                const t = parseInt(e.resizeWidth);
                (s += t), (e.renderWidth = t);
              }),
              (r -= s),
              (l =
                r > 0 ? Math.floor(r / (f.length + d.length + m.length)) : 0),
              a
                ? r > 0 &&
                  f.concat(d).forEach((e) => {
                    (s += l), (e.renderWidth += l);
                  })
                : (l = n),
              m.forEach((e) => {
                const t = Math.max(l, n);
                (e.renderWidth = t), (s += t);
              }),
              a)
            ) {
              const e = p.concat(f).concat(d).concat(m);
              let t = e.length - 1;
              if (t > 0) {
                let i = o - s;
                if (i > 0) {
                  while (i > 0 && t >= 0) i--, e[t--].renderWidth++;
                  s = o;
                }
              }
            }
            const g = t.offsetHeight,
              v = t.scrollHeight > t.clientHeight;
            if (
              ((this.scrollbarWidth = v ? t.offsetWidth - t.clientWidth : 0),
              (this.overflowY = v),
              (this.tableWidth = s),
              (this.tableHeight = g),
              e
                ? ((this.headerHeight = e.clientHeight),
                  this.$nextTick(() => {
                    e &&
                      t &&
                      e.scrollLeft !== t.scrollLeft &&
                      (e.scrollLeft = t.scrollLeft);
                  }))
                : (this.headerHeight = 0),
              i)
            ) {
              const e = i.offsetHeight;
              (this.scrollbarHeight = Math.max(e - i.clientHeight, 0)),
                (this.overflowX = s > i.clientWidth),
                (this.footerHeight = e);
            } else
              (this.footerHeight = 0),
                (this.scrollbarHeight = Math.max(g - t.clientHeight, 0)),
                (this.overflowX = s > o);
            this.updateHeight(),
              (this.parentHeight = Math.max(
                this.headerHeight + this.footerHeight + 20,
                this.getParentHeight()
              )),
              this.overflowX && this.checkScrolling();
          },
          updateHeight() {
            (this.customHeight = Mt(this, "height")),
              (this.customMaxHeight = Mt(this, "maxHeight"));
          },
          updateStyle() {
            let e = this.$refs,
              t = this.isGroup,
              i = this.fullColumnIdData,
              s = this.tableColumn,
              o = this.customHeight,
              r = (this.customMaxHeight, this.border),
              l = this.headerHeight,
              a = this.showFooter,
              h = this.showOverflow,
              c = this.showHeaderOverflow,
              d = this.showFooterOverflow,
              u = this.footerHeight,
              p = this.tableHeight,
              f = this.tableWidth,
              m = this.scrollbarHeight,
              g = this.scrollbarWidth,
              v = this.scrollXLoad,
              _ = this.scrollYLoad,
              y = this.cellOffsetWidth,
              x = this.columnStore,
              w = this.elemStore,
              S = this.editStore,
              E = this.currentRow,
              k = this.mouseConfig,
              C = this.keyboardConfig,
              T = this.keyboardOpts,
              O = this.spanMethod,
              $ = this.mergeList,
              R = this.mergeFooterList,
              A = this.footerSpanMethod,
              L = this.isAllOverflow;
            const D = ["main", "left", "right"],
              I = e.emptyPlaceholder;
            w["main-body-wrapper"];
            let M = Math.max(32, l);
            return (
              I &&
                ((I.style.top = `${M}px`),
                (I.style.height = "calc(100% - " + M + "px)")),
              o > 0 && a && (o += m),
              D.forEach((l, a) => {
                const S = a > 0 ? l : "",
                  E = ["header", "body", "footer"],
                  k = x[`${S}List`],
                  D = e[`${S}Container`];
                E.forEach((e) => {
                  const a = w[`${l}-${e}-wrapper`],
                    E = w[`${l}-${e}-table`];
                  if ("header" === e) {
                    let i = f,
                      o = !1;
                    t || (S && (v || c) && (o = !0)),
                      o && (s = k),
                      (o || v) &&
                        (i = s.reduce((e, t) => e + t.renderWidth, 0)),
                      E &&
                        ((E.style.width = i ? `${i + g + 1}px` : ""),
                        b.msie &&
                          n.a.arrayEach(
                            E.querySelectorAll(".vxe-resizable"),
                            (e) => {
                              e.style.height = `${e.parentNode.offsetHeight}px`;
                            }
                          ));
                    const a = w[`${l}-${e}-repair`];
                    a && (a.style.width = `${f}px`);
                    const h = w[`${l}-${e}-list`];
                    t &&
                      h &&
                      n.a.arrayEach(h.querySelectorAll(".col--group"), (e) => {
                        const t = this.getColumnNode(e);
                        if (t) {
                          const i = t.item,
                            s = i.showHeaderOverflow,
                            o = n.a.isBoolean(s) ? s : c,
                            l = "ellipsis" === o,
                            a = "title" === o,
                            h = !0 === o || "tooltip" === o,
                            d = a || h || l;
                          let u = 0,
                            p = 0;
                          d &&
                            n.a.eachTree(i.children, (e) => {
                              (e.children && i.children.length) || p++,
                                (u += e.renderWidth);
                            }),
                            (e.style.width = d
                              ? `${u - p - (r ? 2 : 0)}px`
                              : "");
                        }
                      });
                  } else if ("body" === e) {
                    const t = w[`${l}-${e}-emptyBlock`];
                    if (
                      (a && (a.style.height = "calc(100% - " + M + "px)"), D)
                    ) {
                      const e = "right" === S,
                        t = x[`${S}List`];
                      a && (a.style.top = `${M}px`),
                        (D.style.height = "calc(100% - 11px)"),
                        (D.style.width = `${t.reduce(
                          (e, t) => e + t.renderWidth,
                          e ? g : 0
                        )}px`);
                    }
                    let i = f,
                      n = !1;
                    S &&
                      ($.length ||
                        O ||
                        (C && T.isMerge) ||
                        !(v || _ || (h ? L : h)) ||
                        (n = !0)),
                      n && (s = k),
                      (n || v) &&
                        (i = s.reduce((e, t) => e + t.renderWidth, 0)),
                      E &&
                        ((E.style.width = i ? `${i + 1}px` : ""),
                        (E.style.paddingRight =
                          g && S && (b["-moz"] || b.safari) ? `${g}px` : "")),
                      t && (t.style.width = i ? `${i}px` : "");
                  } else if ("footer" === e) {
                    let e = f,
                      t = !1;
                    S && ((R.length && A) || (!v && !d) || (t = !0)),
                      t && (s = k),
                      (t || v) &&
                        (e = s.reduce((e, t) => e + t.renderWidth, 0)),
                      a &&
                        (D && (a.style.top = `${o > 0 ? o - u : p + M}px`),
                        (a.style.marginTop = `${-m}px`)),
                      E && (E.style.width = e ? `${e + g + 1}px` : "");
                  }
                  const I = w[`${l}-${e}-colgroup`];
                  I &&
                    n.a.arrayEach(I.children, (t) => {
                      const s = t.getAttribute("name");
                      if (
                        ("col_gutter" === s && (t.style.width = `${g}px`), i[s])
                      ) {
                        const o = i[s].column,
                          r = o.showHeaderOverflow,
                          a = o.showFooterOverflow,
                          u = o.showOverflow;
                        let p;
                        (t.style.width = `${o.renderWidth}px`),
                          (p =
                            "header" === e
                              ? n.a.isUndefined(r) || n.a.isNull(r)
                                ? c
                                : r
                              : "footer" === e
                              ? n.a.isUndefined(a) || n.a.isNull(a)
                                ? d
                                : a
                              : n.a.isUndefined(u) || n.a.isNull(u)
                              ? h
                              : u);
                        const f = "ellipsis" === p,
                          m = "title" === p,
                          g = !0 === p || "tooltip" === p;
                        let b = m || g || f;
                        const x = w[`${l}-${e}-list`];
                        "header" === e || "footer" === e
                          ? v && !b && (b = !0)
                          : (!v && !_) || b || (b = !0),
                          x &&
                            n.a.arrayEach(
                              x.querySelectorAll(`.${o.id}`),
                              (e) => {
                                const t = parseInt(
                                    e.getAttribute("colspan") || 1
                                  ),
                                  i = e.querySelector(".vxe-cell");
                                let s = o.renderWidth;
                                if (i) {
                                  if (t > 1) {
                                    const e = this.getColumnIndex(o);
                                    for (let i = 1; i < t; i++) {
                                      const t = this.getColumns(e + i);
                                      t && (s += t.renderWidth);
                                    }
                                  }
                                  let e = y * t > 2 ? y * t : 0;
                                  i.style.width = b ? `${s - e}px` : "";
                                }
                              }
                            );
                      }
                    });
                });
              }),
              E && this.setCurrentRow(E),
              k &&
                k.selected &&
                S.selected.row &&
                S.selected.column &&
                this.addColSdCls(),
              this.$nextTick()
            );
          },
          checkScrolling() {
            const e = this.$refs,
              t = e.tableBody,
              i = e.leftContainer,
              s = e.rightContainer,
              n = t ? t.$el : null;
            n &&
              (i &&
                A[n.scrollLeft > 0 ? "addClass" : "removeClass"](
                  i,
                  "scrolling--middle"
                ),
              s &&
                A[
                  n.clientWidth < n.scrollWidth - Math.ceil(n.scrollLeft)
                    ? "addClass"
                    : "removeClass"
                ](s, "scrolling--middle"));
          },
          preventEvent(e, t, i, s, n) {
            const o = Ke.interceptor.get(t);
            let r;
            return (
              o.some(
                (t) =>
                  !1 ===
                  t(
                    Object.assign(
                      { $grid: this.$xegrid, $table: this, $event: e },
                      i
                    )
                  )
              ) ||
                (s && (r = s())),
              n && n(),
              r
            );
          },
          handleGlobalMousedownEvent(e) {
            const t = this.$el,
              i = this.$refs,
              s = this.$xegrid,
              n = this.$toolbar,
              o = this.mouseConfig,
              r = this.editStore,
              l = this.ctxMenuStore,
              a = this.editOpts,
              h = this.filterStore,
              c = this.getRowNode,
              d = r.actived,
              u = i.ctxWrapper,
              p = i.filterWrapper,
              f = i.validTip;
            if (
              (p &&
                (Ft(e, t, "vxe-cell--filter").flag ||
                  Ft(e, p.$el).flag ||
                  Ft(e, document.body, "vxe-table--ignore-clear").flag ||
                  this.preventEvent(
                    e,
                    "event.clearFilter",
                    h.args,
                    this.closeFilter
                  )),
              d.row)
            ) {
              if (!1 !== a.autoClear) {
                const i = d.args.cell;
                (i && Ft(e, i).flag) ||
                  (f && Ft(e, f.$el).flag) ||
                  ((!this.lastCallTime ||
                    this.lastCallTime + 50 < Date.now()) &&
                    (Ft(e, document.body, "vxe-table--ignore-clear").flag ||
                      this.preventEvent(e, "event.clearActived", d.args, () => {
                        let i;
                        if ("row" === a.mode) {
                          const s = Ft(e, t, "vxe-body--row");
                          i = !!s.flag && c(s.targetElem).item !== d.args.row;
                        } else i = !Ft(e, t, "col--edit").flag;
                        if (
                          (i || (i = Ft(e, t, "vxe-header--row").flag),
                          i || (i = Ft(e, t, "vxe-footer--row").flag),
                          !i && this.height && !this.overflowY)
                        ) {
                          const t = e.target;
                          Pt(t, "vxe-table--body-wrapper") &&
                            (i = e.offsetY < t.clientHeight);
                        }
                        (!i && Ft(e, t).flag) ||
                          setTimeout(() => this.clearActived(e));
                      })));
              }
            } else
              o &&
                (Ft(e, t).flag ||
                  (s && Ft(e, s.$el).flag) ||
                  (u && Ft(e, u.$el).flag) ||
                  (n && Ft(e, n.$el).flag) ||
                  (this.clearSelected(),
                  Ft(e, document.body, "vxe-table--ignore-areas-clear").flag ||
                    this.preventEvent(e, "event.clearAreas", {}, () => {
                      this.clearCellAreas(), this.clearCopyCellArea();
                    })));
            l.visible && u && !Ft(e, u.$el).flag && this.closeMenu(),
              (this.isActivated = Ft(e, (s || this).$el).flag);
          },
          handleGlobalBlurEvent() {
            this.closeFilter(), this.closeMenu();
          },
          handleGlobalMousewheelEvent() {
            this.closeTooltip(), this.closeMenu();
          },
          keydownEvent(e) {
            const t = this.filterStore,
              i = this.ctxMenuStore,
              s = this.editStore,
              n = this.keyboardConfig,
              o = this.mouseConfig,
              r = this.mouseOpts,
              l = s.actived,
              a = e.keyCode,
              h = 27 === a;
            h &&
              this.preventEvent(e, "event.keydown", null, () => {
                if (n && o && r.area && this.handleKeyboardEvent)
                  this.handleKeyboardEvent(e);
                else if (
                  (l.row || t.visible || i.visible) &&
                  (e.stopPropagation(),
                  this.closeFilter(),
                  this.closeMenu(),
                  l.row)
                ) {
                  const t = l.args;
                  this.clearActived(e),
                    o &&
                      r.selected &&
                      this.$nextTick(() => this.handleSelected(t, e));
                }
                this.emitEvent("keydown", {}, e);
              });
          },
          handleGlobalKeydownEvent(e) {
            this.isActivated &&
              this.preventEvent(e, "event.keydown", null, () => {
                const t = this.filterStore,
                  i = this.isCtxMenu,
                  s = this.ctxMenuStore,
                  o = this.editStore,
                  r = this.editOpts,
                  l = this.editConfig,
                  a = this.mouseConfig,
                  h = this.mouseOpts,
                  c = this.keyboardConfig,
                  d = this.keyboardOpts,
                  u = this.treeConfig,
                  f = this.treeOpts,
                  m = this.highlightCurrentRow,
                  g = this.currentRow,
                  v = this.bodyCtxMenu,
                  _ = o.selected,
                  b = o.actived,
                  y = e.keyCode,
                  x = 8 === y,
                  w = 9 === y,
                  S = 13 === y,
                  E = 27 === y,
                  k = 32 === y,
                  C = 37 === y,
                  T = 38 === y,
                  O = 39 === y,
                  $ = 40 === y,
                  R = 46 === y,
                  A = 113 === y,
                  L = 93 === y,
                  D = e.metaKey,
                  I = e.ctrlKey,
                  M = e.shiftKey,
                  P = e.altKey,
                  N = C || T || O || $,
                  B = i && s.visible && (S || k || N),
                  F = l && b.column && b.row;
                let V;
                if (t.visible) E && this.closeFilter();
                else {
                  if (B)
                    e.preventDefault(),
                      s.showChild && Dt(s.selected)
                        ? this.moveCtxMenu(
                            e,
                            y,
                            s,
                            "selectChild",
                            37,
                            !1,
                            s.selected.children
                          )
                        : this.moveCtxMenu(
                            e,
                            y,
                            s,
                            "selected",
                            39,
                            !0,
                            this.ctxMenuList
                          );
                  else if (c && a && h.area && this.handleKeyboardEvent)
                    this.handleKeyboardEvent(e);
                  else if (
                    c &&
                    k &&
                    d.isChecked &&
                    _.row &&
                    _.column &&
                    ("checkbox" === _.column.type || "radio" === _.column.type)
                  )
                    e.preventDefault(),
                      "checkbox" === _.column.type
                        ? this.handleToggleCheckRowEvent(e, _.args)
                        : this.triggerRadioRowEvent(e, _.args);
                  else if (A)
                    F ||
                      (_.row &&
                        _.column &&
                        (e.stopPropagation(),
                        e.preventDefault(),
                        this.handleActived(_.args, e)));
                  else if (L)
                    (this._keyCtx = _.row && _.column && v.length),
                      clearTimeout(this.keyCtxTimeout),
                      (this.keyCtxTimeout = setTimeout(() => {
                        this._keyCtx = !1;
                      }, 1e3));
                  else if (
                    S &&
                    !P &&
                    c &&
                    d.isEnter &&
                    (_.row || b.row || (u && m && g))
                  ) {
                    if (I)
                      b.row &&
                        ((V = b.args),
                        this.clearActived(e),
                        a &&
                          h.selected &&
                          this.$nextTick(() => this.handleSelected(V, e)));
                    else if (_.row || b.row) {
                      const t = _.row ? _.args : b.args;
                      M
                        ? d.enterToTab
                          ? this.moveTabSelected(t, M, e)
                          : this.moveSelected(t, C, !0, O, !1, e)
                        : d.enterToTab
                        ? this.moveTabSelected(t, M, e)
                        : this.moveSelected(t, C, !1, O, !0, e);
                    } else if (u && m && g) {
                      const t = g[f.children];
                      if (t && t.length) {
                        e.preventDefault();
                        const i = t[0];
                        (V = { $table: this, row: i }),
                          this.setTreeExpand(g, !0)
                            .then(() => this.scrollToRow(i))
                            .then(() => this.triggerCurrentRowEvent(e, V));
                      }
                    }
                  } else if (N && c && d.isArrow)
                    F ||
                      (_.row && _.column
                        ? this.moveSelected(_.args, C, T, O, $, e)
                        : (T || $) && m && this.moveCurrentRow(T, $, e));
                  else if (w && c && d.isTab)
                    _.row || _.column
                      ? this.moveTabSelected(_.args, M, e)
                      : (b.row || b.column) &&
                        this.moveTabSelected(b.args, M, e);
                  else if (c && (R || (u && m && g ? x && d.isArrow : x))) {
                    if (!F) {
                      const t = d.delMethod,
                        i = d.backMethod;
                      if (d.isDel && (_.row || _.column))
                        t
                          ? t({
                              row: _.row,
                              rowIndex: this.getRowIndex(_.row),
                              column: _.column,
                              columnIndex: this.getColumnIndex(_.column),
                              $table: this,
                            })
                          : Lt(_.row, _.column, null),
                          x
                            ? i
                              ? i({
                                  row: _.row,
                                  rowIndex: this.getRowIndex(_.row),
                                  column: _.column,
                                  columnIndex: this.getColumnIndex(_.column),
                                  $table: this,
                                })
                              : this.handleActived(_.args, e)
                            : R && this.updateFooter();
                      else if (x && d.isArrow && u && m && g) {
                        const t = n.a.findTree(
                            this.afterFullData,
                            (e) => e === g,
                            f
                          ),
                          i = t.parent;
                        i &&
                          (e.preventDefault(),
                          (V = { $table: this, row: i }),
                          this.setTreeExpand(i, !1)
                            .then(() => this.scrollToRow(i))
                            .then(() => this.triggerCurrentRowEvent(e, V)));
                      }
                    }
                  } else if (
                    c &&
                    d.isEdit &&
                    !I &&
                    !D &&
                    (k ||
                      (y >= 48 && y <= 57) ||
                      (y >= 65 && y <= 90) ||
                      (y >= 96 && y <= 111) ||
                      (y >= 186 && y <= 192) ||
                      (y >= 219 && y <= 222))
                  ) {
                    const t = d.editMethod;
                    _.column &&
                      _.row &&
                      p(_.column.editRender) &&
                      ((r.activeMethod && !r.activeMethod(_.args)) ||
                        (t
                          ? t({
                              row: _.row,
                              rowIndex: this.getRowIndex(_.row),
                              column: _.column,
                              columnIndex: this.getColumnIndex(_.column),
                              $table: this,
                            })
                          : (Lt(_.row, _.column, null),
                            this.handleActived(_.args, e))));
                  }
                  this.emitEvent("keydown", {}, e);
                }
              });
          },
          handleGlobalPasteEvent(e) {
            const t = this.isActivated,
              i = this.keyboardConfig,
              s = this.keyboardOpts,
              n = this.mouseConfig,
              o = this.mouseOpts,
              r = this.editStore,
              l = this.filterStore,
              a = r.actived;
            t &&
              !l.visible &&
              (a.row ||
                a.column ||
                (i &&
                  s.isClip &&
                  n &&
                  o.area &&
                  this.handlePasteCellAreaEvent &&
                  this.handlePasteCellAreaEvent(e)),
              this.emitEvent("paste", {}, e));
          },
          handleGlobalCopyEvent(e) {
            const t = this.isActivated,
              i = this.keyboardConfig,
              s = this.keyboardOpts,
              n = this.mouseConfig,
              o = this.mouseOpts,
              r = this.editStore,
              l = this.filterStore,
              a = r.actived;
            t &&
              !l.visible &&
              (a.row ||
                a.column ||
                (i &&
                  s.isClip &&
                  n &&
                  o.area &&
                  this.handleCopyCellAreaEvent &&
                  this.handleCopyCellAreaEvent(e)),
              this.emitEvent("copy", {}, e));
          },
          handleGlobalCutEvent(e) {
            const t = this.isActivated,
              i = this.keyboardConfig,
              s = this.keyboardOpts,
              n = this.mouseConfig,
              o = this.mouseOpts,
              r = this.editStore,
              l = this.filterStore,
              a = r.actived;
            t &&
              !l.visible &&
              (a.row ||
                a.column ||
                (i &&
                  s.isClip &&
                  n &&
                  o.area &&
                  this.handleCutCellAreaEvent &&
                  this.handleCutCellAreaEvent(e)),
              this.emitEvent("cut", {}, e));
          },
          handleGlobalResizeEvent() {
            this.closeMenu(), this.updateCellAreas(), this.recalculate(!0);
          },
          handleTooltipLeaveMethod() {
            const e = this.tooltipOpts;
            return (
              setTimeout(() => {
                this.tooltipActive || this.closeTooltip();
              }, e.leaveDelay),
              !1
            );
          },
          handleTargetEnterEvent() {
            clearTimeout(this.tooltipTimeout),
              (this.tooltipActive = !0),
              this.closeTooltip();
          },
          handleTargetLeaveEvent() {
            const e = this.tooltipOpts;
            (this.tooltipActive = !1),
              e.enterable
                ? (this.tooltipTimeout = setTimeout(() => {
                    const e = this.$refs.tooltip;
                    e && !e.isHover && this.closeTooltip();
                  }, e.leaveDelay))
                : this.closeTooltip();
          },
          triggerHeaderHelpEvent(e, t) {
            const i = t.column,
              s = i.titleHelp;
            if (s.message) {
              const t = this.$refs,
                i = this.tooltipStore,
                n = t.tooltip,
                o = g.getFuncText(s.message);
              this.handleTargetEnterEvent(),
                (i.visible = !0),
                n && n.open(e.currentTarget, o);
            }
          },
          triggerHeaderTooltipEvent(e, t) {
            const i = this.tooltipStore,
              s = t.column,
              n = e.currentTarget;
            this.handleTargetEnterEvent(),
              (i.column === s && i.visible) ||
                this.handleTooltip(e, n, n, null, t);
          },
          triggerBodyTooltipEvent(e, t) {
            const i = this.editConfig,
              s = this.editOpts,
              n = this.editStore,
              o = this.tooltipStore,
              r = n.actived,
              l = t.row,
              a = t.column,
              h = e.currentTarget;
            if (
              (this.handleTargetEnterEvent(),
              (!i ||
                !(
                  ("row" === s.mode && r.row === l) ||
                  (r.row === l && r.column === a)
                )) &&
                (o.column !== a || o.row !== l || !o.visible))
            ) {
              let i, s;
              a.treeNode
                ? ((i = h.querySelector(".vxe-tree-cell")),
                  "html" === a.type && (s = h.querySelector(".vxe-cell--html")))
                : (s = h.querySelector(
                    "html" === a.type ? ".vxe-cell--html" : ".vxe-cell--label"
                  )),
                this.handleTooltip(e, h, i || h.children[0], s, t);
            }
          },
          triggerFooterTooltipEvent(e, t) {
            const i = t.column,
              s = this.tooltipStore,
              n = e.currentTarget;
            this.handleTargetEnterEvent(),
              (s.column === i && s.visible) ||
                this.handleTooltip(
                  e,
                  n,
                  n.querySelector(".vxe-cell--item") || n.children[0],
                  null,
                  t
                );
          },
          handleTooltip(e, t, i, s, o) {
            o.cell = t;
            const r = this.$refs,
              l = this.tooltipOpts,
              a = this.tooltipStore,
              h = o.column,
              c = o.row,
              d = l.showAll,
              u = l.enabled,
              p = l.contentMethod,
              f = r.tooltip,
              m = p ? p(o) : null,
              v = p && !n.a.eqNull(m),
              _ = v
                ? m
                : ("html" === h.type ? i.innerText : i.textContent).trim(),
              b = i.scrollWidth > i.clientWidth;
            return (
              _ &&
                (d || u || v || b) &&
                (Object.assign(a, { row: c, column: h, visible: !0 }),
                f && f.open(b ? i : s || i, g.formatText(_))),
              this.$nextTick()
            );
          },
          openTooltip(e, t) {
            const i = this.$refs,
              s = i.commTip;
            return s ? s.open(e, t) : this.$nextTick();
          },
          closeTooltip() {
            const e = this.$refs,
              t = this.tooltipStore,
              i = e.tooltip,
              s = e.commTip;
            return (
              t.visible &&
                (Object.assign(t, {
                  row: null,
                  column: null,
                  content: null,
                  visible: !1,
                }),
                i && i.close()),
              s && s.close(),
              this.$nextTick()
            );
          },
          isAllCheckboxChecked() {
            return this.isAllSelected;
          },
          isCheckboxIndeterminate() {
            return !this.isAllSelected && this.isIndeterminate;
          },
          getCheckboxIndeterminateRecords() {
            const e = this.treeConfig,
              t = this.treeIndeterminates;
            return e ? t.slice(0) : [];
          },
          handleDefaultSelectionChecked() {
            const e = this.fullDataRowIdData,
              t = this.checkboxOpts,
              i = t.checkAll,
              s = t.checkRowKeys;
            if (i) this.setAllCheckboxRow(!0);
            else if (s) {
              const t = [];
              s.forEach((i) => {
                e[i] && t.push(e[i].row);
              }),
                this.setCheckboxRow(t, !0);
            }
          },
          setCheckboxRow(e, t) {
            return (
              e && !n.a.isArray(e) && (e = [e]),
              e.forEach((e) => this.handleSelectRow({ row: e }, !!t)),
              this.$nextTick()
            );
          },
          isCheckedByCheckboxRow(e) {
            const t = this.checkboxOpts.checkField;
            return t ? n.a.get(e, t) : this.selection.indexOf(e) > -1;
          },
          handleSelectRow(e, t) {
            let i = e.row;
            const s = this.selection,
              o = this.afterFullData,
              r = this.treeConfig,
              l = this.treeOpts,
              a = this.treeIndeterminates,
              h = this.checkboxOpts,
              c = h.checkField,
              d = h.checkStrictly,
              u = h.checkMethod;
            if (c)
              if (r && !d) {
                -1 === t
                  ? (-1 === a.indexOf(i) && a.push(i), n.a.set(i, c, !1))
                  : n.a.eachTree(
                      [i],
                      (e) => {
                        (i !== e && u && !u({ row: e })) ||
                          (n.a.set(e, c, t),
                          n.a.remove(a, (t) => t === e),
                          this.handleCheckboxReserveRow(i, t));
                      },
                      l
                    );
                const e = n.a.findTree(o, (e) => e === i, l);
                if (e && e.parent) {
                  let i;
                  const s = u ? e.items.filter((e) => u({ row: e })) : e.items,
                    o = n.a.find(e.items, (e) => a.indexOf(e) > -1);
                  if (o) i = -1;
                  else {
                    const o = e.items.filter((e) => n.a.get(e, c));
                    i =
                      o.filter((e) => s.indexOf(e) > -1).length === s.length ||
                      (!(!o.length && -1 !== t) && -1);
                  }
                  return this.handleSelectRow({ row: e.parent }, i);
                }
              } else
                (u && !u({ row: i })) ||
                  (n.a.set(i, c, t), this.handleCheckboxReserveRow(i, t));
            else if (r && !d) {
              -1 === t
                ? (-1 === a.indexOf(i) && a.push(i),
                  n.a.remove(s, (e) => e === i))
                : n.a.eachTree(
                    [i],
                    (e) => {
                      (i !== e && u && !u({ row: e })) ||
                        (t ? s.push(e) : n.a.remove(s, (t) => t === e),
                        n.a.remove(a, (t) => t === e),
                        this.handleCheckboxReserveRow(i, t));
                    },
                    l
                  );
              const e = n.a.findTree(o, (e) => e === i, l);
              if (e && e.parent) {
                let i;
                const o = u ? e.items.filter((e) => u({ row: e })) : e.items,
                  r = n.a.find(e.items, (e) => a.indexOf(e) > -1);
                if (r) i = -1;
                else {
                  const n = e.items.filter((e) => s.indexOf(e) > -1);
                  i =
                    n.filter((e) => o.indexOf(e) > -1).length === o.length ||
                    (!(!n.length && -1 !== t) && -1);
                }
                return this.handleSelectRow({ row: e.parent }, i);
              }
            } else
              (u && !u({ row: i })) ||
                (t
                  ? -1 === s.indexOf(i) && s.push(i)
                  : n.a.remove(s, (e) => e === i),
                this.handleCheckboxReserveRow(i, t));
            this.checkSelectionStatus();
          },
          handleToggleCheckRowEvent(e, t) {
            const i = this.selection,
              s = this.checkboxOpts,
              o = s.checkField,
              r = t.row,
              l = o ? !n.a.get(r, o) : -1 === i.indexOf(r);
            e ? this.triggerCheckRowEvent(e, t, l) : this.handleSelectRow(t, l);
          },
          triggerCheckRowEvent(e, t, i) {
            const s = this.checkboxOpts.checkMethod;
            (s && !s({ row: t.row })) ||
              (this.handleSelectRow(t, i),
              this.emitEvent(
                "checkbox-change",
                Object.assign(
                  {
                    records: this.getCheckboxRecords(),
                    reserves: this.getCheckboxReserveRecords(),
                    indeterminates: this.getCheckboxIndeterminateRecords(),
                    checked: i,
                  },
                  t
                ),
                e
              ));
          },
          toggleCheckboxRow(e) {
            return (
              this.handleToggleCheckRowEvent(null, { row: e }), this.$nextTick()
            );
          },
          setAllCheckboxRow(e) {
            const t = this.afterFullData,
              i = this.treeConfig,
              s = this.treeOpts,
              o = this.selection,
              r = this.checkboxReserveRowMap,
              l = this.checkboxOpts,
              a = l.checkField,
              h = l.reserve,
              c = l.checkStrictly,
              d = l.checkMethod;
            let u = [];
            const p = i ? [] : o.filter((e) => -1 === t.indexOf(e));
            if (c) this.isAllSelected = e;
            else {
              if (a) {
                const o = (t) => {
                  (d && !d({ row: t })) || (e && u.push(t), n.a.set(t, a, e));
                };
                i ? n.a.eachTree(t, o, s) : t.forEach(o);
              } else
                i
                  ? e
                    ? n.a.eachTree(
                        t,
                        (e) => {
                          (d && !d({ row: e })) || u.push(e);
                        },
                        s
                      )
                    : d &&
                      n.a.eachTree(
                        t,
                        (e) => {
                          !d({ row: e }) && o.indexOf(e) > -1 && u.push(e);
                        },
                        s
                      )
                  : e
                  ? (u = d
                      ? t.filter((e) => o.indexOf(e) > -1 || d({ row: e }))
                      : t.slice(0))
                  : d &&
                    (u = t.filter((e) =>
                      d({ row: e }) ? 0 : o.indexOf(e) > -1
                    ));
              h &&
                (e
                  ? u.forEach((e) => {
                      r[Rt(this, e)] = e;
                    })
                  : t.forEach((e) => this.handleCheckboxReserveRow(e, !1))),
                (this.selection = a ? [] : p.concat(u));
            }
            (this.treeIndeterminates = []), this.checkSelectionStatus();
          },
          checkSelectionStatus() {
            const e = this.afterFullData,
              t = this.selection,
              i = this.treeIndeterminates,
              s = this.checkboxOpts,
              o = this.treeConfig,
              r = s.checkField,
              l = s.halfField,
              a = s.checkStrictly,
              h = s.checkMethod;
            if (!a) {
              let s = !1,
                a = !1;
              r
                ? ((s =
                    e.length &&
                    e.every(
                      h
                        ? (e) => !h({ row: e }) || n.a.get(e, r)
                        : (e) => n.a.get(e, r)
                    )),
                  (a = o
                    ? l
                      ? !s &&
                        e.some(
                          (e) =>
                            n.a.get(e, r) || n.a.get(e, l) || i.indexOf(e) > -1
                        )
                      : !s && e.some((e) => n.a.get(e, r) || i.indexOf(e) > -1)
                    : l
                    ? !s && e.some((e) => n.a.get(e, r) || n.a.get(e, l))
                    : !s && e.some((e) => n.a.get(e, r))))
                : ((s =
                    e.length &&
                    e.every(
                      h
                        ? (e) => !h({ row: e }) || t.indexOf(e) > -1
                        : (e) => t.indexOf(e) > -1
                    )),
                  (a = o
                    ? !s &&
                      e.some((e) => i.indexOf(e) > -1 || t.indexOf(e) > -1)
                    : !s && e.some((e) => t.indexOf(e) > -1))),
                (this.isAllSelected = s),
                (this.isIndeterminate = a);
            }
          },
          handleReserveStatus() {
            const e = this.expandColumn,
              t = this.treeOpts,
              i = this.treeConfig,
              s = this.fullDataRowIdData,
              n = this.fullAllDataRowMap,
              o = this.currentRow,
              r = this.selectRow,
              l = this.radioReserveRow,
              a = this.radioOpts,
              h = this.checkboxOpts,
              c = this.selection,
              d = this.rowExpandeds,
              u = this.treeExpandeds,
              p = this.expandOpts;
            if ((r && !n.has(r) && (this.selectRow = null), a.reserve && l)) {
              const e = Rt(this, l);
              s[e] && this.setRadioRow(s[e].row);
            }
            (this.selection = Yt(this, c)),
              h.reserve &&
                this.setCheckboxRow(qt(this, this.checkboxReserveRowMap), !0),
              o && !n.has(o) && (this.currentRow = null),
              (this.rowExpandeds = e ? Yt(this, d) : []),
              e &&
                p.reserve &&
                this.setRowExpand(qt(this, this.rowExpandedReserveRowMap), !0),
              (this.treeExpandeds = i ? Yt(this, u) : []),
              i &&
                t.reserve &&
                this.setTreeExpand(
                  qt(this, this.treeExpandedReserveRowMap),
                  !0
                );
          },
          getRadioReserveRecord() {
            const e = this.fullDataRowIdData,
              t = this.radioReserveRow,
              i = this.radioOpts;
            return i.reserve && t && !e[Rt(this, t)] ? t : null;
          },
          clearRadioReserve() {
            return (this.radioReserveRow = null), this.$nextTick();
          },
          handleRadioReserveRow(e) {
            const t = this.radioOpts;
            t.reserve && (this.radioReserveRow = e);
          },
          getCheckboxReserveRecords() {
            const e = this.fullDataRowIdData,
              t = this.checkboxReserveRowMap,
              i = this.checkboxOpts,
              s = [];
            return (
              i.reserve &&
                n.a.each(t, (t, i) => {
                  t && !e[i] && s.push(t);
                }),
              s
            );
          },
          clearCheckboxReserve() {
            return (this.checkboxReserveRowMap = {}), this.$nextTick();
          },
          handleCheckboxReserveRow(e, t) {
            const i = this.checkboxReserveRowMap,
              s = this.checkboxOpts;
            if (s.reserve) {
              const s = Rt(this, e);
              t ? (i[s] = e) : i[s] && delete i[s];
            }
          },
          triggerCheckAllEvent(e, t) {
            this.setAllCheckboxRow(t),
              this.emitEvent(
                "checkbox-all",
                {
                  records: this.getCheckboxRecords(),
                  reserves: this.getCheckboxReserveRecords(),
                  indeterminates: this.getCheckboxIndeterminateRecords(),
                  checked: t,
                },
                e
              );
          },
          toggleAllCheckboxRow() {
            return (
              this.triggerCheckAllEvent(null, !this.isAllSelected),
              this.$nextTick()
            );
          },
          clearCheckboxRow() {
            const e = this.tableFullData,
              t = this.treeConfig,
              i = this.treeOpts,
              s = this.checkboxOpts,
              o = s.checkField,
              r = s.reserve;
            return (
              o &&
                (t
                  ? n.a.eachTree(e, (e) => n.a.set(e, o, !1), i)
                  : e.forEach((e) => n.a.set(e, o, !1))),
              r && e.forEach((e) => this.handleCheckboxReserveRow(e, !1)),
              (this.isAllSelected = !1),
              (this.isIndeterminate = !1),
              (this.selection = []),
              (this.treeIndeterminates = []),
              this.$nextTick()
            );
          },
          handleDefaultRadioChecked() {
            const e = this.radioOpts,
              t = this.fullDataRowIdData,
              i = e.checkRowKey,
              s = e.reserve;
            if (i && (t[i] && this.setRadioRow(t[i].row), s)) {
              const e = At(this);
              this.radioReserveRow = { [e]: i };
            }
          },
          triggerRadioRowEvent(e, t) {
            const i = this.selectRow !== t.row;
            this.setRadioRow(t.row), i && this.emitEvent("radio-change", t, e);
          },
          triggerCurrentRowEvent(e, t) {
            const i = this.currentRow !== t.row;
            this.setCurrentRow(t.row),
              i && this.emitEvent("current-change", t, e);
          },
          setCurrentRow(e) {
            const t = this.$el;
            return (
              this.clearCurrentRow(),
              this.clearCurrentColumn(),
              (this.currentRow = e),
              this.highlightCurrentRow &&
                t &&
                n.a.arrayEach(
                  t.querySelectorAll(`[rowid="${Rt(this, e)}"]`),
                  (e) => {
                    Nt(e, "row--current"),
                      (e.style["background-color"] = $_theme.selected_color);
                  }
                ),
              this.$nextTick()
            );
          },
          isCheckedByRadioRow(e) {
            return this.selectRow === e;
          },
          setRadioRow(e) {
            const t = this.radioOpts,
              i = t.checkMethod;
            return (
              !e ||
                (i && !i({ row: e })) ||
                ((this.selectRow = e), this.handleRadioReserveRow(e)),
              this.$nextTick()
            );
          },
          clearCurrentRow() {
            const e = this.$el;
            return (
              (this.currentRow = null),
              (this.hoverRow = null),
              e &&
                n.a.arrayEach(e.querySelectorAll(".row--current"), (e) => {
                  Bt(e, "row--current"), (e.style["background-color"] = "");
                }),
              this.$nextTick()
            );
          },
          clearRadioRow() {
            return (this.selectRow = null), this.$nextTick();
          },
          getCurrentRecord() {
            return this.highlightCurrentRow ? this.currentRow : null;
          },
          getRadioRecord() {
            return this.selectRow;
          },
          triggerHoverEvent(e, t) {
            let i = t.row;
            this.setHoverRow(i);
          },
          setHoverRow(e) {
            const t = this.$el,
              i = Rt(this, e);
            this.clearHoverRow(),
              t &&
                n.a.arrayEach(t.querySelectorAll(`[rowid="${i}"]`), (e) =>
                  Nt(e, "row--hover")
                ),
              (this.hoverRow = e);
          },
          clearHoverRow() {
            const e = this.$el;
            e &&
              n.a.arrayEach(
                e.querySelectorAll(".vxe-body--row.row--hover"),
                (e) => Bt(e, "row--hover")
              ),
              (this.hoverRow = null);
          },
          triggerHeaderCellClickEvent(e, t) {
            const i = this._lastResizeTime,
              s = this.sortOpts,
              n = t.column,
              o = e.currentTarget,
              r = i && i > Date.now() - 300,
              l = Ft(e, o, "vxe-cell--sort").flag,
              a = Ft(e, o, "vxe-cell--filter").flag;
            return (
              "cell" !== s.trigger ||
                r ||
                l ||
                a ||
                this.triggerSortEvent(e, n, Gt(this, n)),
              this.emitEvent(
                "header-cell-click",
                Object.assign(
                  {
                    triggerResizable: r,
                    triggerSort: l,
                    triggerFilter: a,
                    cell: o,
                  },
                  t
                ),
                e
              ),
              this.highlightCurrentColumn
                ? this.setCurrentColumn(n)
                : this.$nextTick()
            );
          },
          triggerHeaderCellDblclickEvent(e, t) {
            this.emitEvent(
              "header-cell-dblclick",
              Object.assign({ cell: e.currentTarget }, t),
              e
            );
          },
          getCurrentColumn() {
            return this.highlightCurrentColumn ? this.currentColumn : null;
          },
          setCurrentColumn(e) {
            const t = it(this, e);
            return (
              t &&
                (this.clearCurrentRow(),
                this.clearCurrentColumn(),
                (this.currentColumn = t)),
              this.$nextTick()
            );
          },
          clearCurrentColumn() {
            return (this.currentColumn = null), this.$nextTick();
          },
          checkValidate(e) {
            return Ke._valid ? this.triggerValidate(e) : this.$nextTick();
          },
          handleChangeCell(e, t) {
            this.checkValidate("blur")
              .catch((e) => e)
              .then(() => {
                this.handleActived(t, e)
                  .then(() => this.checkValidate("change"))
                  .catch((e) => e);
              });
          },
          triggerCellClickEvent(e, t) {
            const i = this.highlightCurrentRow,
              s = this.editStore,
              n = this.radioOpts,
              o = this.expandOpts,
              r = this.treeOpts,
              l = this.editConfig,
              a = this.editOpts,
              h = this.checkboxOpts,
              c = s.actived,
              d = t,
              u = d.row,
              p = d.column,
              f = p.type,
              m = p.treeNode,
              g = "radio" === f,
              v = "checkbox" === f,
              _ = "expand" === f,
              b = e.currentTarget,
              y = g && Ft(e, b, "vxe-cell--radio").flag,
              x = v && Ft(e, b, "vxe-cell--checkbox").flag,
              w = m && Ft(e, b, "vxe-tree--btn-wrapper").flag,
              S = _ && Ft(e, b, "vxe-table--expanded").flag;
            (t = Object.assign(
              {
                cell: b,
                triggerRadio: y,
                triggerCheckbox: x,
                triggerTreeNode: w,
                triggerExpandNode: S,
              },
              t
            )),
              x ||
                y ||
                (!S &&
                  ("row" === o.trigger || (_ && "cell" === o.trigger)) &&
                  this.triggerRowExpandEvent(e, t),
                ("row" === r.trigger || (m && "cell" === r.trigger)) &&
                  this.triggerTreeExpandEvent(e, t)),
              w ||
                (S ||
                  (i && (x || y || this.triggerCurrentRowEvent(e, t)),
                  !y &&
                    ("row" === n.trigger || (g && "cell" === n.trigger)) &&
                    this.triggerRadioRowEvent(e, t),
                  !x &&
                    ("row" === h.trigger || (v && "cell" === h.trigger)) &&
                    this.handleToggleCheckRowEvent(e, t)),
                l &&
                  ("manual" === a.trigger
                    ? c.args &&
                      c.row === u &&
                      p !== c.column &&
                      this.handleChangeCell(e, t)
                    : (c.args && u === c.row && p === c.column) ||
                      ("click" === a.trigger
                        ? this.handleChangeCell(e, t)
                        : "dblclick" === a.trigger &&
                          "row" === a.mode &&
                          c.row === u &&
                          this.handleChangeCell(e, t)))),
              this.emitEvent("cell-click", t, e);
          },
          triggerCellDblclickEvent(e, t) {
            const i = this.editStore,
              s = this.editConfig,
              n = this.editOpts,
              o = i.actived,
              r = e.currentTarget;
            (t.cell = r),
              s &&
                "dblclick" === n.trigger &&
                ((o.args && e.currentTarget === o.args.cell) ||
                  ("row" === n.mode
                    ? this.checkValidate("blur")
                        .catch((e) => e)
                        .then(() => {
                          this.handleActived(t, e)
                            .then(() => this.checkValidate("change"))
                            .catch((e) => e);
                        })
                    : "cell" === n.mode &&
                      this.handleActived(t, e)
                        .then(() => this.checkValidate("change"))
                        .catch((e) => e))),
              this.emitEvent("cell-dblclick", t, e);
          },
          handleDefaultSort() {
            const e = this.sortConfig,
              t = this.sortOpts;
            let i = t.defaultSort;
            i &&
              (n.a.isArray(i) || (i = [i]),
              i.length &&
                ((e.multiple ? i : i.slice(0, 1)).forEach((e) => {
                  const t = e.field,
                    i = e.order;
                  if (t && i) {
                    const e = this.getColumnByField(t);
                    e &&
                      e.sortable &&
                      ((e.order = i), (e.sortTime = Date.now()));
                  }
                }),
                t.remote || this.handleTableData(!0).then(this.updateStyle)));
          },
          triggerSortEvent(e, t, i) {
            const s = this.sortOpts,
              n = t.property;
            if (t.sortable || t.remoteSort) {
              let o = this.currentRow;
              o && this.clearCurrentRow(),
                i && t.order !== i
                  ? this.sort({ field: t, order: i })
                  : this.clearSort(s.multiple ? t : null);
              const r = {
                column: t,
                property: n,
                order: t.order,
                sortList: this.getSortColumns(),
              };
              o && this.$nextTick(() => this.setCurrentRow(o)),
                this.emitEvent("sort-change", r, e);
            }
          },
          sort(e, t) {
            const i = this.sortOpts,
              s = i.multiple,
              o = i.remote,
              r = i.orders;
            if (
              (e && n.a.isString(e) && (e = [{ field: e, order: t }]),
              n.a.isArray(e) || (e = [e]),
              e.length)
            ) {
              let t;
              return (
                s || ii(this),
                (s ? e : [e[0]]).forEach((e) => {
                  let i = e.field,
                    s = e.order,
                    o = i;
                  n.a.isString(i) && (o = this.getColumnByField(i)),
                    o &&
                      (o.sortable || o.remoteSort) &&
                      (t || (t = o),
                      -1 === r.indexOf(s) && (s = Gt(this, o)),
                      o.order !== s && (o.order = s));
                }),
                (!o || (t && t.remoteSort)) && this.handleTableData(!0),
                this.$nextTick().then(this.updateStyle)
              );
            }
            return this.$nextTick();
          },
          clearSort(e) {
            const t = this.sortOpts;
            if (e) {
              const t = it(this, e);
              t && (t.order = null);
            } else ii(this);
            return t.remote ? this.$nextTick() : this.handleTableData(!0);
          },
          getSortColumn() {
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                g.warn("vxe.error.delFunc", [
                  "getSortColumn",
                  "getSortColumns",
                ]),
              n.a.find(
                this.tableFullColumn,
                (e) => (e.sortable || e.remoteSort) && e.order
              )
            );
          },
          isSort(e) {
            if (e) {
              const t = it(this, e);
              return t && t.sortable && !!t.order;
            }
            return this.getSortColumns().length > 0;
          },
          getSortColumns() {
            const e = [];
            return (
              this.tableFullColumn.forEach((t) => {
                const i = t.order;
                (t.sortable || t.remoteSort) &&
                  i &&
                  e.push({ column: t, property: t.property, order: i });
              }),
              e
            );
          },
          closeFilter() {
            return (
              Object.assign(this.filterStore, {
                isAllSelected: !1,
                isIndeterminate: !1,
                options: [],
                visible: !1,
              }),
              this.$nextTick()
            );
          },
          isFilter(e) {
            const t = it(this, e);
            return t
              ? t.filters && t.filters.some((e) => e.checked)
              : this.getCheckedFilters().length > 0;
          },
          isRowExpandLoaded(e) {
            const t = this.fullAllDataRowMap.get(e);
            return t && t.expandLoaded;
          },
          clearRowExpandLoaded(e) {
            const t = this.expandOpts,
              i = this.expandLazyLoadeds,
              s = this.fullAllDataRowMap,
              o = t.lazy,
              r = s.get(e);
            return (
              o && r && ((r.expandLoaded = !1), n.a.remove(i, (t) => e === t)),
              this.$nextTick()
            );
          },
          reloadExpandContent(e) {
            const t = this.expandOpts,
              i = this.expandLazyLoadeds,
              s = t.lazy;
            return (
              s &&
                -1 === i.indexOf(e) &&
                this.clearRowExpandLoaded(e).then(() =>
                  this.handleAsyncRowExpand(e)
                ),
              this.$nextTick()
            );
          },
          triggerRowExpandEvent(e, t) {
            const i = this.expandOpts,
              s = this.expandLazyLoadeds,
              n = this.expandColumn,
              o = t.row,
              r = i.lazy;
            if (!r || -1 === s.indexOf(o)) {
              const t = !this.isExpandByRow(o),
                i = this.getColumnIndex(n),
                s = this.getVMColumnIndex(n);
              this.setRowExpand(o, t),
                this.emitEvent(
                  "toggle-row-expand",
                  {
                    expanded: t,
                    column: n,
                    columnIndex: i,
                    $columnIndex: s,
                    row: o,
                    rowIndex: this.getRowIndex(o),
                    $rowIndex: this.getVMRowIndex(o),
                  },
                  e
                );
            }
          },
          toggleRowExpand(e) {
            return this.setRowExpand(e, !this.isExpandByRow(e));
          },
          handleDefaultRowExpand() {
            const e = this.expandOpts,
              t = this.fullDataRowIdData,
              i = e.expandAll,
              s = e.expandRowKeys;
            if (i) this.setAllRowExpand(!0);
            else if (s) {
              const e = [];
              s.forEach((i) => {
                t[i] && e.push(t[i].row);
              }),
                this.setRowExpand(e, !0);
            }
          },
          setAllRowExpand(e) {
            return this.setRowExpand(
              this.expandOpts.lazy ? this.tableData : this.tableFullData,
              e
            );
          },
          handleAsyncRowExpand(e) {
            const t = this.fullAllDataRowMap.get(e);
            return new Promise((i) => {
              this.expandLazyLoadeds.push(e),
                this.expandOpts
                  .loadMethod({
                    $table: this,
                    row: e,
                    rowIndex: this.getRowIndex(e),
                    $rowIndex: this.getVMRowIndex(e),
                  })
                  .catch((e) => e)
                  .then(() => {
                    (t.expandLoaded = !0),
                      n.a.remove(this.expandLazyLoadeds, (t) => t === e),
                      this.rowExpandeds.push(e),
                      i(this.$nextTick().then(this.recalculate));
                  });
            });
          },
          setRowExpand(e, t) {
            const i = this.fullAllDataRowMap,
              s = this.expandLazyLoadeds,
              o = this.expandOpts,
              r = this.expandColumn;
            let l = this.rowExpandeds;
            const a = o.reserve,
              h = o.lazy,
              c = o.accordion,
              d = o.toggleMethod,
              u = [],
              p = this.getColumnIndex(r),
              f = this.getVMColumnIndex(r);
            if (e) {
              n.a.isArray(e) || (e = [e]),
                c && ((l = []), (e = e.slice(e.length - 1, e.length)));
              const o = d
                ? e.filter((e) =>
                    d({
                      expanded: t,
                      column: r,
                      columnIndex: p,
                      $columnIndex: f,
                      row: e,
                      rowIndex: this.getRowIndex(e),
                      $rowIndex: this.getVMRowIndex(e),
                    })
                  )
                : e;
              t
                ? o.forEach((e) => {
                    if (-1 === l.indexOf(e)) {
                      const t = i.get(e),
                        n = h && !t.expandLoaded && -1 === s.indexOf(e);
                      n ? u.push(this.handleAsyncRowExpand(e)) : l.push(e);
                    }
                  })
                : n.a.remove(l, (e) => o.indexOf(e) > -1),
                a && o.forEach((e) => this.handleRowExpandReserve(e, t));
            }
            return (
              (this.rowExpandeds = l), Promise.all(u).then(this.recalculate)
            );
          },
          isExpandByRow(e) {
            return this.rowExpandeds.indexOf(e) > -1;
          },
          clearRowExpand() {
            const e = this.expandOpts,
              t = this.rowExpandeds,
              i = this.tableFullData,
              s = e.reserve,
              n = t.length;
            return (
              (this.rowExpandeds = []),
              s && i.forEach((e) => this.handleRowExpandReserve(e, !1)),
              this.$nextTick().then(() => {
                n && this.recalculate();
              })
            );
          },
          clearRowExpandReserve() {
            return (this.rowExpandedReserveRowMap = {}), this.$nextTick();
          },
          handleRowExpandReserve(e, t) {
            const i = this.rowExpandedReserveRowMap,
              s = this.expandOpts;
            if (s.reserve) {
              const s = Rt(this, e);
              t ? (i[s] = e) : i[s] && delete i[s];
            }
          },
          getRowExpandRecords() {
            return this.rowExpandeds.slice(0);
          },
          getTreeExpandRecords() {
            return this.treeExpandeds.slice(0);
          },
          getTreeStatus() {
            return this.treeConfig
              ? {
                  config: this.treeOpts,
                  rowExpandeds: this.getTreeExpandRecords(),
                }
              : null;
          },
          isTreeExpandLoaded(e) {
            const t = this.fullAllDataRowMap.get(e);
            return t && t.treeLoaded;
          },
          clearTreeExpandLoaded(e) {
            const t = this.treeOpts,
              i = this.treeExpandeds,
              s = this.fullAllDataRowMap,
              o = t.lazy,
              r = s.get(e);
            return (
              o && r && ((r.treeLoaded = !1), n.a.remove(i, (t) => e === t)),
              this.$nextTick()
            );
          },
          reloadTreeChilds(e) {
            const t = this.treeOpts,
              i = this.treeLazyLoadeds,
              s = t.lazy,
              n = t.hasChild;
            return (
              s &&
                e[n] &&
                -1 === i.indexOf(e) &&
                this.clearTreeExpandLoaded(e).then(() =>
                  this.handleAsyncTreeExpandChilds(e)
                ),
              this.$nextTick()
            );
          },
          triggerTreeExpandEvent(e, t) {
            const i = this.treeOpts,
              s = this.treeLazyLoadeds,
              n = t.row,
              o = t.column,
              r = i.lazy;
            if (!r || -1 === s.indexOf(n)) {
              const t = !this.isTreeExpandByRow(n),
                i = this.getColumnIndex(o),
                s = this.getVMColumnIndex(o);
              this.setTreeExpand(n, t),
                this.emitEvent(
                  "toggle-tree-expand",
                  {
                    expanded: t,
                    column: o,
                    columnIndex: i,
                    $columnIndex: s,
                    row: n,
                  },
                  e
                );
            }
          },
          toggleTreeExpand(e) {
            return this.setTreeExpand(e, !this.isTreeExpandByRow(e));
          },
          handleDefaultTreeExpand() {
            const e = this.treeConfig,
              t = this.treeOpts,
              i = this.tableFullData;
            if (e) {
              const e = t.expandAll,
                s = t.expandRowKeys;
              if (e) this.setAllTreeExpand(!0);
              else if (s) {
                const e = [],
                  o = At(this);
                s.forEach((s) => {
                  const r = n.a.findTree(i, (e) => s === n.a.get(e, o), t);
                  r && e.push(r.item);
                }),
                  this.setTreeExpand(e, !0);
              }
            }
          },
          handleAsyncTreeExpandChilds(e) {
            const t = this.fullAllDataRowMap,
              i = this.treeExpandeds,
              s = this.treeOpts,
              o = this.treeLazyLoadeds,
              r = this.checkboxOpts,
              l = s.loadMethod,
              a = r.checkStrictly,
              h = t.get(e);
            return new Promise((t) => {
              o.push(e),
                l({ $table: this, row: e })
                  .catch(() => [])
                  .then((s) => {
                    (h.treeLoaded = !0),
                      n.a.remove(o, (t) => t === e),
                      n.a.isArray(s) || (s = []),
                      s &&
                        this.loadChildren(e, s).then((t) => {
                          t.length && -1 === i.indexOf(e) && i.push(e),
                            !a &&
                              this.isCheckedByCheckboxRow(e) &&
                              this.setCheckboxRow(t, !0);
                        }),
                      t(this.$nextTick().then(this.recalculate));
                  });
            });
          },
          setAllTreeExpand(e) {
            const t = this.tableFullData,
              i = this.treeOpts,
              s = i.lazy,
              o = i.children,
              r = [];
            return (
              n.a.eachTree(
                t,
                (e) => {
                  const t = e[o];
                  (s || (t && t.length)) && r.push(e);
                },
                i
              ),
              this.setTreeExpand(r, e)
            );
          },
          setTreeExpand(e, t) {
            const i = this.fullAllDataRowMap,
              s = this.tableFullData,
              o = this.treeExpandeds,
              r = this.treeOpts,
              l = this.treeLazyLoadeds,
              a = this.treeNodeColumn,
              h = r.reserve,
              c = r.lazy,
              d = r.hasChild,
              u = r.children,
              p = r.accordion,
              f = r.toggleMethod,
              m = [],
              g = this.getColumnIndex(a),
              v = this.getVMColumnIndex(a);
            if (e && (n.a.isArray(e) || (e = [e]), e.length)) {
              let _ = f
                ? e.filter((e) =>
                    f({
                      expanded: t,
                      column: a,
                      columnIndex: g,
                      $columnIndex: v,
                      row: e,
                    })
                  )
                : e;
              if (p) {
                _ = _.length ? [_[_.length - 1]] : [];
                const e = n.a.findTree(s, (e) => e === _[0], r);
                e && n.a.remove(o, (t) => e.items.indexOf(t) > -1);
              }
              return (
                t
                  ? _.forEach((e) => {
                      if (-1 === o.indexOf(e)) {
                        const t = i.get(e),
                          s = c && e[d] && !t.treeLoaded && -1 === l.indexOf(e);
                        s
                          ? m.push(this.handleAsyncTreeExpandChilds(e))
                          : e[u] && e[u].length && o.push(e);
                      }
                    })
                  : n.a.remove(o, (e) => _.indexOf(e) > -1),
                h && _.forEach((e) => this.handleTreeExpandReserve(e, t)),
                Promise.all(m).then(this.recalculate)
              );
            }
            return this.$nextTick();
          },
          isTreeExpandByRow(e) {
            return this.treeExpandeds.indexOf(e) > -1;
          },
          clearTreeExpand() {
            const e = this.treeOpts,
              t = this.treeExpandeds,
              i = this.tableFullData,
              s = e.reserve,
              o = t.length;
            return (
              (this.treeExpandeds = []),
              s &&
                n.a.eachTree(i, (e) => this.handleTreeExpandReserve(e, !1), e),
              this.$nextTick().then(() => {
                o && this.recalculate();
              })
            );
          },
          clearTreeExpandReserve() {
            return (this.treeExpandedReserveRowMap = {}), this.$nextTick();
          },
          handleTreeExpandReserve(e, t) {
            const i = this.treeExpandedReserveRowMap,
              s = this.treeOpts;
            if (s.reserve) {
              const s = Rt(this, e);
              t ? (i[s] = e) : i[s] && delete i[s];
            }
          },
          getScroll() {
            const e = this.$refs,
              t = this.scrollXLoad,
              i = this.scrollYLoad,
              s = e.tableBody.$el;
            return {
              virtualX: t,
              virtualY: i,
              scrollTop: s.scrollTop,
              scrollLeft: s.scrollLeft,
            };
          },
          triggerScrollXEvent() {
            this.loadScrollXData();
          },
          loadScrollXData() {
            const e = this.mergeList,
              t = this.mergeFooterList,
              i = this.scrollXStore,
              s = i.startIndex,
              n = i.endIndex,
              o = i.offsetSize,
              r = Kt(this),
              l = r.toVisibleIndex,
              a = r.visibleSize,
              h = { startIndex: Math.max(0, l - 1 - o), endIndex: l + a + o };
            Qt(e.concat(t), h, "col");
            const c = h.startIndex,
              d = h.endIndex;
            (l <= s || l >= n - a - 1) &&
              ((s === c && n === d) ||
                ((i.startIndex = c),
                (i.endIndex = d),
                this.updateScrollXData())),
              this.closeTooltip();
          },
          triggerScrollYEvent(e) {
            let t = this.currentRow;
            t && this.clearCurrentRow();
            const i = this.scrollYStore,
              s = i.adaptive,
              n = i.offsetSize,
              o = i.visibleSize;
            Vt && s && 2 * n + o <= 40
              ? this.loadScrollYData(e)
              : this.debounceScrollY(e),
              t && this.$nextTick(() => this.setCurrentRow(t));
          },
          debounceScrollY: n.a.debounce(
            function (e) {
              this.loadScrollYData(e);
            },
            zt,
            { leading: !1, trailing: !0 }
          ),
          loadScrollYData(e) {
            const t = this.mergeList,
              i = this.scrollYStore,
              s = i.startIndex,
              n = i.endIndex,
              o = i.visibleSize,
              r = i.offsetSize,
              l = i.rowHeight,
              a = e.currentTarget || e.target,
              h = a.scrollTop,
              c = Math.floor(h / l),
              d = { startIndex: Math.max(0, c - 1 - r), endIndex: c + o + r };
            Qt(t, d, "row");
            const u = d.startIndex,
              p = d.endIndex;
            (c <= s || c >= n - o - 1) &&
              ((s === u && n === p) ||
                ((i.startIndex = u),
                (i.endIndex = p),
                this.updateScrollYData()));
          },
          computeScrollLoad() {
            return this.$nextTick().then(() => {
              const e = this.sYOpts,
                t = this.sXOpts,
                i = this.scrollXLoad,
                s = this.scrollYLoad,
                o = this.scrollXStore,
                r = this.scrollYStore;
              if (i) {
                const e = Kt(this),
                  i = e.visibleSize,
                  s = t.oSize
                    ? n.a.toNumber(t.oSize)
                    : b.msie
                    ? 10
                    : b.edge
                    ? 5
                    : 0;
                (o.offsetSize = s),
                  (o.visibleSize = i),
                  (o.endIndex = Math.max(
                    o.startIndex + o.visibleSize + s,
                    o.endIndex
                  )),
                  this.updateScrollXData();
              } else this.updateScrollXSpace();
              const l = Jt(this),
                a = l.rowHeight,
                h = l.visibleSize;
              if (((r.rowHeight = a), s)) {
                const t = e.oSize
                  ? n.a.toNumber(e.oSize)
                  : b.msie
                  ? 20
                  : b.edge
                  ? 10
                  : 0;
                (r.offsetSize = t),
                  (r.visibleSize = h),
                  (r.endIndex = Math.max(r.startIndex + h + t, r.endIndex)),
                  this.updateScrollYData();
              } else this.updateScrollYSpace();
              (this.rowHeight = a), this.$nextTick(this.updateStyle);
            });
          },
          handleTableColumn() {
            const e = this.scrollXLoad,
              t = this.visibleColumn,
              i = this.scrollXStore;
            this.tableColumn = e
              ? t.slice(i.startIndex, i.endIndex)
              : t.slice(0);
          },
          updateScrollXData() {
            this.handleTableColumn(), this.updateScrollXSpace();
          },
          updateScrollXSpace() {
            const e = this.$refs,
              t = this.elemStore,
              i = this.visibleColumn,
              s = this.scrollXStore,
              n = this.scrollXLoad,
              o = this.tableWidth,
              r = this.scrollbarWidth,
              l = e.tableHeader,
              a = e.tableBody,
              h = e.tableFooter,
              c = a ? a.$el : null;
            if (c) {
              const e = l ? l.$el : null,
                a = h ? h.$el : null,
                d = e ? e.querySelector(".vxe-table--header") : null,
                u = c.querySelector(".vxe-table--body"),
                p = a ? a.querySelector(".vxe-table--footer") : null,
                f = i
                  .slice(0, s.startIndex)
                  .reduce((e, t) => e + t.renderWidth, 0);
              let m = "";
              n && (m = `${f}px`),
                d && (d.style.marginLeft = m),
                (u.style.marginLeft = m),
                p && (p.style.marginLeft = m);
              const g = ["main"];
              g.forEach((e) => {
                const i = ["header", "body", "footer"];
                i.forEach((i) => {
                  const s = t[`${e}-${i}-xSpace`];
                  s &&
                    (s.style.width = n
                      ? `${o + ("header" === i ? r : 0)}px`
                      : "");
                });
              }),
                this.$nextTick(this.updateStyle);
            }
          },
          updateScrollYData() {
            this.handleTableData(), this.updateScrollYSpace();
          },
          updateScrollYSpace() {
            const e = this.elemStore,
              t = this.scrollYStore,
              i = this.scrollYLoad,
              s = this.afterFullData,
              n = t.startIndex,
              o = t.rowHeight,
              r = s.length * o,
              l = Math.max(0, n * o),
              a = ["main", "left", "right"];
            let h = "",
              c = "";
            i && ((h = `${l}px`), (c = `${r}px`)),
              a.forEach((t) => {
                const i = ["header", "body", "footer"],
                  s = e[`${t}-body-table`];
                s && (s.style.marginTop = h),
                  i.forEach((i) => {
                    const s = e[`${t}-${i}-ySpace`];
                    s && (s.style.height = c);
                  });
              }),
              this.$nextTick(this.updateStyle);
          },
          scrollTo(e, t) {
            const i = this.$refs,
              s = i.tableBody,
              o = i.rightBody,
              r = i.tableFooter,
              l = s ? s.$el : null,
              a = o ? o.$el : null,
              h = r ? r.$el : null;
            return (
              n.a.isNumber(e) && R(h || l, e),
              n.a.isNumber(t) && $(a || l, t),
              this.scrollXLoad || this.scrollYLoad
                ? new Promise((e) => setTimeout(() => e(this.$nextTick()), 50))
                : this.$nextTick()
            );
          },
          scrollToRow(e, t) {
            const i = [];
            return (
              e &&
                (this.treeConfig && this.scrollToTreeRow(e),
                i.push(A.rowToVisible(this, e))),
              t && i.push(this.scrollToColumn(t)),
              Promise.all(i)
            );
          },
          scrollToColumn(e) {
            const t = it(this, e);
            return t && this.fullColumnMap.has(t)
              ? A.colToVisible(this, t)
              : this.$nextTick();
          },
          scrollToTreeRow(e) {
            const t = this.tableFullData,
              i = this.treeConfig,
              s = this.treeOpts;
            if (i) {
              const i = n.a.findTree(t, (t) => t === e, s);
              if (i) {
                const e = i.nodes;
                e.forEach((t, i) => {
                  i < e.length - 1 &&
                    !this.isTreeExpandByRow(t) &&
                    this.setTreeExpand(t, !0);
                });
              }
            }
            return this.$nextTick();
          },
          clearScroll() {
            const e = this.$refs,
              t = e.tableBody,
              i = e.rightBody,
              s = e.tableFooter,
              n = t ? t.$el : null,
              o = i ? i.$el : null,
              r = s ? s.$el : null;
            return (
              o && (o.scrollTop = 0),
              r && (r.scrollLeft = 0),
              n && ((n.scrollTop = 0), (n.scrollLeft = 0)),
              this.$nextTick()
            );
          },
          updateFooter() {
            const e = this.showFooter,
              t = this.visibleColumn,
              i = this.footerMethod;
            return (
              e &&
                i &&
                (this.footerTableData = t.length
                  ? i({
                      columns: t,
                      data: this.afterFullData,
                      $table: this,
                      $grid: this.$xegrid,
                    })
                  : []),
              this.$nextTick()
            );
          },
          updateStatus(e, t) {
            const i = !n.a.isUndefined(t);
            return this.$nextTick().then(() => {
              const s = this.$refs,
                n = this.editRules,
                o = this.validStore;
              if (e && s.tableBody && n) {
                const s = e.row,
                  n = e.column,
                  r = "change";
                if (this.hasCellRules(r, s, n)) {
                  const e = this.getCell(s, n);
                  if (e)
                    return this.validCellRules(r, s, n, t)
                      .then(() => {
                        i && o.visible && Lt(s, n, t), this.clearValidate();
                      })
                      .catch((o) => {
                        let r = o.rule;
                        i && Lt(s, n, t),
                          this.showValidTooltip({
                            rule: r,
                            row: s,
                            column: n,
                            cell: e,
                          });
                      });
                }
              }
            });
          },
          handleDefaultMergeCells() {
            this.setMergeCells(this.mergeCells);
          },
          setMergeCells(e) {
            return (
              this.spanMethod &&
                g.error("vxe.error.errConflicts", [
                  "merge-cells",
                  "span-method",
                ]),
              ei(this, e, this.mergeList, this.afterFullData),
              this.$nextTick().then(() => this.updateCellAreas())
            );
          },
          removeMergeCells(e) {
            this.spanMethod &&
              g.error("vxe.error.errConflicts", ["merge-cells", "span-method"]);
            const t = ti(this, e, this.mergeList, this.afterFullData);
            return this.$nextTick().then(() => {
              return this.updateCellAreas(), t;
            });
          },
          getMergeCells() {
            return this.mergeList.slice(0);
          },
          clearMergeCells() {
            return (this.mergeList = []), this.$nextTick();
          },
          handleDefaultMergeFooterItems() {
            this.setMergeFooterItems(this.mergeFooterItems);
          },
          setMergeFooterItems(e) {
            return (
              this.footerSpanMethod &&
                g.error("vxe.error.errConflicts", [
                  "merge-footer-items",
                  "footer-span-method",
                ]),
              ei(this, e, this.mergeFooterList, null),
              this.$nextTick().then(() => this.updateCellAreas())
            );
          },
          removeMergeFooterItems(e) {
            this.footerSpanMethod &&
              g.error("vxe.error.errConflicts", [
                "merge-footer-items",
                "footer-span-method",
              ]);
            const t = ti(this, e, this.mergeFooterList, null);
            return this.$nextTick().then(() => {
              return this.updateCellAreas(), t;
            });
          },
          getMergeFooterItems() {
            return this.mergeFooterList.slice(0);
          },
          clearMergeFooterItems() {
            return (this.mergeFooterList = []), this.$nextTick();
          },
          updateZindex() {
            this.zIndex
              ? (this.tZindex = this.zIndex)
              : this.tZindex < g.getLastZIndex() &&
                (this.tZindex = g.nextZIndex());
          },
          updateCellAreas() {
            this.mouseConfig &&
              this.mouseOpts.area &&
              this.handleUpdateCellAreas &&
              this.handleUpdateCellAreas();
          },
          emitEvent(e, t, i) {
            this.$emit(
              e,
              Object.assign({ $table: this, $grid: this.$xegrid, $event: i }, t)
            );
          },
          focus() {
            return (this.isActivated = !0), this.$nextTick();
          },
          blur() {
            return (this.isActivated = !1), this.$nextTick();
          },
          connect(e) {
            return (
              e && e.syncUpdate
                ? (e.syncUpdate({
                    collectColumn: this.collectColumn,
                    $table: this,
                  }),
                  (this.$toolbar = e))
                : g.error("vxe.error.barUnableLink"),
              this.$nextTick()
            );
          },
          getCell(e, t) {
            const i = this.$refs,
              s = Rt(this, e),
              n = i[`${t.fixed || "table"}Body`] || i.tableBody;
            return n && n.$el
              ? n.$el.querySelector(`.vxe-body--row[rowid="${s}"] .${t.id}`)
              : null;
          },
          getCellLabel(e, t) {
            const i = t.formatter,
              s = g.getCellValue(e, t);
            let o = s;
            if (i) {
              let r, l;
              const a = this.fullAllDataRowMap,
                c = t.id,
                d = a.has(e);
              if (
                d &&
                ((r = a.get(e)),
                (l = r.formatData),
                l || (l = a.get(e).formatData = {}),
                r && l[c] && l[c].value === s)
              )
                return l[c].label;
              const u = {
                cellValue: s,
                row: e,
                rowIndex: this.getRowIndex(e),
                column: t,
                columnIndex: this.getColumnIndex(t),
              };
              if (n.a.isString(i)) {
                const e = h.get(i);
                o = e ? e(u) : "";
              } else if (n.a.isArray(i)) {
                const e = h.get(i[0]);
                o = e ? e(u, ...i.slice(1)) : "";
              } else o = i(u);
              l && (l[c] = { value: s, label: o });
            }
            return o;
          },
        },
        oi =
          "setFilter,clearFilter,getCheckedFilters,closeMenu,setActiveCellArea,getActiveCellArea,getCellAreas,clearCellAreas,copyCellArea,cutCellArea,pasteCellArea,getCopyCellArea,clearCopyCellArea,setCellAreas,openFind,openReplace,getSelectedCell,clearSelected,insert,insertAt,remove,removeCheckboxRow,removeRadioRow,removeCurrentRow,getRecordset,getInsertRecords,getRemoveRecords,getUpdateRecords,clearActived,getActiveRecord,isActiveByRow,setActiveRow,setActiveCell,setSelectCell,clearValidate,fullValidate,validate,openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print".split(
            ","
          );
      oi.forEach((e) => {
        ni[e] = function () {
          return this[`_${e}`] ? this[`_${e}`](...arguments) : null;
        };
      });
      var ri = ni;
      function li(e, t, i) {
        const s = t._e,
          n = t.tableData,
          o = t.tableColumn,
          r = t.tableGroupColumn,
          l = t.vSize,
          a = t.showHeader,
          h = t.showFooter,
          c = t.columnStore,
          d = t.footerTableData,
          u = c[`${i}List`];
        return e(
          "div",
          { class: `vxe-table--fixed-${i}-wrapper`, ref: `${i}Container` },
          [
            a
              ? e("vxe-table-header", {
                  props: {
                    fixedType: i,
                    tableData: n,
                    tableColumn: o,
                    tableGroupColumn: r,
                    size: l,
                    fixedColumn: u,
                  },
                  ref: `${i}Header`,
                })
              : s(),
            e("vxe-table-body", {
              props: {
                fixedType: i,
                tableData: n,
                tableColumn: o,
                fixedColumn: u,
                size: l,
              },
              ref: `${i}Body`,
            }),
            h
              ? e("vxe-table-footer", {
                  props: {
                    footerTableData: d,
                    tableColumn: o,
                    fixedColumn: u,
                    fixedType: i,
                    size: l,
                  },
                  ref: `${i}Footer`,
                })
              : s(),
          ]
        );
      }
      function ai(e, t) {
        const i = t.$scopedSlots,
          s = t.emptyOpts;
        let n = "";
        const o = { $table: t };
        if (i.empty) n = i.empty.call(t, o, e);
        else {
          const i = s.name ? Ke.renderer.get(s.name) : null,
            l = i ? i.renderEmpty : null;
          n = l
            ? l.call(t, e, s, o)
            : g.getFuncText(t.emptyText) || r.i18n("vxe.table.emptyText");
        }
        return n;
      }
      function hi(e) {
        const t = e.$el;
        t && t.clientWidth && t.clientHeight && e.recalculate();
      }
      var ci = {
        name: "VxeTable",
        mixins: [bt],
        props: {
          id: String,
          data: Array,
          height: [Number, String],
          maxHeight: [Number, String],
          resizable: { type: Boolean, default: () => r.table.resizable },
          stripe: { type: Boolean, default: () => r.table.stripe },
          border: { type: [Boolean, String], default: () => r.table.border },
          round: { type: Boolean, default: () => r.table.round },
          size: { type: String, default: () => r.table.size || r.size },
          fit: { type: Boolean, default: () => r.table.fit },
          loading: Boolean,
          align: { type: String, default: () => r.table.align },
          headerAlign: { type: String, default: () => r.table.headerAlign },
          footerAlign: { type: String, default: () => r.table.footerAlign },
          showHeader: { type: Boolean, default: () => r.table.showHeader },
          highlightCurrentRow: {
            type: Boolean,
            default: () => r.table.highlightCurrentRow,
          },
          highlightHoverRow: {
            type: Boolean,
            default: () => r.table.highlightHoverRow,
          },
          highlightCurrentColumn: {
            type: Boolean,
            default: () => r.table.highlightCurrentColumn,
          },
          highlightHoverColumn: {
            type: Boolean,
            default: () => r.table.highlightHoverColumn,
          },
          highlightCell: Boolean,
          showFooter: Boolean,
          footerMethod: { type: Function, default: r.table.footerMethod },
          rowClassName: [String, Function],
          cellClassName: [String, Function],
          headerRowClassName: [String, Function],
          headerCellClassName: [String, Function],
          footerRowClassName: [String, Function],
          footerCellClassName: [String, Function],
          cellStyle: [Object, Function],
          headerCellStyle: [Object, Function],
          footerCellStyle: [Object, Function],
          rowStyle: [Object, Function],
          headerRowStyle: [Object, Function],
          footerRowStyle: [Object, Function],
          mergeCells: Array,
          mergeFooterItems: Array,
          spanMethod: Function,
          footerSpanMethod: Function,
          showOverflow: {
            type: [Boolean, String],
            default: () => r.table.showOverflow,
          },
          showHeaderOverflow: {
            type: [Boolean, String],
            default: () => r.table.showHeaderOverflow,
          },
          showFooterOverflow: {
            type: [Boolean, String],
            default: () => r.table.showFooterOverflow,
          },
          columnKey: Boolean,
          rowKey: Boolean,
          rowId: { type: String, default: () => r.table.rowId },
          zIndex: Number,
          emptyText: { type: String, default: () => r.table.emptyText },
          keepSource: { type: Boolean, default: () => r.table.keepSource },
          autoResize: { type: Boolean, default: () => r.table.autoResize },
          syncResize: [Boolean, String, Number],
          columnConfig: Object,
          resizableConfig: Object,
          seqConfig: Object,
          sortConfig: Object,
          filterConfig: Object,
          radioConfig: Object,
          checkboxConfig: Object,
          tooltipConfig: Object,
          exportConfig: [Boolean, Object],
          importConfig: [Boolean, Object],
          printConfig: Object,
          expandConfig: Object,
          treeConfig: [Boolean, Object],
          menuConfig: [Boolean, Object],
          contextMenu: [Boolean, Object],
          mouseConfig: Object,
          areaConfig: Object,
          keyboardConfig: Object,
          clipConfig: Object,
          fnrConfig: Object,
          editConfig: [Boolean, Object],
          validConfig: Object,
          editRules: Object,
          emptyRender: [Boolean, Object],
          customConfig: [Boolean, Object],
          scrollX: Object,
          scrollY: Object,
          animat: { type: Boolean, default: () => r.table.animat },
          delayHover: { type: Number, default: () => r.table.delayHover },
          params: Object,
        },
        components: { VxeTableBody: _t },
        provide() {
          return { $xetable: this, xecolgroup: null };
        },
        inject: { $xegrid: { default: null } },
        data() {
          return {
            tId: `${n.a.uniqueId()}`,
            staticColumns: [],
            tableGroupColumn: [],
            tableColumn: [],
            tableData: [],
            scrollXLoad: !1,
            scrollYLoad: !1,
            overflowY: !0,
            overflowX: !1,
            scrollbarWidth: 0,
            scrollbarHeight: 0,
            rowHeight: 0,
            parentHeight: 0,
            isGroup: !1,
            isAllOverflow: !1,
            isAllSelected: !1,
            isIndeterminate: !1,
            selection: [],
            currentRow: null,
            currentColumn: null,
            selectRow: null,
            footerTableData: [],
            expandColumn: null,
            hasFixedColumn: !1,
            treeNodeColumn: null,
            rowExpandeds: [],
            expandLazyLoadeds: [],
            treeExpandeds: [],
            treeLazyLoadeds: [],
            treeIndeterminates: [],
            mergeList: [],
            mergeFooterList: [],
            initStore: { filter: !1, import: !1, export: !1 },
            filterStore: {
              isAllSelected: !1,
              isIndeterminate: !1,
              style: null,
              options: [],
              column: null,
              multiple: !1,
              visible: !1,
              maxHeight: null,
            },
            columnStore: {
              leftList: [],
              centerList: [],
              rightList: [],
              resizeList: [],
              pxList: [],
              pxMinList: [],
              scaleList: [],
              scaleMinList: [],
              autoList: [],
            },
            ctxMenuStore: {
              selected: null,
              visible: !1,
              showChild: !1,
              selectChild: null,
              list: [],
              style: null,
            },
            editStore: {
              indexs: { columns: [] },
              titles: { columns: [] },
              selected: { row: null, column: null },
              copyed: { cut: !1, rows: [], columns: [] },
              actived: { row: null, column: null },
              insertList: [],
              removeList: [],
            },
            validStore: {
              visible: !1,
              row: null,
              column: null,
              content: "",
              rule: null,
              isArrow: !1,
            },
            importStore: {
              inited: !1,
              file: null,
              type: "",
              modeList: [],
              typeList: [],
              filename: "",
              visible: !1,
            },
            importParams: { mode: "", types: null, message: !0 },
            exportStore: {
              inited: !1,
              name: "",
              modeList: [],
              typeList: [],
              columns: [],
              isPrint: !1,
              hasFooter: !1,
              hasTree: !1,
              hasMerge: !1,
              hasColgroup: !1,
              visible: !1,
            },
            exportParams: {
              filename: "",
              sheetName: "",
              mode: "",
              type: "",
              isColgroup: !1,
              isMerge: !1,
              isAllExpand: !1,
              useStyle: !1,
              original: !1,
              message: !0,
              isHeader: !1,
              isFooter: !1,
            },
          };
        },
        computed: {
          validOpts() {
            return Object.assign(
              { message: "default" },
              r.table.validConfig,
              this.validConfig
            );
          },
          sXOpts() {
            return Object.assign({}, r.table.scrollX, this.scrollX);
          },
          sYOpts() {
            return Object.assign({}, r.table.scrollY, this.scrollY);
          },
          rowHeightMaps() {
            return { default: 48, medium: 44, small: 40, mini: 36 };
          },
          columnOpts() {
            return Object.assign({}, this.columnConfig);
          },
          resizableOpts() {
            return Object.assign(
              {},
              r.table.resizableConfig,
              this.resizableConfig
            );
          },
          seqOpts() {
            return Object.assign(
              { startIndex: 0 },
              r.table.seqConfig,
              this.seqConfig
            );
          },
          radioOpts() {
            return Object.assign({}, r.table.radioConfig, this.radioConfig);
          },
          checkboxOpts() {
            return Object.assign(
              {},
              r.table.checkboxConfig,
              this.checkboxConfig
            );
          },
          tooltipOpts() {
            const e = Object.assign(
              { leaveDelay: 300 },
              r.table.tooltipConfig,
              this.tooltipConfig
            );
            return (
              e.enterable && (e.leaveMethod = this.handleTooltipLeaveMethod), e
            );
          },
          validTipOpts() {
            return Object.assign({ isArrow: !1 }, this.tooltipOpts);
          },
          editOpts() {
            return Object.assign({}, r.table.editConfig, this.editConfig);
          },
          sortOpts() {
            return Object.assign(
              { orders: ["asc", "desc", null] },
              r.table.sortConfig,
              this.sortConfig
            );
          },
          filterOpts() {
            return Object.assign({}, r.table.filterConfig, this.filterConfig);
          },
          mouseOpts() {
            return Object.assign({}, r.table.mouseConfig, this.mouseConfig);
          },
          areaOpts() {
            return Object.assign({}, r.table.areaConfig, this.areaConfig);
          },
          keyboardOpts() {
            return Object.assign(
              {},
              r.table.keyboardConfig,
              this.keyboardConfig
            );
          },
          clipOpts() {
            return Object.assign({}, r.table.clipConfig, this.clipConfig);
          },
          fnrOpts() {
            return Object.assign({}, r.table.fnrConfig, this.fnrConfig);
          },
          hasTip() {
            return Ke._tooltip;
          },
          headerCtxMenu() {
            const e = this.ctxMenuOpts.header;
            return e && e.options ? e.options : [];
          },
          bodyCtxMenu() {
            const e = this.ctxMenuOpts.body;
            return e && e.options ? e.options : [];
          },
          footerCtxMenu() {
            const e = this.ctxMenuOpts.footer;
            return e && e.options ? e.options : [];
          },
          isCtxMenu() {
            return !(
              (!this.contextMenu && !this.menuConfig) ||
              !p(this.ctxMenuOpts) ||
              !(
                this.headerCtxMenu.length ||
                this.bodyCtxMenu.length ||
                this.footerCtxMenu.length
              )
            );
          },
          ctxMenuOpts() {
            return Object.assign(
              {},
              r.table.menuConfig,
              this.contextMenu,
              this.menuConfig
            );
          },
          ctxMenuList() {
            const e = [];
            return (
              this.ctxMenuStore.list.forEach((t) => {
                t.forEach((t) => {
                  e.push(t);
                });
              }),
              e
            );
          },
          exportOpts() {
            return Object.assign({}, r.table.exportConfig, this.exportConfig);
          },
          importOpts() {
            return Object.assign({}, r.table.importConfig, this.importConfig);
          },
          printOpts() {
            return Object.assign({}, r.table.printConfig, this.printConfig);
          },
          expandOpts() {
            return Object.assign({}, r.table.expandConfig, this.expandConfig);
          },
          treeOpts() {
            return Object.assign({}, r.table.treeConfig, this.treeConfig);
          },
          emptyOpts() {
            return Object.assign({}, r.table.emptyRender, this.emptyRender);
          },
          cellOffsetWidth() {
            return this.border
              ? Math.max(
                  2,
                  Math.ceil(this.scrollbarWidth / this.tableColumn.length)
                )
              : 1;
          },
          customOpts() {
            return Object.assign({}, r.table.customConfig, this.customConfig);
          },
          tableBorder() {
            const e = this.border;
            return !0 === e ? "full" : e || "default";
          },
          isAllCheckboxDisabled() {
            const e = this.tableFullData,
              t = this.tableData,
              i = (this.treeConfig, this.checkboxOpts),
              s = i.strict,
              n = i.checkMethod;
            return (
              !!s &&
              ((!t.length && !e.length) ||
                (!!n && e.every((e) => !n({ row: e }))))
            );
          },
        },
        watch: {
          data(e) {
            const t = this.inited,
              i = this.initStatus;
            this.loadTableData(e).then(() => {
              (this.inited = !0),
                (this.initStatus = !0),
                i || this.handleLoadDefaults(),
                t || this.handleInitDefaults(),
                (this.scrollXLoad || this.scrollYLoad) &&
                  this.expandColumn &&
                  g.warn("vxe.error.scrollErrProp", ["column.type=expand"]),
                this.recalculate();
            });
          },
          staticColumns(e) {
            this.handleColumn(e);
          },
          tableColumn() {
            this.analyColumnWidth();
          },
          showHeader() {
            this.$nextTick(() => {
              this.recalculate(!0).then(() => this.refreshScroll());
            });
          },
          showFooter() {
            this.$nextTick(() => {
              this.recalculate(!0).then(() => this.refreshScroll());
            });
          },
          height() {
            this.$nextTick(() => this.recalculate(!0));
          },
          maxHeight() {
            this.$nextTick(() => this.recalculate(!0));
          },
          syncResize(e) {
            e &&
              (hi(this),
              this.$nextTick(() => {
                hi(this), setTimeout(() => hi(this));
              }));
          },
          mergeCells(e) {
            this.clearMergeCells(), this.setMergeCells(e);
          },
          mergeFooterItems(e) {
            this.clearMergeFooterItems(), this.setMergeFooterItems(e);
          },
        },
        created() {
          const e = Object.assign(this, {
              tZindex: 0,
              elemStore: {},
              scrollXStore: {},
              scrollYStore: {},
              tooltipStore: {},
              tableWidth: 0,
              tableHeight: 0,
              headerHeight: 0,
              footerHeight: 0,
              lastScrollLeft: 0,
              lastScrollTop: 0,
              radioReserveRow: null,
              checkboxReserveRowMap: {},
              rowExpandedReserveRowMap: {},
              treeExpandedReserveRowMap: {},
              tableFullData: [],
              afterFullData: [],
              collectColumn: [],
              tableFullColumn: [],
              visibleColumn: [],
              fullAllDataRowMap: new Map(),
              fullAllDataRowIdData: {},
              fullDataRowMap: new Map(),
              fullDataRowIdData: {},
              fullColumnMap: new Map(),
              fullColumnIdData: {},
              fullColumnFieldData: {},
            }),
            t = e.scrollXStore,
            i = e.sYOpts,
            s = e.scrollYStore,
            o = e.data,
            r = e.editOpts,
            l = e.treeOpts,
            a = e.treeConfig,
            h = e.showOverflow;
          if (
            "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV
          ) {
            !this.rowId &&
              (this.checkboxOpts.reserve ||
                this.checkboxOpts.checkRowKeys ||
                this.radioOpts.reserve ||
                this.radioOpts.checkRowKey ||
                this.expandOpts.expandRowKeys ||
                this.treeOpts.expandRowKeys) &&
              g.warn("vxe.error.reqProp", ["row-id"]),
              this.editConfig &&
                r.showStatus &&
                !this.keepSource &&
                g.warn("vxe.error.reqProp", ["keep-source"]),
              !a ||
                !l.line ||
                (this.rowKey && h) ||
                g.warn("vxe.error.reqProp", ["row-key | show-overflow"]),
              this.showFooter &&
                !this.footerMethod &&
                g.warn("vxe.error.reqProp", ["footer-method"]),
              a && this.stripe && g.warn("vxe.error.noTree", ["stripe"]),
              this.tooltipOpts.enabled &&
                g.warn("vxe.error.delProp", [
                  "tooltip-config.enabled",
                  "tooltip-config.showAll",
                ]);
            const e = this.exportConfig,
              t = this.exportOpts,
              i = this.importConfig,
              s = this.importOpts;
            i &&
              s.types &&
              !s.importMethod &&
              !n.a.includeArrays(Ke.config.importTypes, s.types) &&
              g.warn("vxe.error.errProp", [
                `export-config.types=${s.types.join(",")}`,
                s.types
                  .filter((e) => n.a.includes(Ke.config.importTypes, e))
                  .join(",") || Ke.config.importTypes.join(","),
              ]),
              e &&
                t.types &&
                !t.exportMethod &&
                !n.a.includeArrays(Ke.config.exportTypes, t.types) &&
                g.warn("vxe.error.errProp", [
                  `export-config.types=${t.types.join(",")}`,
                  t.types
                    .filter((e) => n.a.includes(Ke.config.exportTypes, e))
                    .join(",") || Ke.config.exportTypes.join(","),
                ]);
          }
          if (
            "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV
          ) {
            const e = this.customOpts;
            if (
              (!this.id &&
                this.customConfig &&
                (!0 === e.storage ||
                  (e.storage && e.storage.resizable) ||
                  (e.storage && e.storage.visible)) &&
                g.error("vxe.error.reqProp", ["id"]),
              this.treeConfig &&
                this.checkboxOpts.range &&
                g.error("vxe.error.noTree", ["checkbox-config.range"]),
              !this.handleUpdateCellAreas &&
                (this.clipConfig &&
                  g.warn("vxe.error.notProp", ["clip-config"]),
                this.fnrConfig && g.warn("vxe.error.notProp", ["fnr-config"]),
                this.mouseOpts.area))
            )
              return void g.error("vxe.error.notProp", ["mouse-config.area"]);
            this.mouseOpts.area &&
              this.mouseOpts.selected &&
              g.warn("vxe.error.errConflicts", [
                "mouse-config.area",
                "mouse-config.selected",
              ]),
              this.mouseOpts.area &&
                this.checkboxOpts.range &&
                g.warn("vxe.error.errConflicts", [
                  "mouse-config.area",
                  "checkbox-config.range",
                ]),
              this.treeConfig &&
                this.mouseOpts.area &&
                g.error("vxe.error.noTree", ["mouse-config.area"]);
          }
          "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV &&
            (this.contextMenu &&
              (g.warn("vxe.error.delProp", ["context-menu", "menu-config"]),
              n.a.isObject(this.contextMenu) ||
                g.warn("vxe.error.errProp", [
                  `table.context-menu=${this.contextMenu}`,
                  "table.context-menu={}",
                ])),
            this.menuConfig &&
              !n.a.isObject(this.menuConfig) &&
              g.warn("vxe.error.errProp", [
                `table.menu-config=${this.menuConfig}`,
                "table.menu-config={}",
              ]),
            this.exportConfig &&
              !n.a.isObject(this.exportConfig) &&
              g.warn("vxe.error.errProp", [
                `table.export-config=${this.exportConfig}`,
                "table.export-config={}",
              ]),
            this.importConfig &&
              !n.a.isObject(this.importConfig) &&
              g.warn("vxe.error.errProp", [
                `table.import-config=${this.importConfig}`,
                "table.import-config={}",
              ]),
            this.printConfig &&
              !n.a.isObject(this.printConfig) &&
              g.warn("vxe.error.errProp", [
                `table.print-config=${this.printConfig}`,
                "table.print-config={}",
              ]),
            this.treeConfig &&
              !n.a.isObject(this.treeConfig) &&
              g.warn("vxe.error.errProp", [
                `table.tree-config=${this.treeConfig}`,
                "table.tree-config={}",
              ]),
            this.customConfig &&
              !n.a.isObject(this.customConfig) &&
              g.warn("vxe.error.errProp", [
                `table.custom-config=${this.customConfig}`,
                "table.custom-config={}",
              ]),
            this.editConfig &&
              !n.a.isObject(this.editConfig) &&
              g.warn("vxe.error.errProp", [
                `table.edit-config=${this.editConfig}`,
                "table.edit-config={}",
              ]),
            this.emptyRender &&
              !n.a.isObject(this.emptyRender) &&
              g.warn("vxe.error.errProp", [
                `table.empty-render=${this.emptyRender}`,
                "table.empty-render={}",
              ])),
            "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV &&
              (this.editConfig &&
                !this._insert &&
                g.error("vxe.error.reqModule", ["Edit"]),
              this.editRules &&
                !this._validate &&
                g.error("vxe.error.reqModule", ["Validator"]),
              (this.checkboxOpts.range ||
                this.keyboardConfig ||
                this.mouseConfig) &&
                !this.triggerCellMousedownEvent &&
                g.error("vxe.error.reqModule", ["Keyboard"]),
              (this.printConfig || this.importConfig || this.exportConfig) &&
                !this._exportData &&
                g.error("vxe.error.reqModule", ["Export"])),
            Object.assign(s, {
              startIndex: 0,
              endIndex: 0,
              visibleSize: 0,
              adaptive: !1 !== i.adaptive,
            }),
            Object.assign(t, { startIndex: 0, endIndex: 0, visibleSize: 0 }),
            this.loadTableData(o).then(() => {
              o &&
                o.length &&
                ((this.inited = !0),
                (this.initStatus = !0),
                this.handleLoadDefaults(),
                this.handleInitDefaults()),
                this.updateStyle();
            }),
            M.on(this, "paste", this.handleGlobalPasteEvent),
            M.on(this, "copy", this.handleGlobalCopyEvent),
            M.on(this, "cut", this.handleGlobalCutEvent),
            M.on(this, "mousedown", this.handleGlobalMousedownEvent),
            M.on(this, "blur", this.handleGlobalBlurEvent),
            M.on(this, "mousewheel", this.handleGlobalMousewheelEvent),
            M.on(this, "keydown", this.handleGlobalKeydownEvent),
            M.on(this, "resize", this.handleGlobalResizeEvent),
            M.on(this, "contextmenu", this.handleGlobalContextmenuEvent),
            this.preventEvent(null, "created");
        },
        mounted() {
          if (
            "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV
          ) {
            const e = this.$listeners;
            !this.menuConfig &&
              (e["menu-click"] ||
                e["cell-menu"] ||
                e["header-cell-menu"] ||
                e["footer-cell-menu"]) &&
              g.warn("vxe.error.reqProp", ["menu-config"]),
              this.tooltipConfig ||
                (!e["cell-mouseenter"] && !e["cell-mouseleave"]) ||
                g.warn("vxe.error.reqProp", ["tooltip-config"]);
          }
          if (this.autoResize) {
            const e = j(() => this.recalculate(!0));
            e.observe(this.$el),
              e.observe(this.getParentElem()),
              (this.$resize = e);
          }
          this.preventEvent(null, "mounted");
        },
        activated() {
          this.recalculate().then(() => this.refreshScroll()),
            this.preventEvent(null, "activated");
        },
        deactivated() {
          this.preventEvent(null, "deactivated");
        },
        beforeDestroy() {
          this.$resize && this.$resize.disconnect(),
            this.closeFilter(),
            this.closeMenu(),
            this.preventEvent(null, "beforeDestroy");
        },
        destroyed() {
          M.off(this, "paste"),
            M.off(this, "copy"),
            M.off(this, "cut"),
            M.off(this, "mousedown"),
            M.off(this, "blur"),
            M.off(this, "mousewheel"),
            M.off(this, "keydown"),
            M.off(this, "resize"),
            M.off(this, "contextmenu"),
            this.preventEvent(null, "destroyed");
        },
        render(e) {
          const t = this._e,
            i = this.tId,
            s = this.tableData,
            n = this.tableColumn,
            o = this.tableGroupColumn,
            r = this.isGroup,
            l = this.loading,
            a = this.stripe,
            h = this.showHeader,
            c = this.height,
            d = this.tableBorder,
            u = this.treeOpts,
            p = this.treeConfig,
            f = this.mouseConfig,
            m = this.mouseOpts,
            g = this.vSize,
            v = this.validOpts,
            _ = this.showFooter,
            b = this.overflowX,
            y = this.overflowY,
            x = this.scrollXLoad,
            w = this.scrollYLoad,
            S = this.scrollbarHeight,
            E = this.highlightCell,
            k = this.highlightHoverRow,
            C = this.highlightHoverColumn,
            T = this.editConfig,
            O = this.validTipOpts,
            $ = this.tooltipOpts,
            R = this.initStore,
            A = this.columnStore,
            L = this.filterStore,
            D = this.ctxMenuStore,
            I = this.ctxMenuOpts,
            M = this.footerTableData,
            P = this.hasTip,
            N = A.leftList,
            B = A.rightList;
          return e(
            "div",
            {
              class: [
                "vxe-table",
                "vxe-table--render-default",
                `tid_${i}`,
                g ? `size--${g}` : "",
                `border--${d}`,
                {
                  "vxe-editable": !!T,
                  "cell--highlight": E,
                  "cell--selected": f && m.selected,
                  "cell--area": f && m.area,
                  "row--highlight": k,
                  "column--highlight": C,
                  "is--header": h,
                  "is--footer": _,
                  "is--group": r,
                  "is--tree-line": p && u.line,
                  "is--fixed-left": N.length,
                  "is--fixed-right": B.length,
                  "is--animat": !!this.animat,
                  "is--round": this.round,
                  "is--stripe": !p && a,
                  "is--loading": l,
                  "is--empty": !l && !s.length,
                  "is--scroll-y": y,
                  "is--scroll-x": b,
                  "is--virtual-x": x,
                  "is--virtual-y": w,
                },
              ],
              on: { keydown: this.keydownEvent },
            },
            [
              e(
                "div",
                { class: "vxe-table-slots", ref: "hideColumn" },
                this.$slots.default
              ),
              e("div", { class: "vxe-table--render-wrapper" }, [
                e("div", { class: "vxe-table--main-wrapper" }, [
                  h
                    ? e("vxe-table-header", {
                        ref: "tableHeader",
                        props: {
                          tableData: s,
                          tableColumn: n,
                          tableGroupColumn: o,
                          size: g,
                        },
                      })
                    : t(),
                  e("vxe-table-body", {
                    ref: "tableBody",
                    props: { tableData: s, tableColumn: n, size: g },
                  }),
                  _
                    ? e("vxe-table-footer", {
                        ref: "tableFooter",
                        props: { footerTableData: M, tableColumn: n, size: g },
                      })
                    : t(),
                ]),
                e("div", { class: "vxe-table--fixed-wrapper" }, [
                  N && N.length && b ? li(e, this, "left") : t(),
                  B && B.length && b ? li(e, this, "right") : t(),
                ]),
              ]),
              e(
                "div",
                {
                  ref: "emptyPlaceholder",
                  class: "vxe-table--empty-placeholder",
                },
                [e("div", { class: "vxe-table--empty-content" }, ai(e, this))]
              ),
              e("div", {
                class: "vxe-table--border-line",
                style: { display: "none" },
              }),
              e("div", {
                class: "vxe-table--resizable-bar",
                style: b ? { "padding-bottom": `${S}px` } : null,
                ref: "resizeBar",
              }),
              e(
                "div",
                {
                  class: [
                    "vxe-table--loading vxe-loading",
                    { "is--visible": l },
                  ],
                },
                [e("div", { class: "vxe-loading--spinner" })]
              ),
              R.filter
                ? e("vxe-table-filter", {
                    ref: "filterWrapper",
                    props: { filterStore: L },
                  })
                : t(),
              R.import && this.importConfig
                ? e("vxe-import-panel", {
                    props: {
                      defaultOptions: this.importParams,
                      storeData: this.importStore,
                    },
                  })
                : t(),
              R.export && (this.exportConfig || this.printConfig)
                ? e("vxe-export-panel", {
                    props: {
                      defaultOptions: this.exportParams,
                      storeData: this.exportStore,
                    },
                  })
                : t(),
              D.visible && this.isCtxMenu
                ? e("vxe-table-context-menu", {
                    ref: "ctxWrapper",
                    props: { ctxMenuStore: D, ctxMenuOpts: I },
                  })
                : t(),
              P
                ? e("vxe-tooltip", {
                    ref: "commTip",
                    props: { isArrow: !1, enterable: !1 },
                  })
                : t(),
              P ? e("vxe-tooltip", { ref: "tooltip", props: $ }) : t(),
              P &&
              this.editRules &&
              v.showMessage &&
              ("default" === v.message ? !c : "tooltip" === v.message)
                ? e("vxe-tooltip", {
                    ref: "validTip",
                    class: "vxe-table--valid-error",
                    props: "tooltip" === v.message || 1 === s.length ? O : null,
                  })
                : t(),
            ]
          );
        },
        methods: ri,
      };
      const di = Object.assign(ci, {
        install(e) {
          "undefined" !== typeof window &&
            window.VXETableMixin &&
            (ci.mixins.push(window.VXETableMixin), delete window.VXETableMixin),
            (Ke.Vue = e),
            (Ke.Table = ci),
            (Ke.TableComponent = ci),
            e.prototype.$vxe
              ? ((e.prototype.$vxe.t = Ke.t), (e.prototype.$vxe._t = Ke._t))
              : (e.prototype.$vxe = { t: Ke.t, _t: Ke._t }),
            e.component(ci.name, ci),
            e.component(_t.name, _t);
        },
      });
      var ui = di,
        pi = {
          name: "VxeTableFilter",
          props: { filterStore: Object },
          computed: {
            hasCheckOption() {
              const e = this.filterStore;
              return e && e.options.some((e) => e.checked);
            },
          },
          render(e) {
            const t = this.$parent,
              i = this.filterStore,
              s = i.column,
              n = s ? s.filterRender : null,
              o = n ? Ke.renderer.get(n.name) : null;
            return e(
              "div",
              {
                class: [
                  "vxe-table--filter-wrapper",
                  "filter--prevent-default",
                  o && o.className ? o.className : "",
                  {
                    "is--animat": t.animat,
                    "is--multiple": i.multiple,
                    "filter--active": i.visible,
                  },
                ],
                style: i.style,
              },
              i.visible
                ? this.renderOptions(e, n, o).concat(this.renderFooter(e))
                : []
            );
          },
          methods: {
            renderOptions(e, t, i) {
              const s = this.$parent,
                n = this.filterStore,
                o = n.args,
                l = n.column,
                a = n.multiple,
                h = n.maxHeight,
                c = l.slots;
              return c && c.filter
                ? [
                    e(
                      "div",
                      { class: "vxe-table--filter-template" },
                      s.callSlot(
                        c.filter,
                        Object.assign({ $panel: this, context: this }, o),
                        e
                      )
                    ),
                  ]
                : i && i.renderFilter
                ? [
                    e(
                      "div",
                      { class: "vxe-table--filter-template" },
                      i.renderFilter.call(
                        s,
                        e,
                        t,
                        Object.assign({ $panel: this, context: this }, o)
                      )
                    ),
                  ]
                : [
                    e("ul", { class: "vxe-table--filter-header" }, [
                      e(
                        "li",
                        {
                          class: [
                            "vxe-table--filter-option",
                            {
                              "is--checked": a
                                ? n.isAllSelected
                                : !n.options.some((e) => e._checked),
                              "is--indeterminate": a && n.isIndeterminate,
                            },
                          ],
                          attrs: {
                            title: r.i18n(
                              a ? "vxe.table.allTitle" : "vxe.table.allFilter"
                            ),
                          },
                          on: {
                            click: (e) => {
                              this.changeAllOption(e, !n.isAllSelected);
                            },
                          },
                        },
                        (a
                          ? [
                              e("span", {
                                class:
                                  "vxe-checkbox--icon vxe-checkbox--checked-icon",
                                style: { "--checkedColor": $_theme.color },
                              }),
                              e("span", {
                                class:
                                  "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                                style: { "--checkedColor": $_theme.color },
                              }),
                              e("span", {
                                class:
                                  "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                                style: { "--checkedColor": $_theme.color },
                              }),
                            ]
                          : []
                        ).concat([
                          e(
                            "span",
                            { class: "vxe-checkbox--label" },
                            r.i18n("vxe.table.allFilter")
                          ),
                        ])
                      ),
                    ]),
                    e(
                      "ul",
                      {
                        class: "vxe-table--filter-body",
                        style: h ? { maxHeight: `${h}px` } : {},
                      },
                      n.options.map((t) => {
                        return e(
                          "li",
                          {
                            class: [
                              "vxe-table--filter-option",
                              { "is--checked": t._checked },
                            ],
                            attrs: { title: t.label },
                            on: {
                              click: (e) => {
                                this.changeOption(e, !t._checked, t);
                              },
                            },
                          },
                          (a
                            ? [
                                e("span", {
                                  class:
                                    "vxe-checkbox--icon vxe-checkbox--checked-icon",
                                  style: { "--checkedColor": $_theme.color },
                                }),
                                e("span", {
                                  class:
                                    "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                                  style: { "--checkedColor": $_theme.color },
                                }),
                                e("span", {
                                  class:
                                    "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                                  style: { "--checkedColor": $_theme.color },
                                }),
                              ]
                            : []
                          ).concat([
                            e(
                              "span",
                              { class: "vxe-checkbox--label" },
                              g.formatText(t.label, 1)
                            ),
                          ])
                        );
                      })
                    ),
                  ];
            },
            renderFooter(e) {
              const t = this.hasCheckOption,
                i = this.filterStore,
                s = i.column,
                o = i.multiple,
                l = s.filterRender,
                a = l ? Ke.renderer.get(l.name) : null,
                h = !t && !i.isAllSelected && !i.isIndeterminate;
              return !o ||
                (a &&
                  (n.a.isBoolean(a.showFilterFooter)
                    ? !1 === a.showFilterFooter
                    : !1 === a.isFooter))
                ? []
                : [
                    e("div", { class: "vxe-table--filter-footer" }, [
                      e(
                        "button",
                        {
                          class: { "is--disabled": h },
                          attrs: { disabled: h },
                          on: { click: this.confirmFilter },
                        },
                        r.i18n("vxe.table.confirmFilter")
                      ),
                      e(
                        "button",
                        { on: { click: this.resetFilter } },
                        r.i18n("vxe.table.resetFilter")
                      ),
                    ]),
                  ];
            },
            filterCheckAllEvent(e, t) {
              const i = this.filterStore;
              i.options.forEach((e) => {
                (e._checked = t), (e.checked = t);
              }),
                (i.isAllSelected = t),
                (i.isIndeterminate = !1);
            },
            changeRadioOption(e, t, i) {
              const s = this.$parent,
                n = this.filterStore;
              n.options.forEach((e) => {
                e._checked = !1;
              }),
                (i._checked = t),
                s.checkFilterOptions(),
                this.confirmFilter(e);
            },
            changeMultipleOption(e, t, i) {
              const s = this.$parent;
              (i._checked = t), s.checkFilterOptions();
            },
            changeAllOption(e, t) {
              this.filterStore.multiple
                ? this.filterCheckAllEvent(e, t)
                : this.resetFilter(e);
            },
            changeOption(e, t, i) {
              this.filterStore.multiple
                ? this.changeMultipleOption(e, t, i)
                : this.changeRadioOption(e, t, i);
            },
            confirmFilter(e) {
              const t = this.$parent,
                i = this.filterStore;
              i.options.forEach((e) => {
                e.checked = e._checked;
              }),
                t.confirmFilterEvent(e);
            },
            resetFilter(e) {
              const t = this.$parent;
              t.resetFilterEvent(e);
            },
          },
        },
        fi = {
          methods: {
            _setFilter(e, t) {
              const i = it(this, e);
              return (
                i && i.filters && t && (i.filters = g.getFilters(t)),
                this.$nextTick()
              );
            },
            checkFilterOptions() {
              const e = this.filterStore;
              (e.isAllSelected = e.options.every((e) => e._checked)),
                (e.isIndeterminate =
                  !e.isAllSelected && e.options.some((e) => e._checked));
            },
            triggerFilterEvent(e, t, i) {
              const s = this.filterStore;
              if (s.column === t && s.visible) s.visible = !1;
              else {
                const n = e.target,
                  o = e.pageX,
                  r = t.filters,
                  l = t.filterMultiple,
                  a = t.filterRender,
                  h = a ? Ke.renderer.get(a.name) : null,
                  c =
                    t.filterRecoverMethod || (h ? h.filterRecoverMethod : null),
                  d = A.getDomNode(),
                  u = d.visibleWidth;
                Object.assign(s, {
                  args: i,
                  multiple: l,
                  options: r,
                  column: t,
                  style: null,
                  visible: !0,
                }),
                  s.options.forEach((e) => {
                    const i = e._checked,
                      s = e.checked;
                    (e._checked = s),
                      s ||
                        i === s ||
                        (c && c({ option: e, column: t, $table: this }));
                  }),
                  this.checkFilterOptions(),
                  (this.initStore.filter = !0),
                  this.$nextTick(() => {
                    const e = this.$refs,
                      i = e.tableBody.$el,
                      r = e.filterWrapper.$el;
                    let l = 0,
                      a = 0,
                      h = null,
                      c = null;
                    r &&
                      ((l = r.offsetWidth),
                      (a = r.offsetHeight),
                      (h = r.querySelector(".vxe-table--filter-header")),
                      (c = r.querySelector(".vxe-table--filter-footer")));
                    const d = l / 2,
                      p = 10,
                      f = i.clientWidth - l - p;
                    let m, g;
                    const v = {
                      top: `${
                        n.offsetTop +
                        n.offsetParent.offsetTop +
                        n.offsetHeight +
                        8
                      }px`,
                    };
                    let _ = null;
                    if (
                      (a >= i.clientHeight &&
                        (_ =
                          i.clientHeight -
                          (c ? c.offsetHeight : 0) -
                          (h ? h.offsetHeight : 0)),
                      "left" === t.fixed
                        ? (m = n.offsetLeft + n.offsetParent.offsetLeft - d)
                        : "right" === t.fixed
                        ? (g =
                            n.offsetParent.offsetWidth -
                            n.offsetLeft +
                            (n.offsetParent.offsetParent.offsetWidth -
                              n.offsetParent.offsetLeft) -
                            t.renderWidth -
                            d)
                        : (m =
                            n.offsetLeft +
                            n.offsetParent.offsetLeft -
                            d -
                            i.scrollLeft),
                      m)
                    ) {
                      const e = o + l - d + p - u;
                      e > 0 && (m -= e),
                        (v.left = `${Math.min(f, Math.max(p, m))}px`);
                    } else if (g) {
                      const e = o + l - d + p - u;
                      e > 0 && (g += e), (v.right = `${Math.max(p, g)}px`);
                    }
                    (s.style = v), (s.maxHeight = _);
                  });
              }
            },
            _getCheckedFilters() {
              const e = this.tableFullColumn,
                t = [];
              return (
                e.filter((e) => {
                  const i = e.property,
                    s = e.filters,
                    n = [],
                    o = [];
                  s &&
                    s.length &&
                    (s.forEach((e) => {
                      e.checked && (n.push(e.value), o.push(e.data));
                    }),
                    n.length &&
                      t.push({ column: e, property: i, values: n, datas: o }));
                }),
                t
              );
            },
            confirmFilterEvent(e) {
              const t = this.filterStore,
                i = this.filterOpts,
                s = this.scrollXLoad,
                n = this.scrollYLoad,
                o = t.column,
                r = o.property,
                l = [],
                a = [];
              o.filters.forEach((e) => {
                e.checked && (l.push(e.value), a.push(e.data));
              }),
                (t.visible = !1);
              const h = this.getCheckedFilters();
              i.remote ||
                (this.handleTableData(!0), this.checkSelectionStatus()),
                this.emitEvent(
                  "filter-change",
                  {
                    column: o,
                    property: r,
                    values: l,
                    datas: a,
                    filters: h,
                    filterList: h,
                  },
                  e
                ),
                this.updateFooter(),
                (s || n) &&
                  (this.clearScroll(), n && this.updateScrollYSpace()),
                this.closeFilter(),
                this.$nextTick(() => {
                  this.recalculate(), this.updateCellAreas();
                });
            },
            handleClearFilter(e) {
              if (e) {
                const t = e.filters,
                  i = e.filterRender;
                if (t) {
                  const s = i ? Ke.renderer.get(i.name) : null,
                    o = e.filterResetMethod || (s ? s.filterResetMethod : null);
                  t.forEach((e) => {
                    (e._checked = !1),
                      (e.checked = !1),
                      o || (e.data = n.a.clone(e.resetValue, !0));
                  }),
                    o && o({ options: t, column: e, $table: this });
                }
              }
            },
            resetFilterEvent(e) {
              this.handleClearFilter(this.filterStore.column),
                this.confirmFilterEvent(e);
            },
            _clearFilter(e) {
              const t = this.filterStore;
              let i;
              return (
                e
                  ? ((i = it(this, e)), i && this.handleClearFilter(i))
                  : this.visibleColumn.forEach(this.handleClearFilter),
                (e && i === t.column) ||
                  Object.assign(t, {
                    isAllSelected: !1,
                    isIndeterminate: !1,
                    style: null,
                    options: [],
                    column: null,
                    multiple: !1,
                    visible: !1,
                  }),
                this.updateData()
              );
            },
          },
        };
      const mi = {
        Panel: pi,
        install(e) {
          Ke.reg("filter"), ui.mixins.push(fi), e.component(pi.name, pi);
        },
      };
      var gi = {
          name: "VxeTableContextMenu",
          props: { ctxMenuStore: Object, ctxMenuOpts: Object },
          mounted() {
            document.body.appendChild(this.$el);
          },
          beforeDestroy() {
            const e = this.$el;
            e.parentNode && e.parentNode.removeChild(e);
          },
          render(e) {
            const t = this.$parent,
              i = this._e,
              s = this.ctxMenuOpts,
              n = this.ctxMenuStore;
            return e(
              "div",
              {
                class: ["vxe-table--context-menu-wrapper", s.className],
                style: n.style,
              },
              n.list.map((s, o) => {
                return s.every((e) => !1 === e.visible)
                  ? i()
                  : e(
                      "ul",
                      { class: "vxe-context-menu--option-wrapper", key: o },
                      s.map((i, s) => {
                        const r = i.children && i.children.length;
                        return !1 === i.visible
                          ? null
                          : e(
                              "li",
                              {
                                class: [
                                  i.className,
                                  {
                                    "link--disabled": i.disabled,
                                    "link--active": i === n.selected,
                                  },
                                ],
                                key: `${o}_${s}`,
                              },
                              [
                                e(
                                  "a",
                                  {
                                    class: "vxe-context-menu--link",
                                    on: {
                                      click(e) {
                                        t.ctxMenuLinkEvent(e, i);
                                      },
                                      mouseover(e) {
                                        t.ctxMenuMouseoverEvent(e, i);
                                      },
                                      mouseout(e) {
                                        t.ctxMenuMouseoutEvent(e, i);
                                      },
                                    },
                                  },
                                  [
                                    e("i", {
                                      class: [
                                        "vxe-context-menu--link-prefix",
                                        i.prefixIcon,
                                      ],
                                    }),
                                    e(
                                      "span",
                                      {
                                        class: "vxe-context-menu--link-content",
                                      },
                                      g.getFuncText(i.name)
                                    ),
                                    e("i", {
                                      class: [
                                        "vxe-context-menu--link-suffix",
                                        r
                                          ? i.suffixIcon || "suffix--haschild"
                                          : i.suffixIcon,
                                      ],
                                    }),
                                  ]
                                ),
                                r
                                  ? e(
                                      "ul",
                                      {
                                        class: [
                                          "vxe-table--context-menu-clild-wrapper",
                                          {
                                            "is--show":
                                              i === n.selected && n.showChild,
                                          },
                                        ],
                                      },
                                      i.children.map((r, l) => {
                                        return !1 === r.visible
                                          ? null
                                          : e(
                                              "li",
                                              {
                                                class: [
                                                  r.className,
                                                  {
                                                    "link--disabled":
                                                      r.disabled,
                                                    "link--active":
                                                      r === n.selectChild,
                                                  },
                                                ],
                                                key: `${o}_${s}_${l}`,
                                              },
                                              [
                                                e(
                                                  "a",
                                                  {
                                                    class:
                                                      "vxe-context-menu--link",
                                                    on: {
                                                      click(e) {
                                                        t.ctxMenuLinkEvent(
                                                          e,
                                                          r
                                                        );
                                                      },
                                                      mouseover(e) {
                                                        t.ctxMenuMouseoverEvent(
                                                          e,
                                                          i,
                                                          r
                                                        );
                                                      },
                                                      mouseout(e) {
                                                        t.ctxMenuMouseoutEvent(
                                                          e,
                                                          i,
                                                          r
                                                        );
                                                      },
                                                    },
                                                  },
                                                  [
                                                    e("i", {
                                                      class: [
                                                        "vxe-context-menu--link-prefix",
                                                        r.prefixIcon,
                                                      ],
                                                    }),
                                                    e(
                                                      "span",
                                                      {
                                                        class:
                                                          "vxe-context-menu--link-content",
                                                      },
                                                      g.getFuncText(r.name)
                                                    ),
                                                  ]
                                                ),
                                              ]
                                            );
                                      })
                                    )
                                  : null,
                              ]
                            );
                      })
                    );
              })
            );
          },
        },
        vi = {
          methods: {
            _closeMenu() {
              return (
                Object.assign(this.ctxMenuStore, {
                  visible: !1,
                  selected: null,
                  selectChild: null,
                  showChild: !1,
                }),
                this.$nextTick()
              );
            },
            moveCtxMenu(e, t, i, s, o, r, l) {
              let a;
              const h = n.a.findIndexOf(l, (e) => i[s] === e);
              if (t === o)
                r && g.hasChildrenList(i.selected)
                  ? (i.showChild = !0)
                  : ((i.showChild = !1), (i.selectChild = null));
              else if (38 === t) {
                for (let e = h - 1; e >= 0; e--)
                  if (!1 !== l[e].visible) {
                    a = l[e];
                    break;
                  }
                i[s] = a || l[l.length - 1];
              } else if (40 === t) {
                for (let e = h + 1; e < l.length; e++)
                  if (!1 !== l[e].visible) {
                    a = l[e];
                    break;
                  }
                i[s] = a || l[0];
              } else
                !i[s] ||
                  (13 !== t && 32 !== t) ||
                  this.ctxMenuLinkEvent(e, i[s]);
            },
            handleGlobalContextmenuEvent(e) {
              const t = this.$refs,
                i = this.tId,
                s = this.editStore,
                n = this.menuConfig,
                o = this.contextMenu,
                r = this.ctxMenuStore,
                l = this.ctxMenuOpts,
                a = this.mouseConfig,
                h = this.mouseOpts,
                c = s.selected,
                d = ["header", "body", "footer"];
              if (n || o) {
                if (
                  r.visible &&
                  t.ctxWrapper &&
                  A.getEventTargetNode(e, t.ctxWrapper.$el).flag
                )
                  return void e.preventDefault();
                if (this._keyCtx) {
                  const t = "body",
                    i = {
                      type: t,
                      $grid: this.$xegrid,
                      $table: this,
                      keyboard: !0,
                      columns: this.visibleColumn.slice(0),
                      $event: e,
                    };
                  if (a && h.area) {
                    const s = this.getActiveCellArea();
                    if (s && s.row && s.column)
                      return (
                        (i.row = s.row),
                        (i.column = s.column),
                        void this.openContextMenu(e, t, i)
                      );
                  } else if (a && h.selected && c.row && c.column)
                    return (
                      (i.row = c.row),
                      (i.column = c.column),
                      void this.openContextMenu(e, t, i)
                    );
                }
                for (let t = 0; t < d.length; t++) {
                  const s = d[t],
                    n = A.getEventTargetNode(
                      e,
                      this.$el,
                      `vxe-${s}--column`,
                      (e) => {
                        return (
                          e.parentNode.parentNode.parentNode.getAttribute(
                            "xid"
                          ) === i
                        );
                      }
                    ),
                    o = {
                      type: s,
                      $grid: this.$xegrid,
                      $table: this,
                      columns: this.visibleColumn.slice(0),
                      $event: e,
                    };
                  if (n.flag) {
                    const t = n.targetElem,
                      i = this.getColumnNode(t).item;
                    let r = `${s}-`;
                    if (
                      (Object.assign(o, {
                        column: i,
                        columnIndex: this.getColumnIndex(i),
                        cell: t,
                      }),
                      "body" === s)
                    ) {
                      const e = this.getRowNode(t.parentNode).item;
                      (r = ""), (o.row = e), (o.rowIndex = this.getRowIndex(e));
                    }
                    return (
                      this.openContextMenu(e, s, o),
                      void (this.$listeners[`${r}cell-context-menu`]
                        ? ("development" ===
                            Object({ NODE_ENV: "production", BASE_URL: "" })
                              .VUE_APP_VXE_TABLE_ENV &&
                            g.warn("vxe.error.delEvent", [
                              `${r}cell-context-menu`,
                              `${r}cell-menu`,
                            ]),
                          this.emitEvent(`${r}cell-context-menu`, o, e))
                        : this.emitEvent(`${r}cell-menu`, o, e))
                    );
                  }
                  if (
                    A.getEventTargetNode(
                      e,
                      this.$el,
                      `vxe-table--${s}-wrapper`,
                      (e) => e.getAttribute("xid") === i
                    ).flag
                  )
                    return void ("cell" === l.trigger
                      ? e.preventDefault()
                      : this.openContextMenu(e, s, o));
                }
              }
              t.filterWrapper &&
                !A.getEventTargetNode(e, t.filterWrapper.$el).flag &&
                this.closeFilter(),
                this.closeMenu();
            },
            openContextMenu(e, t, i) {
              const s = this.isCtxMenu,
                n = this.ctxMenuStore,
                o = this.ctxMenuOpts,
                r = o[t],
                l = o.visibleMethod;
              if (r) {
                const t = r.options,
                  o = r.disabled;
                o
                  ? e.preventDefault()
                  : s &&
                    t &&
                    t.length &&
                    ((i.options = t),
                    this.preventEvent(e, "event.showMenu", i, () => {
                      if (!l || l(i)) {
                        e.preventDefault(), this.updateZindex();
                        const s = A.getDomNode(),
                          o = s.scrollTop,
                          r = s.scrollLeft,
                          l = s.visibleHeight,
                          a = s.visibleWidth;
                        let h = e.clientY + o,
                          c = e.clientX + r;
                        const d = () => {
                            Object.assign(n, {
                              args: i,
                              visible: !0,
                              list: t,
                              selected: null,
                              selectChild: null,
                              showChild: !1,
                              style: {
                                zIndex: this.tZindex,
                                top: `${h}px`,
                                left: `${c}px`,
                              },
                            }),
                              this.$nextTick(() => {
                                const e = this.$refs.ctxWrapper.$el,
                                  t = e.clientHeight,
                                  i = e.clientWidth,
                                  s = A.getAbsolutePos(e),
                                  d = s.boundingTop,
                                  u = s.boundingLeft,
                                  p = d + t - l,
                                  f = u + i - a;
                                p > -10 &&
                                  (n.style.top = `${Math.max(
                                    o + 2,
                                    h - t - 2
                                  )}px`),
                                  f > -10 &&
                                    (n.style.left = `${Math.max(
                                      r + 2,
                                      c - i - 2
                                    )}px`);
                              });
                          },
                          u = i.keyboard,
                          p = i.row,
                          f = i.column;
                        u && p && f
                          ? this.scrollToRow(p, f).then(() => {
                              const e = this.getCell(p, f),
                                t = A.getAbsolutePos(e),
                                i = t.boundingTop,
                                s = t.boundingLeft;
                              (h = i + o + Math.floor(e.offsetHeight / 2)),
                                (c = s + r + Math.floor(e.offsetWidth / 2)),
                                d();
                            })
                          : d();
                      } else this.closeMenu();
                    }));
              }
              this.closeFilter();
            },
            ctxMenuMouseoverEvent(e, t, i) {
              const s = e.currentTarget,
                n = this.ctxMenuStore;
              e.preventDefault(),
                e.stopPropagation(),
                (n.selected = t),
                (n.selectChild = i),
                i ||
                  ((n.showChild = g.hasChildrenList(t)),
                  n.showChild &&
                    this.$nextTick(() => {
                      const e = s.nextElementSibling;
                      if (e) {
                        const t = A.getAbsolutePos(s),
                          i = t.boundingTop,
                          n = t.boundingLeft,
                          o = t.visibleHeight,
                          r = t.visibleWidth,
                          l = i + s.offsetHeight,
                          a = n + s.offsetWidth;
                        let h = "",
                          c = "";
                        a + e.offsetWidth > r - 10 &&
                          ((h = "auto"), (c = `${s.offsetWidth}px`));
                        let d = "",
                          u = "";
                        l + e.offsetHeight > o - 10 &&
                          ((d = "auto"), (u = "0")),
                          (e.style.left = h),
                          (e.style.right = c),
                          (e.style.top = d),
                          (e.style.bottom = u);
                      }
                    }));
            },
            ctxMenuMouseoutEvent(e, t) {
              const i = this.ctxMenuStore;
              t.children || (i.selected = null), (i.selectChild = null);
            },
            ctxMenuLinkEvent(e, t) {
              if (
                !t.disabled &&
                (t.code || !t.children || !t.children.length)
              ) {
                const i = Ke.menus.get(t.code),
                  s = Object.assign(
                    { menu: t, $grid: this.$xegrid, $table: this, $event: e },
                    this.ctxMenuStore.args
                  );
                i && i.call(this, s, e),
                  this.$listeners["context-menu-click"]
                    ? ("development" ===
                        Object({ NODE_ENV: "production", BASE_URL: "" })
                          .VUE_APP_VXE_TABLE_ENV &&
                        g.warn("vxe.error.delEvent", [
                          "context-menu-click",
                          "menu-click",
                        ]),
                      this.emitEvent("context-menu-click", s, e))
                    : this.emitEvent("menu-click", s, e),
                  this.closeMenu();
              }
            },
          },
        };
      const _i = {
        Panel: gi,
        install(e) {
          Ke.reg("menu"), ui.mixins.push(vi), e.component(gi.name, gi);
        },
      };
      var bi = {
        methods: {
          _insert(e) {
            return this.insertAt(e);
          },
          _insertAt(e, t) {
            const i = this.mergeList,
              s = this.afterFullData,
              o = this.editStore,
              r = this.sYOpts,
              l = this.scrollYLoad,
              a = this.tableFullData,
              h = this.treeConfig;
            n.a.isArray(e) || (e = [e]);
            const c = e.map((e) => this.defineField(Object.assign({}, e)));
            if (t)
              if (-1 === t)
                s.push(...c),
                  a.push(...c),
                  i.forEach((e) => {
                    const t = e.row,
                      i = e.rowspan;
                    t + i > s.length && (e.rowspan = i + c.length);
                  });
              else {
                if (h)
                  throw new Error(g.getLog("vxe.error.noTree", ["insert"]));
                const e = s.indexOf(t);
                if (-1 === e)
                  throw new Error(g.error("vxe.error.unableInsert"));
                s.splice(e, 0, ...c),
                  a.splice(a.indexOf(t), 0, ...c),
                  i.forEach((t) => {
                    const i = t.row,
                      s = t.rowspan;
                    i > e
                      ? (t.row = i + c.length)
                      : i + s > e && (t.rowspan = s + c.length);
                  });
              }
            else
              s.unshift(...c),
                a.unshift(...c),
                i.forEach((e) => {
                  const t = e.row;
                  t > 0 && (e.row = t + c.length);
                });
            return (
              o.insertList.unshift(...c),
              (this.scrollYLoad = !h && r.gt > -1 && r.gt < a.length),
              this.handleTableData(),
              this.updateFooter(),
              this.updateCache(),
              this.checkSelectionStatus(),
              l && this.updateScrollYSpace(),
              this.$nextTick()
                .then(() => {
                  return this.updateCellAreas(), this.recalculate();
                })
                .then(() => {
                  return { row: c.length ? c[c.length - 1] : null, rows: c };
                })
            );
          },
          _remove(e) {
            const t = this.afterFullData,
              i = this.tableFullData,
              s = this.treeConfig,
              o = this.mergeList,
              r = this.editStore,
              l = this.checkboxOpts,
              a = this.selection,
              h = this.isInsertByRow,
              c = this.sYOpts,
              d = this.scrollYLoad,
              u = r.actived,
              p = r.removeList,
              f = r.insertList,
              m = l.checkField;
            let g = [];
            return (
              e ? n.a.isArray(e) || (e = [e]) : (e = i),
              e.forEach((e) => {
                h(e) || p.push(e);
              }),
              m ||
                e.forEach((e) => {
                  const t = a.indexOf(e);
                  t > -1 && a.splice(t, 1);
                }),
              i === e
                ? ((e = g = i.slice(0)),
                  (this.tableFullData = []),
                  (this.afterFullData = []),
                  this.clearMergeCells())
                : e.forEach((e) => {
                    const s = i.indexOf(e);
                    if (s > -1) {
                      const e = i.splice(s, 1);
                      g.push(e[0]);
                    }
                    const n = t.indexOf(e);
                    n > -1 &&
                      (o.forEach((e) => {
                        const t = e.row,
                          i = e.rowspan;
                        t > n
                          ? (e.row = t - 1)
                          : t + i > n && (e.rowspan = i - 1);
                      }),
                      t.splice(n, 1));
                  }),
              u.row && e.indexOf(u.row) > -1 && this.clearActived(),
              e.forEach((e) => {
                const t = f.indexOf(e);
                t > -1 && f.splice(t, 1);
              }),
              (this.scrollYLoad = !s && c.gt > -1 && c.gt < i.length),
              this.handleTableData(),
              this.updateFooter(),
              this.updateCache(),
              this.checkSelectionStatus(),
              d && this.updateScrollYSpace(),
              this.$nextTick()
                .then(() => {
                  return this.updateCellAreas(), this.recalculate();
                })
                .then(() => {
                  return { row: g.length ? g[g.length - 1] : null, rows: g };
                })
            );
          },
          _removeCheckboxRow() {
            return this.remove(this.getCheckboxRecords()).then((e) => {
              return this.clearCheckboxRow(), e;
            });
          },
          _removeRadioRow() {
            const e = this.getRadioRecord();
            return this.remove(e || []).then((e) => {
              return this.clearRadioRow(), e;
            });
          },
          _removeCurrentRow() {
            const e = this.getCurrentRecord();
            return this.remove(e || []).then((e) => {
              return this.clearCurrentRow(), e;
            });
          },
          _getRecordset() {
            return {
              insertRecords: this.getInsertRecords(),
              removeRecords: this.getRemoveRecords(),
              updateRecords: this.getUpdateRecords(),
            };
          },
          _getInsertRecords() {
            const e = this.editStore.insertList,
              t = [];
            return (
              e.length &&
                this.tableFullData.forEach((i) => {
                  e.indexOf(i) > -1 && t.push(i);
                }),
              t
            );
          },
          _getRemoveRecords() {
            return this.editStore.removeList;
          },
          _getUpdateRecords() {
            const e = this.keepSource,
              t = this.tableFullData,
              i = this.isUpdateByRow,
              s = this.treeConfig,
              o = this.treeOpts,
              r = this.editStore;
            if (e) {
              const e = r.actived,
                l = e.row,
                a = e.column;
              return (
                (l || a) && this._syncActivedCell(),
                s ? n.a.filterTree(t, (e) => i(e), o) : t.filter((e) => i(e))
              );
            }
            return [];
          },
          handleActived(e, t) {
            const i = this.editStore,
              s = this.editOpts,
              n = this.tableColumn,
              o = this.mouseConfig,
              r = s.mode,
              l = s.activeMethod,
              a = i.actived,
              h = e.row,
              c = e.column,
              d = c.editRender,
              u = (e.cell = e.cell || this.getCell(h, c));
            if (p(d) && u) {
              if (a.row !== h || ("cell" === r && a.column !== c)) {
                let i = "edit-disabled";
                (l && !l(e)) ||
                  (o &&
                    (this.clearSelected(t),
                    this.clearCellAreas(t),
                    this.clearCopyCellArea(t)),
                  this.closeTooltip(),
                  this.clearActived(t),
                  (i = "edit-actived"),
                  (c.renderHeight = u.offsetHeight),
                  (a.args = e),
                  (a.row = h),
                  (a.column = c),
                  "row" === r
                    ? n.forEach((e) => this._getColumnModel(h, e))
                    : this._getColumnModel(h, c),
                  this.$nextTick(() => {
                    this.handleFocus(e, t);
                  })),
                  this.emitEvent(
                    i,
                    {
                      row: h,
                      rowIndex: this.getRowIndex(h),
                      $rowIndex: this.getVMRowIndex(h),
                      column: c,
                      columnIndex: this.getColumnIndex(c),
                      $columnIndex: this.getVMColumnIndex(c),
                    },
                    t
                  );
              } else {
                const i = a.column;
                if (
                  (o &&
                    (this.clearSelected(t),
                    this.clearCellAreas(t),
                    this.clearCopyCellArea(t)),
                  i !== c)
                ) {
                  const e = i.model;
                  e.update && g.setCellValue(h, i, e.value),
                    this.clearValidate();
                }
                (c.renderHeight = u.offsetHeight),
                  (a.args = e),
                  (a.column = c),
                  setTimeout(() => {
                    this.handleFocus(e, t);
                  });
              }
              this.focus();
            }
            return this.$nextTick();
          },
          _getColumnModel(e, t) {
            const i = t.model,
              s = t.editRender;
            s && ((i.value = g.getCellValue(e, t)), (i.update = !1));
          },
          _setColumnModel(e, t) {
            const i = t.model,
              s = t.editRender;
            s &&
              i.update &&
              (g.setCellValue(e, t, i.value),
              (i.update = !1),
              (i.value = null));
          },
          _syncActivedCell() {
            const e = this.tableColumn,
              t = this.editStore,
              i = this.editOpts,
              s = t.actived,
              n = s.row,
              o = s.column;
            (n || o) &&
              ("row" === i.mode
                ? e.forEach((e) => this._setColumnModel(n, e))
                : this._setColumnModel(n, o));
          },
          _clearActived(e) {
            const t = this.editStore,
              i = t.actived,
              s = i.row,
              n = i.column;
            return (
              (s || n) &&
                (this._syncActivedCell(),
                (i.args = null),
                (i.row = null),
                (i.column = null),
                this.updateFooter(),
                this.emitEvent(
                  "edit-closed",
                  {
                    row: s,
                    rowIndex: this.getRowIndex(s),
                    $rowIndex: this.getVMRowIndex(s),
                    column: n,
                    columnIndex: this.getColumnIndex(n),
                    $columnIndex: this.getVMColumnIndex(n),
                  },
                  e
                )),
              (Ke._valid ? this.clearValidate() : this.$nextTick()).then(
                this.recalculate
              )
            );
          },
          _getActiveRecord() {
            const e = this.$el,
              t = this.editStore,
              i = this.afterFullData,
              s = t.actived,
              n = s.args,
              o = s.row;
            return n &&
              i.indexOf(o) > -1 &&
              e.querySelectorAll(".vxe-body--column.col--actived").length
              ? Object.assign({}, n)
              : null;
          },
          _isActiveByRow(e) {
            return this.editStore.actived.row === e;
          },
          handleFocus(e) {
            const t = e.row,
              i = e.column,
              s = e.cell,
              n = i.editRender;
            if (p(n)) {
              const e = Ke.renderer.get(n.name),
                o = n.autofocus,
                r = n.autoselect;
              let l;
              if (
                (o && (l = s.querySelector(o)),
                !l && e && e.autofocus && (l = s.querySelector(e.autofocus)),
                l)
              ) {
                if ((l.focus(), r)) l.select();
                else if (b.msie) {
                  const e = l.createTextRange();
                  e.collapse(!1), e.select();
                }
              } else this.scrollToRow(t, i);
            }
          },
          _setActiveRow(e) {
            return this.setActiveCell(
              e,
              n.a.find(this.visibleColumn, (e) => p(e.editRender))
            );
          },
          _setActiveCell(e, t) {
            const i = n.a.isString(t) ? this.getColumnByField(t) : t;
            return e && i && p(i.editRender)
              ? this.scrollToRow(e, !0).then(() => {
                  const t = this.getCell(e, i);
                  t &&
                    (this.handleActived({
                      row: e,
                      rowIndex: this.getRowIndex(e),
                      column: i,
                      columnIndex: this.getColumnIndex(i),
                      cell: t,
                      $table: this,
                    }),
                    (this.lastCallTime = Date.now()));
                })
              : this.$nextTick();
          },
          _setSelectCell(e, t) {
            const i = this.tableData,
              s = this.editOpts,
              o = this.visibleColumn,
              r = n.a.isString(t) ? this.getColumnByField(t) : t;
            if (e && r && "manual" !== s.trigger) {
              const t = i.indexOf(e);
              if (t > -1) {
                const i = this.getCell(e, r),
                  s = {
                    row: e,
                    rowIndex: t,
                    column: r,
                    columnIndex: o.indexOf(r),
                    cell: i,
                  };
                this.handleSelected(s, {});
              }
            }
            return this.$nextTick();
          },
          handleSelected(e, t) {
            const i = this.mouseConfig,
              s = this.mouseOpts,
              n = this.editOpts,
              o = this.editStore,
              r = o.actived,
              l = o.selected,
              a = e.row,
              h = e.column,
              c = i && s.selected,
              d = () => {
                return (
                  !c ||
                    (l.row === a && l.column === h) ||
                    ((r.row !== a || ("cell" === n.mode && r.column !== h)) &&
                      (this.clearActived(t),
                      this.clearSelected(t),
                      this.clearCellAreas(t),
                      this.clearCopyCellArea(t),
                      (l.args = e),
                      (l.row = a),
                      (l.column = h),
                      c && this.addColSdCls(),
                      this.focus(),
                      t && this.emitEvent("cell-selected", e, t))),
                  this.$nextTick()
                );
              };
            return d();
          },
          _getSelectedCell() {
            const e = this.editStore.selected,
              t = e.args,
              i = e.column;
            return t && i ? Object.assign({}, t) : null;
          },
          _clearSelected() {
            const e = this.editStore.selected;
            return (
              (e.row = null),
              (e.column = null),
              this.reColTitleSdCls(),
              this.reColSdCls(),
              this.$nextTick()
            );
          },
          reColTitleSdCls() {
            const e = this.elemStore["main-header-list"];
            e &&
              n.a.arrayEach(e.querySelectorAll(".col--title-selected"), (e) =>
                A.removeClass(e, "col--title-selected")
              );
          },
          reColSdCls() {
            const e = this.$el.querySelector(".col--selected");
            e && A.removeClass(e, "col--selected");
          },
          addColSdCls() {
            const e = this.editStore.selected,
              t = e.row,
              i = e.column;
            if ((this.reColSdCls(), t && i)) {
              const e = this.getCell(t, i);
              e && A.addClass(e, "col--selected");
            }
          },
        },
      };
      const yi = {
        install() {
          Ke.reg("edit"), ui.mixins.push(bi);
        },
      };
      var xi = i("3835");
      const wi = [],
        Si = [];
      var Ei = {
        name: "VxeModal",
        mixins: [bt],
        props: {
          value: Boolean,
          id: String,
          type: { type: String, default: "modal" },
          loading: { type: Boolean, default: null },
          status: String,
          iconStatus: String,
          className: String,
          top: { type: [Number, String], default: () => r.modal.top },
          position: [String, Object],
          title: String,
          duration: { type: [Number, String], default: () => r.modal.duration },
          message: [String, Function],
          content: [String, Function],
          cancelButtonText: {
            type: String,
            default: () => r.modal.cancelButtonText,
          },
          confirmButtonText: {
            type: String,
            default: () => r.modal.confirmButtonText,
          },
          lockView: { type: Boolean, default: () => r.modal.lockView },
          lockScroll: Boolean,
          mask: { type: Boolean, default: () => r.modal.mask },
          maskClosable: { type: Boolean, default: () => r.modal.maskClosable },
          escClosable: { type: Boolean, default: () => r.modal.escClosable },
          resize: { type: Boolean, default: () => r.modal.resize },
          showHeader: { type: Boolean, default: () => r.modal.showHeader },
          showFooter: { type: Boolean, default: () => r.modal.showFooter },
          showZoom: { type: Boolean, default: null },
          showClose: { type: Boolean, default: () => r.modal.showClose },
          dblclickZoom: { type: Boolean, default: () => r.modal.dblclickZoom },
          width: [Number, String],
          height: [Number, String],
          minWidth: { type: [Number, String], default: () => r.modal.minWidth },
          minHeight: {
            type: [Number, String],
            default: () => r.modal.minHeight,
          },
          zIndex: Number,
          marginSize: { type: [Number, String], default: r.modal.marginSize },
          fullscreen: Boolean,
          remember: { type: Boolean, default: () => r.modal.remember },
          destroyOnClose: {
            type: Boolean,
            default: () => r.modal.destroyOnClose,
          },
          showTitleOverflow: {
            type: Boolean,
            default: () => r.modal.showTitleOverflow,
          },
          transfer: { type: Boolean, default: () => r.modal.transfer },
          storage: { type: Boolean, default: () => r.modal.storage },
          storageKey: { type: String, default: () => r.modal.storageKey },
          animat: { type: Boolean, default: () => r.modal.animat },
          size: { type: String, default: () => r.modal.size || r.size },
          beforeHideMethod: {
            type: Function,
            default: () => r.modal.beforeHideMethod,
          },
          slots: Object,
          events: Object,
        },
        data() {
          return {
            inited: !1,
            visible: !1,
            contentVisible: !1,
            modalTop: 0,
            modalZindex: 0,
            zoomLocat: null,
            firstOpen: !1,
          };
        },
        computed: {
          isMsg() {
            return "message" === this.type;
          },
        },
        watch: {
          width() {
            this.recalculate();
          },
          height() {
            this.recalculate();
          },
          value(e) {
            this[e ? "open" : "close"]("model");
          },
        },
        created() {
          this.storage &&
            !this.id &&
            g.error("vxe.error.reqProp", ["modal.id"]);
        },
        mounted() {
          const e = this.$listeners,
            t = this.events,
            i = void 0 === t ? {} : t;
          this.value && this.open(),
            this.recalculate(),
            this.escClosable &&
              M.on(this, "keydown", this.handleGlobalKeydownEvent);
          const s = "inserted",
            n = { type: s, $modal: this, $event: { type: s } };
          e.inserted
            ? this.$emit("inserted", n)
            : i.inserted && i.inserted.call(this, n);
        },
        beforeDestroy() {
          const e = this.$el;
          M.off(this, "keydown"),
            this.removeMsgQueue(),
            e.parentNode === document.body && e.parentNode.removeChild(e);
        },
        render(e) {
          const t = this._e,
            i = this.$scopedSlots,
            s = this.slots,
            n = void 0 === s ? {} : s,
            o = this.inited,
            l = this.vSize,
            a = this.className,
            h = this.type,
            c = this.resize,
            d = this.showClose,
            u = this.showZoom,
            p = this.animat,
            f = this.loading,
            m = this.status,
            v = this.iconStatus,
            _ = this.showFooter,
            b = this.zoomLocat,
            y = this.modalTop,
            x = this.dblclickZoom,
            w = this.contentVisible,
            S = this.visible,
            E = this.title,
            k = this.lockScroll,
            C = this.lockView,
            T = this.mask,
            O = this.isMsg,
            $ = this.showTitleOverflow,
            R = this.destroyOnClose,
            A = this.content || this.message,
            L = i.default || n.default,
            D = i.footer || n.footer,
            I = i.header || n.header,
            M = i.title || n.title,
            P = { mousedown: this.mousedownEvent };
          return (
            u && x && "modal" === h && (P.dblclick = this.toggleZoomEvent),
            e(
              "div",
              {
                class: [
                  "vxe-modal--wrapper",
                  `type--${h}`,
                  a || "",
                  {
                    [`size--${l}`]: l,
                    [`status--${m}`]: m,
                    "is--animat": p,
                    "lock--scroll": k,
                    "lock--view": C,
                    "is--resize": c,
                    "is--mask": T,
                    "is--maximize": b,
                    "is--visible": w,
                    "is--active": S,
                    "is--loading": f,
                  },
                ],
                style: { zIndex: this.modalZindex, top: y ? `${y}px` : null },
                on: { click: this.selfClickEvent },
              },
              [
                e(
                  "div",
                  {
                    class: "vxe-modal--box",
                    on: { mousedown: this.boxMousedownEvent },
                    ref: "modalBox",
                  },
                  [
                    this.showHeader
                      ? e(
                          "div",
                          {
                            class: [
                              "vxe-modal--header",
                              !O && $ ? "is--ellipsis" : "",
                            ],
                            on: P,
                          },
                          I
                            ? !o || (R && !S)
                              ? []
                              : I.call(this, { $modal: this }, e)
                            : [
                                M
                                  ? M.call(this, { $modal: this }, e)
                                  : e(
                                      "span",
                                      { class: "vxe-modal--title" },
                                      E
                                        ? g.getFuncText(E)
                                        : r.i18n("vxe.alert.title")
                                    ),
                                u
                                  ? e("i", {
                                      class: [
                                        "vxe-modal--zoom-btn",
                                        "trigger--btn",
                                        b
                                          ? r.icon.MODAL_ZOOM_OUT
                                          : r.icon.MODAL_ZOOM_IN,
                                      ],
                                      attrs: {
                                        title: r.i18n(
                                          `vxe.modal.zoom${b ? "Out" : "In"}`
                                        ),
                                      },
                                      on: { click: this.toggleZoomEvent },
                                    })
                                  : t(),
                                d
                                  ? e("i", {
                                      class: [
                                        "vxe-modal--close-btn",
                                        "trigger--btn",
                                        r.icon.MODAL_CLOSE,
                                      ],
                                      attrs: {
                                        title: r.i18n("vxe.modal.close"),
                                      },
                                      on: { click: this.closeEvent },
                                    })
                                  : t(),
                              ]
                        )
                      : null,
                    e("div", { class: "vxe-modal--body" }, [
                      m
                        ? e("div", { class: "vxe-modal--status-wrapper" }, [
                            e("i", {
                              class: [
                                "vxe-modal--status-icon",
                                v || r.icon[`MODAL_${m}`.toLocaleUpperCase()],
                              ],
                            }),
                          ])
                        : null,
                      e(
                        "div",
                        { class: "vxe-modal--content" },
                        L
                          ? !o || (R && !S)
                            ? []
                            : L.call(this, { $modal: this }, e)
                          : g.getFuncText(A)
                      ),
                      O
                        ? null
                        : e(
                            "div",
                            { class: ["vxe-loading", { "is--visible": f }] },
                            [e("div", { class: "vxe-loading--spinner" })]
                          ),
                    ]),
                    _
                      ? e(
                          "div",
                          { class: "vxe-modal--footer" },
                          D
                            ? !o || (R && !S)
                              ? []
                              : D.call(this, { $modal: this }, e)
                            : [
                                "confirm" === h
                                  ? e(
                                      "vxe-button",
                                      {
                                        ref: "cancelBtn",
                                        on: { click: this.cancelEvent },
                                      },
                                      this.cancelButtonText ||
                                        r.i18n("vxe.button.cancel")
                                    )
                                  : null,
                                e(
                                  "vxe-button",
                                  {
                                    ref: "confirmBtn",
                                    props: { status: "primary" },
                                    on: { click: this.confirmEvent },
                                  },
                                  this.confirmButtonText ||
                                    r.i18n("vxe.button.confirm")
                                ),
                              ]
                        )
                      : null,
                    !O && c
                      ? e(
                          "span",
                          { class: "vxe-modal--resize" },
                          [
                            "wl",
                            "wr",
                            "swst",
                            "sest",
                            "st",
                            "swlb",
                            "selb",
                            "sb",
                          ].map((t) => {
                            return e("span", {
                              class: `${t}-resize`,
                              attrs: { type: t },
                              on: { mousedown: this.dragEvent },
                            });
                          })
                        )
                      : null,
                  ]
                ),
              ]
            )
          );
        },
        methods: {
          recalculate() {
            const e = this.width,
              t = this.height,
              i = this.getBox();
            return (
              (i.style.width = e ? (isNaN(e) ? e : `${e}px`) : null),
              (i.style.height = t ? (isNaN(t) ? t : `${t}px`) : null),
              this.$nextTick()
            );
          },
          selfClickEvent(e) {
            if (this.maskClosable && e.target === this.$el) {
              const e = "mask";
              this.close(e);
            }
          },
          updateZindex() {
            const e = this.zIndex,
              t = this.modalZindex;
            e
              ? (this.modalZindex = e)
              : t < g.getLastZIndex() && (this.modalZindex = g.nextZIndex());
          },
          closeEvent(e) {
            const t = "close";
            this.$emit(t, { type: t, $modal: this, $event: e }), this.close(t);
          },
          confirmEvent(e) {
            const t = "confirm";
            this.$emit(t, { type: t, $modal: this, $event: e }), this.close(t);
          },
          cancelEvent(e) {
            const t = "cancel";
            this.$emit(t, { type: t, $modal: this, $event: e }), this.close(t);
          },
          open() {
            const e = this.$refs,
              t = this.events,
              i = void 0 === t ? {} : t,
              s = this.inited,
              o = this.duration,
              r = this.visible,
              l = this.isMsg,
              a = this.remember,
              h = this.showFooter;
            s ||
              ((this.inited = !0),
              this.transfer && document.body.appendChild(this.$el)),
              r ||
                (a || this.recalculate(),
                (this.visible = !0),
                (this.contentVisible = !1),
                this.updateZindex(),
                wi.push(this),
                setTimeout(() => {
                  (this.contentVisible = !0),
                    this.$nextTick(() => {
                      if (h) {
                        const t = e.confirmBtn || e.cancelBtn;
                        t && t.focus();
                      }
                      const t = "",
                        s = { type: t, $modal: this };
                      i.show
                        ? i.show.call(this, s)
                        : (this.$emit("input", !0), this.$emit("show", s));
                    });
                }, 10),
                l
                  ? (this.addMsgQueue(),
                    -1 !== o &&
                      setTimeout(() => this.close("close"), n.a.toNumber(o)))
                  : this.$nextTick(() => {
                      const e = this.firstOpen,
                        t = this.fullscreen;
                      (a && e) ||
                        this.updatePosition().then(() => {
                          setTimeout(() => this.updatePosition(), 20);
                        }),
                        e ||
                          ((this.firstOpen = !0),
                          this.hasPosStorage()
                            ? this.restorePosStorage()
                            : t && this.$nextTick(() => this.maximize()));
                    }));
          },
          addMsgQueue() {
            -1 === Si.indexOf(this) && Si.push(this), this.updateStyle();
          },
          removeMsgQueue() {
            Si.indexOf(this) > -1 && n.a.remove(Si, (e) => e === this),
              this.updateStyle();
          },
          updateStyle() {
            this.$nextTick(() => {
              let e = 0;
              Si.forEach((t) => {
                (e += n.a.toNumber(t.top)),
                  (t.modalTop = e),
                  (e += t.$refs.modalBox.clientHeight);
              });
            });
          },
          updatePosition() {
            return this.$nextTick().then(() => {
              const e = this.marginSize,
                t = this.position,
                i = this.getBox(),
                s =
                  document.documentElement.clientWidth ||
                  document.body.clientWidth,
                n =
                  document.documentElement.clientHeight ||
                  document.body.clientHeight,
                o = "center" === t,
                r = o ? { top: t, left: t } : Object.assign({}, t),
                l = r.top,
                a = r.left,
                h = o || "center" === l,
                c = o || "center" === a;
              let d = "",
                u = "";
              (u =
                a && !c
                  ? isNaN(a)
                    ? a
                    : `${a}px`
                  : `${Math.max(e, s / 2 - i.offsetWidth / 2)}px`),
                (d =
                  l && !h
                    ? isNaN(l)
                      ? l
                      : `${l}px`
                    : `${Math.max(e, n / 2 - i.offsetHeight / 2)}px`),
                (i.style.top = d),
                (i.style.left = u);
            });
          },
          close(e) {
            const t = this.events,
              i = void 0 === t ? {} : t,
              s = this.remember,
              o = this.visible,
              r = this.isMsg,
              l = this.beforeHideMethod,
              a = { type: e, $modal: this };
            o &&
              Promise.resolve(l ? l(a) : null)
                .then((e) => {
                  n.a.isError(e) ||
                    (r && this.removeMsgQueue(),
                    (this.contentVisible = !1),
                    s || (this.zoomLocat = null),
                    n.a.remove(wi, (e) => e === this),
                    this.$emit("before-hide", a),
                    setTimeout(() => {
                      (this.visible = !1),
                        i.hide
                          ? i.hide.call(this, a)
                          : (this.$emit("input", !1), this.$emit("hide", a));
                    }, 200));
                })
                .catch((e) => e);
          },
          handleGlobalKeydownEvent(e) {
            const t = 27 === e.keyCode;
            if (t) {
              const e = n.a.max(wi, (e) => e.modalZindex);
              e &&
                setTimeout(() => {
                  e === this && e.escClosable && this.close("exit");
                }, 10);
            }
          },
          getBox() {
            return this.$refs.modalBox;
          },
          isMaximized() {
            return !!this.zoomLocat;
          },
          maximize() {
            return this.$nextTick().then(() => {
              if (!this.zoomLocat) {
                const e = this.marginSize,
                  t = this.getBox(),
                  i = A.getDomNode(),
                  s = i.visibleHeight,
                  n = i.visibleWidth;
                (this.zoomLocat = {
                  top: t.offsetTop,
                  left: t.offsetLeft,
                  width: t.offsetWidth + (t.style.width ? 0 : 1),
                  height: t.offsetHeight + (t.style.height ? 0 : 1),
                }),
                  Object.assign(t.style, {
                    top: `${e}px`,
                    left: `${e}px`,
                    width: `${n - 2 * e}px`,
                    height: `${s - 2 * e}px`,
                  }),
                  this.savePosStorage();
              }
            });
          },
          revert() {
            return this.$nextTick().then(() => {
              const e = this.zoomLocat;
              if (e) {
                const t = this.getBox();
                (this.zoomLocat = null),
                  Object.assign(t.style, {
                    top: `${e.top}px`,
                    left: `${e.left}px`,
                    width: `${e.width}px`,
                    height: `${e.height}px`,
                  }),
                  this.savePosStorage();
              }
            });
          },
          zoom() {
            return this[this.zoomLocat ? "revert" : "maximize"]().then(() =>
              this.isMaximized()
            );
          },
          toggleZoomEvent(e) {
            const t = this.$listeners,
              i = this.zoomLocat,
              s = this.events,
              n = void 0 === s ? {} : s,
              o = { type: i ? "revert" : "max", $modal: this, $event: e };
            return this.zoom().then(() => {
              t.zoom ? this.$emit("zoom", o) : n.zoom && n.zoom.call(this, o);
            });
          },
          getPosition() {
            if (!this.isMsg) {
              const e = this.getBox();
              if (e) return { top: e.offsetTop, left: e.offsetLeft };
            }
            return null;
          },
          setPosition(e, t) {
            if (!this.isMsg) {
              const i = this.getBox();
              n.a.isNumber(e) && (i.style.top = `${e}px`),
                n.a.isNumber(t) && (i.style.left = `${t}px`);
            }
            return this.$nextTick();
          },
          boxMousedownEvent() {
            const e = this.modalZindex;
            wi.some((t) => t.visible && t.modalZindex > e) &&
              this.updateZindex();
          },
          mousedownEvent(e) {
            const t = this.remember,
              i = this.storage,
              s = this.marginSize,
              n = this.zoomLocat,
              o = this.getBox();
            if (
              !n &&
              0 === e.button &&
              !A.getEventTargetNode(e, o, "trigger--btn").flag
            ) {
              e.preventDefault();
              const n = document.onmousemove,
                r = document.onmouseup,
                l = e.clientX - o.offsetLeft,
                a = e.clientY - o.offsetTop,
                h = A.getDomNode(),
                c = h.visibleHeight,
                d = h.visibleWidth;
              (document.onmousemove = (e) => {
                e.preventDefault();
                const t = o.offsetWidth,
                  i = o.offsetHeight,
                  n = s,
                  r = d - t - s - 1,
                  h = s,
                  u = c - i - s - 1;
                let p = e.clientX - l,
                  f = e.clientY - a;
                p > r && (p = r),
                  p < n && (p = n),
                  f > u && (f = u),
                  f < h && (f = h),
                  (o.style.left = `${p}px`),
                  (o.style.top = `${f}px`);
              }),
                (document.onmouseup = () => {
                  (document.onmousemove = n),
                    (document.onmouseup = r),
                    t &&
                      i &&
                      this.$nextTick(() => {
                        this.savePosStorage();
                      });
                });
            }
          },
          dragEvent(e) {
            e.preventDefault();
            const t = this.$listeners,
              i = this.marginSize,
              s = this.events,
              o = void 0 === s ? {} : s,
              r = this.remember,
              l = this.storage,
              a = A.getDomNode(),
              h = a.visibleHeight,
              c = a.visibleWidth,
              d = e.target.getAttribute("type"),
              u = n.a.toNumber(this.minWidth),
              p = n.a.toNumber(this.minHeight),
              f = c,
              m = h,
              g = this.getBox(),
              v = document.onmousemove,
              _ = document.onmouseup,
              b = g.clientWidth,
              y = g.clientHeight,
              x = e.clientX,
              w = e.clientY,
              S = g.offsetTop,
              E = g.offsetLeft,
              k = { type: "resize", $modal: this };
            (document.onmousemove = (e) => {
              let s, n, a, v;
              switch ((e.preventDefault(), d)) {
                case "wl":
                  (s = x - e.clientX),
                    (a = s + b),
                    E - s > i &&
                      a > u &&
                      ((g.style.width = `${a < f ? a : f}px`),
                      (g.style.left = `${E - s}px`));
                  break;
                case "swst":
                  (s = x - e.clientX),
                    (n = w - e.clientY),
                    (a = s + b),
                    (v = n + y),
                    E - s > i &&
                      a > u &&
                      ((g.style.width = `${a < f ? a : f}px`),
                      (g.style.left = `${E - s}px`)),
                    S - n > i &&
                      v > p &&
                      ((g.style.height = `${v < m ? v : m}px`),
                      (g.style.top = `${S - n}px`));
                  break;
                case "swlb":
                  (s = x - e.clientX),
                    (n = e.clientY - w),
                    (a = s + b),
                    (v = n + y),
                    E - s > i &&
                      a > u &&
                      ((g.style.width = `${a < f ? a : f}px`),
                      (g.style.left = `${E - s}px`)),
                    S + v + i < h &&
                      v > p &&
                      (g.style.height = `${v < m ? v : m}px`);
                  break;
                case "st":
                  (n = w - e.clientY),
                    (v = y + n),
                    S - n > i &&
                      v > p &&
                      ((g.style.height = `${v < m ? v : m}px`),
                      (g.style.top = `${S - n}px`));
                  break;
                case "wr":
                  (s = e.clientX - x),
                    (a = s + b),
                    E + a + i < c &&
                      a > u &&
                      (g.style.width = `${a < f ? a : f}px`);
                  break;
                case "sest":
                  (s = e.clientX - x),
                    (n = w - e.clientY),
                    (a = s + b),
                    (v = n + y),
                    E + a + i < c &&
                      a > u &&
                      (g.style.width = `${a < f ? a : f}px`),
                    S - n > i &&
                      v > p &&
                      ((g.style.height = `${v < m ? v : m}px`),
                      (g.style.top = `${S - n}px`));
                  break;
                case "selb":
                  (s = e.clientX - x),
                    (n = e.clientY - w),
                    (a = s + b),
                    (v = n + y),
                    E + a + i < c &&
                      a > u &&
                      (g.style.width = `${a < f ? a : f}px`),
                    S + v + i < h &&
                      v > p &&
                      (g.style.height = `${v < m ? v : m}px`);
                  break;
                case "sb":
                  (n = e.clientY - w),
                    (v = n + y),
                    S + v + i < h &&
                      v > p &&
                      (g.style.height = `${v < m ? v : m}px`);
                  break;
              }
              (g.className =
                g.className.replace(/\s?is--drag/, "") + " is--drag"),
                r && l && this.savePosStorage(),
                t.zoom ? this.$emit("zoom", k) : o.zoom && o.zoom.call(this, k);
            }),
              (document.onmouseup = () => {
                (this.zoomLocat = null),
                  (document.onmousemove = v),
                  (document.onmouseup = _),
                  setTimeout(() => {
                    g.className = g.className.replace(/\s?is--drag/, "");
                  }, 50);
              });
          },
          getStorageMap(e) {
            const t = r.version,
              i = n.a.toStringJSON(localStorage.getItem(e));
            return i && i._v === t ? i : { _v: t };
          },
          hasPosStorage() {
            const e = this.id,
              t = this.remember,
              i = this.storage,
              s = this.storageKey;
            return !!(t && i && this.getStorageMap(s)[e]);
          },
          restorePosStorage() {
            const e = this.id,
              t = this.remember,
              i = this.storage,
              s = this.storageKey;
            if (t && i) {
              const t = this.getStorageMap(s)[e];
              if (t) {
                const e = this.getBox(),
                  i = t.split(","),
                  s = Object(xi["a"])(i, 8),
                  n = s[0],
                  o = s[1],
                  r = s[2],
                  l = s[3],
                  a = s[4],
                  h = s[5],
                  c = s[6],
                  d = s[7];
                n && (e.style.left = `${n}px`),
                  o && (e.style.top = `${o}px`),
                  r && (e.style.width = `${r}px`),
                  l && (e.style.height = `${l}px`),
                  a &&
                    h &&
                    (this.zoomLocat = { left: a, top: h, width: c, height: d });
              }
            }
          },
          savePosStorage() {
            const e = this.id,
              t = this.remember,
              i = this.storage,
              s = this.storageKey,
              o = this.zoomLocat;
            if (t && i) {
              const t = this.getBox(),
                i = this.getStorageMap(s);
              (i[e] = [t.style.left, t.style.top, t.style.width, t.style.height]
                .concat(o ? [o.left, o.top, o.width, o.height] : [])
                .map((e) => (e ? n.a.toNumber(e) : ""))
                .join(",")),
                localStorage.setItem(s, n.a.toJSONString(i));
            }
          },
        },
      };
      function ki(e, t) {
        var i = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
          var s = Object.getOwnPropertySymbols(e);
          t &&
            (s = s.filter(function (t) {
              return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })),
            i.push.apply(i, s);
        }
        return i;
      }
      function Ci(e) {
        for (var t = 1; t < arguments.length; t++) {
          var i = null != arguments[t] ? arguments[t] : {};
          t % 2
            ? ki(i, !0).forEach(function (t) {
                Object(yt["a"])(e, t, i[t]);
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i))
            : ki(i).forEach(function (t) {
                Object.defineProperty(
                  e,
                  t,
                  Object.getOwnPropertyDescriptor(i, t)
                );
              });
        }
        return e;
      }
      const Ti = 20,
        Oi = 20,
        $i = 8;
      function Ri(e) {
        if (e) {
          const t = new Date();
          let i, s, o;
          if (n.a.isDate(e))
            (i = e.getHours()), (s = e.getMinutes()), (o = e.getSeconds());
          else {
            e = n.a.toString(e);
            const t = e.match(/^(\d{1,2})(:(\d{1,2}))?(:(\d{1,2}))?/);
            t && ((i = t[1]), (s = t[3]), (o = t[5]));
          }
          return (
            t.setHours(i || 0), t.setMinutes(s || 0), t.setSeconds(o || 0), t
          );
        }
        return new Date("");
      }
      function Ai(e) {
        const t = e.getMonth();
        return t < 3 ? 1 : t < 6 ? 2 : t < 9 ? 3 : 4;
      }
      function Li(e, t) {
        const i = e.type,
          s = e.exponential,
          o = e.digitsValue,
          r = e.inpMaxlength,
          l = "float" === i ? n.a.toFixed(n.a.floor(t, o), o) : n.a.toString(t);
        return !s ||
          (t !== l &&
            n.a.toString(t).toLowerCase() !== n.a.toNumber(l).toExponential())
          ? l.slice(0, r)
          : t;
      }
      function Di(e, t, i, s) {
        const o = t.festivalMethod;
        if (o) {
          const r = o(
              Ci(
                { $input: t, type: t.datePanelType, viewType: t.datePanelType },
                i
              )
            ),
            l = r ? (n.a.isString(r) ? { label: r } : r) : {},
            a = l.extra
              ? n.a.isString(l.extra)
                ? { label: l.extra }
                : l.extra
              : null,
            h = [
              e(
                "span",
                { class: ["vxe-input--date-label", { "is-notice": l.notice }] },
                a && a.label
                  ? [
                      e("span", s),
                      e(
                        "span",
                        {
                          class: [
                            "vxe-input--date-label--extra",
                            a.important ? "is-important" : "",
                            a.className,
                          ],
                          style: a.style,
                        },
                        n.a.toString(a.label)
                      ),
                    ]
                  : s
              ),
            ],
            c = l.label;
          if (c) {
            const t = n.a.toString(c).split(",");
            h.push(
              e(
                "span",
                {
                  class: [
                    "vxe-input--date-festival",
                    l.important ? "is-important" : "",
                    l.className,
                  ],
                  style: l.style,
                },
                [
                  t.length > 1
                    ? e(
                        "span",
                        {
                          class: [
                            "vxe-input--date-festival--overlap",
                            `overlap--${t.length}`,
                          ],
                        },
                        t.map((t) => e("span", t.substring(0, 3)))
                      )
                    : e(
                        "span",
                        { class: "vxe-input--date-festival--label" },
                        t[0].substring(0, 3)
                      ),
                ]
              )
            );
          }
          return h;
        }
        return s;
      }
      function Ii(e, t) {
        const i = e.disabledMethod;
        return (
          i &&
          i({
            $input: e,
            type: e.datePanelType,
            viewType: e.datePanelType,
            date: t.date,
          })
        );
      }
      function Mi(e, t) {
        const i = t.datePanelType,
          s = t.dateValue,
          o = t.datePanelValue,
          r = t.dateHeaders,
          l = t.dayDatas,
          a = "yyyy-MM-dd";
        return [
          e(
            "table",
            {
              class: `vxe-input--date-${i}-view`,
              attrs: { cellspacing: 0, cellpadding: 0, border: 0 },
            },
            [
              e("thead", [
                e(
                  "tr",
                  r.map((t) => {
                    return e("th", t.label);
                  })
                ),
              ]),
              e(
                "tbody",
                l.map((i) => {
                  return e(
                    "tr",
                    i.map((i) => {
                      return e(
                        "td",
                        {
                          class: {
                            "is--prev": i.isPrev,
                            "is--current": i.isCurrent,
                            "is--now": i.isNow,
                            "is--next": i.isNext,
                            "is--disabled": Ii(t, i),
                            "is--selected": n.a.isDateSame(s, i.date, a),
                            "is--hover": n.a.isDateSame(o, i.date, a),
                          },
                          on: {
                            click: () => t.dateSelectEvent(i),
                            mouseenter: () => t.dateMouseenterEvent(i),
                          },
                        },
                        Di(e, t, i, i.label)
                      );
                    })
                  );
                })
              ),
            ]
          ),
        ];
      }
      function Pi(e, t) {
        const i = t.datePanelType,
          s = t.dateValue,
          o = t.datePanelValue,
          r = t.weekHeaders,
          l = t.weekDates,
          a = "yyyyMMdd";
        return [
          e(
            "table",
            {
              class: `vxe-input--date-${i}-view`,
              attrs: { cellspacing: 0, cellpadding: 0, border: 0 },
            },
            [
              e("thead", [
                e(
                  "tr",
                  r.map((t) => {
                    return e("th", t.label);
                  })
                ),
              ]),
              e(
                "tbody",
                l.map((i) => {
                  const r = i.some((e) => n.a.isDateSame(s, e.date, a)),
                    l = i.some((e) => n.a.isDateSame(o, e.date, a));
                  return e(
                    "tr",
                    i.map((i) => {
                      return e(
                        "td",
                        {
                          class: {
                            "is--prev": i.isPrev,
                            "is--current": i.isCurrent,
                            "is--now": i.isNow,
                            "is--next": i.isNext,
                            "is--disabled": Ii(t, i),
                            "is--selected": r,
                            "is--hover": l,
                          },
                          on: {
                            click: () => t.dateSelectEvent(i),
                            mouseenter: () => t.dateMouseenterEvent(i),
                          },
                        },
                        Di(e, t, i, i.label)
                      );
                    })
                  );
                })
              ),
            ]
          ),
        ];
      }
      function Ni(e, t) {
        const i = t.dateValue,
          s = t.datePanelType,
          o = t.monthDatas,
          l = t.datePanelValue,
          a = "yyyyMM";
        return [
          e(
            "table",
            {
              class: `vxe-input--date-${s}-view`,
              attrs: { cellspacing: 0, cellpadding: 0, border: 0 },
            },
            [
              e(
                "tbody",
                o.map((s) => {
                  return e(
                    "tr",
                    s.map((s) => {
                      return e(
                        "td",
                        {
                          class: {
                            "is--prev": s.isPrev,
                            "is--current": s.isCurrent,
                            "is--now": s.isNow,
                            "is--next": s.isNext,
                            "is--disabled": Ii(t, s),
                            "is--selected": n.a.isDateSame(i, s.date, a),
                            "is--hover": n.a.isDateSame(l, s.date, a),
                          },
                          on: {
                            click: () => t.dateSelectEvent(s),
                            mouseenter: () => t.dateMouseenterEvent(s),
                          },
                        },
                        Di(e, t, s, r.i18n(`vxe.input.date.months.m${s.month}`))
                      );
                    })
                  );
                })
              ),
            ]
          ),
        ];
      }
      function Bi(e, t) {
        const i = t.dateValue,
          s = t.datePanelType,
          o = t.quarterDatas,
          l = t.datePanelValue,
          a = "yyyyq";
        return [
          e(
            "table",
            {
              class: `vxe-input--date-${s}-view`,
              attrs: { cellspacing: 0, cellpadding: 0, border: 0 },
            },
            [
              e(
                "tbody",
                o.map((s) => {
                  return e(
                    "tr",
                    s.map((s) => {
                      return e(
                        "td",
                        {
                          class: {
                            "is--prev": s.isPrev,
                            "is--current": s.isCurrent,
                            "is--now": s.isNow,
                            "is--next": s.isNext,
                            "is--disabled": Ii(t, s),
                            "is--selected": n.a.isDateSame(i, s.date, a),
                            "is--hover": n.a.isDateSame(l, s.date, a),
                          },
                          on: {
                            click: () => t.dateSelectEvent(s),
                            mouseenter: () => t.dateMouseenterEvent(s),
                          },
                        },
                        Di(
                          e,
                          t,
                          s,
                          r.i18n(`vxe.input.date.quarters.q${s.quarter}`)
                        )
                      );
                    })
                  );
                })
              ),
            ]
          ),
        ];
      }
      function Fi(e, t) {
        const i = t.dateValue,
          s = t.datePanelType,
          o = t.yearDatas,
          r = t.datePanelValue,
          l = "yyyy";
        return [
          e(
            "table",
            {
              class: `vxe-input--date-${s}-view`,
              attrs: { cellspacing: 0, cellpadding: 0, border: 0 },
            },
            [
              e(
                "tbody",
                o.map((s) => {
                  return e(
                    "tr",
                    s.map((s) => {
                      return e(
                        "td",
                        {
                          class: {
                            "is--disabled": Ii(t, s),
                            "is--current": s.isCurrent,
                            "is--now": s.isNow,
                            "is--selected": n.a.isDateSame(i, s.date, l),
                            "is--hover": n.a.isDateSame(r, s.date, l),
                          },
                          on: {
                            click: () => t.dateSelectEvent(s),
                            mouseenter: () => t.dateMouseenterEvent(s),
                          },
                        },
                        Di(e, t, s, s.year)
                      );
                    })
                  );
                })
              ),
            ]
          ),
        ];
      }
      function Vi(e, t) {
        const i = t.datePanelType;
        switch (i) {
          case "week":
            return Pi(e, t);
          case "month":
            return Ni(e, t);
          case "quarter":
            return Bi(e, t);
          case "year":
            return Fi(e, t);
        }
        return Mi(e, t);
      }
      function zi(e, t) {
        const i = t.datePanelType,
          s = t.selectDatePanelLabel,
          n = t.isDisabledPrevDateBtn,
          o = t.isDisabledNextDateBtn;
        return [
          e("div", { class: "vxe-input--date-picker-header" }, [
            e("div", { class: "vxe-input--date-picker-type-wrapper" }, [
              e(
                "span",
                "year" === i
                  ? { class: "vxe-input--date-picker-label" }
                  : {
                      class: "vxe-input--date-picker-btn",
                      on: { click: t.dateToggleTypeEvent },
                    },
                s
              ),
            ]),
            e("div", { class: "vxe-input--date-picker-btn-wrapper" }, [
              e(
                "span",
                {
                  class: [
                    "vxe-input--date-picker-btn vxe-input--date-picker-prev-btn",
                    { "is--disabled": n },
                  ],
                  on: { click: t.datePrevEvent },
                },
                [e("i", { class: "vxe-icon--caret-left" })]
              ),
              e(
                "span",
                {
                  class:
                    "vxe-input--date-picker-btn vxe-input--date-picker-current-btn",
                  on: { click: t.dateTodayMonthEvent },
                },
                [e("i", { class: "vxe-icon--dot" })]
              ),
              e(
                "span",
                {
                  class: [
                    "vxe-input--date-picker-btn vxe-input--date-picker-next-btn",
                    { "is--disabled": o },
                  ],
                  on: { click: t.dateNextEvent },
                },
                [e("i", { class: "vxe-icon--caret-right" })]
              ),
            ]),
          ]),
          e("div", { class: "vxe-input--date-picker-body" }, Vi(e, t)),
        ];
      }
      function ji(e, t) {
        const i = t.dateTimeLabel,
          s = t.datetimePanelValue,
          n = t.hourList,
          o = t.minuteList,
          l = t.secondList;
        return [
          e("div", { class: "vxe-input--time-picker-header" }, [
            e("span", { class: "vxe-input--time-picker-title" }, i),
            e(
              "button",
              {
                class: "vxe-input--time-picker-confirm",
                attrs: { type: "button" },
                on: { click: t.dateConfirmEvent },
              },
              r.i18n("vxe.button.confirm")
            ),
          ]),
          e("div", { ref: "timeBody", class: "vxe-input--time-picker-body" }, [
            e(
              "ul",
              { class: "vxe-input--time-picker-hour-list" },
              n.map((i, n) => {
                return e(
                  "li",
                  {
                    key: n,
                    class: { "is--selected": s && s.getHours() === i.value },
                    on: { click: (e) => t.dateHourEvent(e, i) },
                  },
                  i.label
                );
              })
            ),
            e(
              "ul",
              { class: "vxe-input--time-picker-minute-list" },
              o.map((i, n) => {
                return e(
                  "li",
                  {
                    key: n,
                    class: { "is--selected": s && s.getMinutes() === i.value },
                    on: { click: (e) => t.dateMinuteEvent(e, i) },
                  },
                  i.label
                );
              })
            ),
            e(
              "ul",
              { class: "vxe-input--time-picker-second-list" },
              l.map((i, n) => {
                return e(
                  "li",
                  {
                    key: n,
                    class: { "is--selected": s && s.getSeconds() === i.value },
                    on: { click: (e) => t.dateSecondEvent(e, i) },
                  },
                  i.label
                );
              })
            ),
          ]),
        ];
      }
      function Hi(e, t) {
        const i = t.type,
          s = t.vSize,
          n = t.isDatePickerType,
          o = t.transfer,
          r = t.animatVisible,
          l = t.visiblePanel,
          a = t.panelPlacement,
          h = t.panelStyle,
          c = [];
        return n
          ? ("datetime" === i
              ? c.push(
                  e("div", { class: "vxe-input--panel-layout-wrapper" }, [
                    e(
                      "div",
                      { class: "vxe-input--panel-left-wrapper" },
                      zi(e, t)
                    ),
                    e(
                      "div",
                      { class: "vxe-input--panel-right-wrapper" },
                      ji(e, t)
                    ),
                  ])
                )
              : "time" === i
              ? c.push(
                  e("div", { class: "vxe-input--panel-wrapper" }, ji(e, t))
                )
              : c.push(
                  e("div", { class: "vxe-input--panel-wrapper" }, zi(e, t))
                ),
            e(
              "div",
              {
                ref: "panel",
                class: [
                  "vxe-table--ignore-clear vxe-input--panel",
                  `type--${i}`,
                  {
                    [`size--${s}`]: s,
                    "is--transfer": o,
                    "animat--leave": r,
                    "animat--enter": l,
                  },
                ],
                attrs: { placement: a },
                style: h,
              },
              c
            ))
          : null;
      }
      function Ui(e, t) {
        return e("span", { class: "vxe-input--number-suffix" }, [
          e(
            "span",
            {
              class: "vxe-input--number-prev is--prev",
              on: {
                mousedown: t.numberMousedownEvent,
                mouseup: t.numberStopDown,
                mouseleave: t.numberStopDown,
              },
            },
            [
              e("i", {
                class: ["vxe-input--number-prev-icon", r.icon.INPUT_PREV_NUM],
              }),
            ]
          ),
          e(
            "span",
            {
              class: "vxe-input--number-next is--next",
              on: {
                mousedown: t.numberMousedownEvent,
                mouseup: t.numberStopDown,
                mouseleave: t.numberStopDown,
              },
            },
            [
              e("i", {
                class: ["vxe-input--number-next-icon", r.icon.INPUT_NEXT_NUM],
              }),
            ]
          ),
        ]);
      }
      function Wi(e, t) {
        return e(
          "span",
          {
            class: "vxe-input--date-picker-suffix",
            on: { click: t.datePickerOpenEvent },
          },
          [
            e("i", {
              class: ["vxe-input--date-picker-icon", r.icon.INPUT_DATE],
            }),
          ]
        );
      }
      function Gi(e, t) {
        return e(
          "span",
          { class: "vxe-input--search-suffix", on: { click: t.searchEvent } },
          [e("i", { class: ["vxe-input--search-icon", r.icon.INPUT_SEARCH] })]
        );
      }
      function Zi(e, t) {
        const i = t.showPwd;
        return e(
          "span",
          {
            class: "vxe-input--password-suffix",
            on: { click: t.passwordToggleEvent },
          },
          [
            e("i", {
              class: [
                "vxe-input--password-icon",
                i ? r.icon.INPUT_SHOW_PWD : r.icon.INPUT_PWD,
              ],
            }),
          ]
        );
      }
      function Yi(e, t) {
        const i = t.$scopedSlots,
          s = t.prefixIcon,
          n = [];
        return (
          i.prefix
            ? n.push(
                e(
                  "span",
                  { class: "vxe-input--prefix-icon" },
                  i.prefix.call(this, {}, e)
                )
              )
            : s && n.push(e("i", { class: ["vxe-input--prefix-icon", s] })),
          n.length
            ? e(
                "span",
                {
                  class: "vxe-input--prefix",
                  on: { click: t.clickPrefixEvent },
                },
                n
              )
            : null
        );
      }
      function qi(e, t) {
        const i = t.$scopedSlots,
          s = t.inputValue,
          o = t.isClearable,
          l = t.disabled,
          a = t.suffixIcon,
          h = [];
        return (
          i.suffix
            ? h.push(
                e(
                  "span",
                  { class: "vxe-input--suffix-icon" },
                  i.suffix.call(this, {}, e)
                )
              )
            : a && h.push(e("i", { class: ["vxe-input--suffix-icon", a] })),
          o &&
            h.push(
              e("i", { class: ["vxe-input--clear-icon", r.icon.INPUT_CLEAR] })
            ),
          h.length
            ? e(
                "span",
                {
                  class: [
                    "vxe-input--suffix",
                    { "is--clear": o && !l && !("" === s || n.a.eqNull(s)) },
                  ],
                  on: { click: t.clickSuffixEvent },
                },
                h
              )
            : null
        );
      }
      function Xi(e, t) {
        const i = t.controls,
          s = t.isPawdType,
          n = t.isNumType,
          o = t.isDatePickerType,
          r = t.isSearch;
        let l;
        return (
          s
            ? (l = Zi(e, t))
            : n
            ? i && (l = Ui(e, t))
            : o
            ? (l = Wi(e, t))
            : r && (l = Gi(e, t)),
          l ? e("span", { class: "vxe-input--extra-suffix" }, [l]) : null
        );
      }
      var Ki = {
          name: "VxeInput",
          mixins: [bt],
          model: { prop: "value", event: "modelValue" },
          props: {
            value: [String, Number, Date],
            immediate: { type: Boolean, default: !0 },
            name: String,
            type: { type: String, default: "text" },
            clearable: { type: Boolean, default: () => r.input.clearable },
            readonly: Boolean,
            disabled: Boolean,
            placeholder: String,
            maxlength: [String, Number],
            autocomplete: { type: String, default: "off" },
            align: String,
            form: String,
            className: String,
            size: { type: String, default: () => r.input.size || r.size },
            min: { type: [String, Number], default: null },
            max: { type: [String, Number], default: null },
            step: [String, Number],
            exponential: { type: Boolean, default: () => r.input.exponential },
            controls: { type: Boolean, default: () => r.input.controls },
            digits: { type: [String, Number], default: () => r.input.digits },
            dateConfig: Object,
            minDate: {
              type: [String, Number, Date],
              default: () => r.input.minDate,
            },
            maxDate: {
              type: [String, Number, Date],
              default: () => r.input.maxDate,
            },
            startWeek: Number,
            startDay: {
              type: [String, Number],
              default: () => r.input.startDay,
            },
            labelFormat: { type: String, default: () => r.input.labelFormat },
            valueFormat: { type: String, default: () => r.input.valueFormat },
            editable: { type: Boolean, default: !0 },
            festivalMethod: {
              type: Function,
              default: () => r.input.festivalMethod,
            },
            disabledMethod: {
              type: Function,
              default: () => r.input.disabledMethod,
            },
            selectDay: { type: Number, default: () => r.input.selectDay },
            prefixIcon: String,
            suffixIcon: String,
            placement: String,
            transfer: { type: Boolean, default: () => r.input.transfer },
          },
          data() {
            return {
              panelIndex: 0,
              showPwd: !1,
              visiblePanel: !1,
              animatVisible: !1,
              panelStyle: null,
              panelPlacement: null,
              isActivated: !1,
              inputValue: this.value,
              datetimePanelValue: null,
              datePanelValue: null,
              datePanelLabel: "",
              datePanelType: "day",
              selectMonth: null,
              currentDate: null,
            };
          },
          computed: {
            isNumType() {
              return ["number", "integer", "float"].indexOf(this.type) > -1;
            },
            isDatePickerType() {
              return (
                this.hasTime ||
                ["date", "week", "month", "quarter", "year"].indexOf(
                  this.type
                ) > -1
              );
            },
            hasTime() {
              const e = this.type;
              return "time" === e || "datetime" === e;
            },
            isPawdType() {
              return "password" === this.type;
            },
            isSearch() {
              return "search" === this.type;
            },
            stepValue() {
              const e = this.type,
                t = this.step;
              return "integer" === e
                ? n.a.toInteger(t) || 1
                : "float" === e
                ? n.a.toNumber(t) || 1 / Math.pow(10, this.digitsValue)
                : n.a.toNumber(t) || 1;
            },
            digitsValue() {
              return n.a.toInteger(this.digits) || 1;
            },
            isClearable() {
              return (
                this.clearable &&
                (this.isPawdType ||
                  this.isNumType ||
                  this.isDatePickerType ||
                  "text" === this.type ||
                  "search" === this.type)
              );
            },
            isDisabledPrevDateBtn() {
              const e = this.selectMonth,
                t = this.dateMinTime;
              return !!e && e <= t;
            },
            isDisabledNextDateBtn() {
              const e = this.selectMonth,
                t = this.dateMaxTime;
              return !!e && e >= t;
            },
            dateMinTime() {
              return this.minDate ? n.a.toStringDate(this.minDate) : null;
            },
            dateMaxTime() {
              return this.maxDate ? n.a.toStringDate(this.maxDate) : null;
            },
            dateValue() {
              const e = this.value,
                t = this.isDatePickerType,
                i = this.type,
                s = this.dateValueFormat;
              let o = null;
              if (e && t) {
                let t;
                (t = "time" === i ? Ri(e) : n.a.toStringDate(e, s)),
                  n.a.isValidDate(t) && (o = t);
              }
              return o;
            },
            dateTimeLabel() {
              const e = this.datetimePanelValue;
              return e ? n.a.toDateString(e, "HH:mm:ss") : "";
            },
            hmsTime() {
              const e = this.dateValue;
              return e && this.hasTime
                ? 1e3 *
                    (3600 * e.getHours() + 60 * e.getMinutes() + e.getSeconds())
                : 0;
            },
            dateLabelFormat() {
              return this.isDatePickerType
                ? this.labelFormat ||
                    r.i18n(`vxe.input.date.labelFormat.${this.type}`)
                : null;
            },
            dateValueFormat() {
              const e = this.type;
              return "time" === e
                ? "HH:mm:ss"
                : this.valueFormat ||
                    ("datetime" === e ? "yyyy-MM-dd HH:mm:ss" : "yyyy-MM-dd");
            },
            selectDatePanelLabel() {
              if (this.isDatePickerType) {
                const e = this.datePanelType,
                  t = this.selectMonth,
                  i = this.yearList;
                let s,
                  n = "";
                return (
                  t && ((n = t.getFullYear()), (s = t.getMonth() + 1)),
                  "quarter" === e
                    ? r.i18n("vxe.input.date.quarterLabel", [n])
                    : "month" === e
                    ? r.i18n("vxe.input.date.monthLabel", [n])
                    : "year" === e
                    ? i.length
                      ? `${i[0].year} - ${i[i.length - 1].year}`
                      : ""
                    : r.i18n("vxe.input.date.dayLabel", [
                        n,
                        s ? r.i18n(`vxe.input.date.m${s}`) : "-",
                      ])
                );
              }
              return "";
            },
            weekDatas() {
              const e = [];
              if (this.isDatePickerType) {
                const t = this.startDay,
                  i = this.startWeek;
                let s = n.a.toNumber(
                  n.a.isNumber(t) || n.a.isString(t) ? t : i
                );
                e.push(s);
                for (let n = 0; n < 6; n++) s >= 6 ? (s = 0) : s++, e.push(s);
              }
              return e;
            },
            dateHeaders() {
              return this.isDatePickerType
                ? this.weekDatas.map((e) => {
                    return {
                      value: e,
                      label: r.i18n(`vxe.input.date.weeks.w${e}`),
                    };
                  })
                : [];
            },
            weekHeaders() {
              return this.isDatePickerType
                ? [{ label: r.i18n("vxe.input.date.weeks.w") }].concat(
                    this.dateHeaders
                  )
                : [];
            },
            yearList() {
              const e = this.selectMonth,
                t = this.currentDate,
                i = [];
              if (e && t) {
                const s = t.getFullYear(),
                  o = new Date(
                    ("" + e.getFullYear()).replace(/\d{1}$/, "0"),
                    0,
                    1
                  );
                for (let e = -10; e < Ti - 10; e++) {
                  const t = n.a.getWhatYear(o, e, "first"),
                    r = t.getFullYear();
                  i.push({ date: t, isCurrent: !0, isNow: s === r, year: r });
                }
              }
              return i;
            },
            yearDatas() {
              return n.a.chunk(this.yearList, 4);
            },
            quarterList() {
              const e = this.selectMonth,
                t = this.currentDate,
                i = [];
              if (e && t) {
                const s = t.getFullYear(),
                  o = Ai(t),
                  r = n.a.getWhatYear(e, 0, "first"),
                  l = r.getFullYear();
                for (let e = -2; e < $i - 2; e++) {
                  const t = n.a.getWhatQuarter(r, e),
                    a = t.getFullYear(),
                    h = Ai(t),
                    c = a < l;
                  i.push({
                    date: t,
                    isPrev: c,
                    isCurrent: a === l,
                    isNow: a === s && h === o,
                    isNext: !c && a > l,
                    quarter: h,
                  });
                }
              }
              return i;
            },
            quarterDatas() {
              return n.a.chunk(this.quarterList, 2);
            },
            monthList() {
              const e = this.selectMonth,
                t = this.currentDate,
                i = [];
              if (e && t) {
                const s = t.getFullYear(),
                  o = t.getMonth(),
                  r = n.a.getWhatYear(e, 0, "first").getFullYear();
                for (let t = -4; t < Oi - 4; t++) {
                  const l = n.a.getWhatYear(e, 0, t),
                    a = l.getFullYear(),
                    h = l.getMonth(),
                    c = a < r;
                  i.push({
                    date: l,
                    isPrev: c,
                    isCurrent: a === r,
                    isNow: a === s && h === o,
                    isNext: !c && a > r,
                    month: h,
                  });
                }
              }
              return i;
            },
            monthDatas() {
              return n.a.chunk(this.monthList, 4);
            },
            dayList() {
              const e = this.weekDatas,
                t = this.selectMonth,
                i = this.currentDate,
                s = this.hmsTime,
                o = [];
              if (t && i) {
                const r = i.getFullYear(),
                  l = i.getMonth(),
                  a = i.getDate(),
                  h = t.getFullYear(),
                  c = t.getMonth(),
                  d = t.getDay(),
                  u = -e.indexOf(d),
                  p = new Date(n.a.getWhatDay(t, u).getTime() + s);
                for (let e = 0; e < 42; e++) {
                  const i = n.a.getWhatDay(p, e),
                    s = i.getFullYear(),
                    d = i.getMonth(),
                    u = i.getDate(),
                    f = i < t;
                  o.push({
                    date: i,
                    isPrev: f,
                    isCurrent: s === h && d === c,
                    isNow: s === r && d === l && u === a,
                    isNext: !f && c !== d,
                    label: u,
                  });
                }
              }
              return o;
            },
            dayDatas() {
              return n.a.chunk(this.dayList, 7);
            },
            weekDates() {
              return this.dayDatas.map((e) => {
                const t = e[0],
                  i = {
                    date: t.date,
                    isWeekNumber: !0,
                    isPrev: !1,
                    isCurrent: !1,
                    isNow: !1,
                    isNext: !1,
                    label: n.a.getYearWeek(t.date),
                  };
                return [i].concat(e);
              });
            },
            hourList() {
              const e = [];
              if (this.hasTime)
                for (let t = 0; t < 24; t++)
                  e.push({ value: t, label: ("" + t).padStart(2, 0) });
              return e;
            },
            minuteList() {
              const e = [];
              if (this.hasTime)
                for (let t = 0; t < 60; t++)
                  e.push({ value: t, label: ("" + t).padStart(2, 0) });
              return e;
            },
            secondList() {
              return this.minuteList;
            },
            inpImmediate() {
              const e = this.type,
                t = this.immediate;
              return (
                t ||
                !(
                  "text" === e ||
                  "number" === e ||
                  "integer" === e ||
                  "float" === e
                )
              );
            },
            inpPlaceholder() {
              const e = this.placeholder;
              return e ? g.getFuncText(e) : "";
            },
            inputType() {
              const e = this.isDatePickerType,
                t = this.isNumType,
                i = this.isPawdType,
                s = this.type,
                n = this.showPwd;
              return e || t || (i && n) || "number" === s ? "text" : s;
            },
            inpMaxlength() {
              const e = this.isNumType,
                t = this.maxlength;
              return e && !n.a.toNumber(t) ? 16 : t;
            },
            inpReadonly() {
              const e = this.type,
                t = this.readonly,
                i = this.editable;
              return t || !i || "week" === e || "quarter" === e;
            },
          },
          watch: {
            value(e) {
              (this.inputValue = e), this.changeValue();
            },
            dateLabelFormat() {
              this.dateParseValue(this.datePanelValue),
                (this.inputValue = this.datePanelLabel);
            },
          },
          created() {
            this.initValue(),
              M.on(this, "mousewheel", this.handleGlobalMousewheelEvent),
              M.on(this, "mousedown", this.handleGlobalMousedownEvent),
              M.on(this, "keydown", this.handleGlobalKeydownEvent),
              M.on(this, "blur", this.handleGlobalBlurEvent);
          },
          mounted() {
            this.dateConfig && g.warn("vxe.error.removeProp", ["date-config"]),
              this.isDatePickerType &&
                this.transfer &&
                document.body.appendChild(this.$refs.panel);
          },
          beforeDestroy() {
            const e = this.$refs.panel;
            e && e.parentNode && e.parentNode.removeChild(e);
          },
          destroyed() {
            this.numberStopDown(),
              M.off(this, "mousewheel"),
              M.off(this, "mousedown"),
              M.off(this, "keydown"),
              M.off(this, "blur");
          },
          render(e) {
            const t = this.name,
              i = this.form,
              s = this.inputType,
              n = this.inpPlaceholder,
              o = this.inpMaxlength,
              r = this.inpReadonly,
              l = this.className,
              a = this.controls,
              h = this.inputValue,
              c = this.isDatePickerType,
              d = this.visiblePanel,
              u = this.isActivated,
              p = this.vSize,
              f = this.type,
              m = this.align,
              g = this.readonly,
              v = this.disabled,
              _ = this.autocomplete,
              b = [],
              y = Yi(e, this),
              x = qi(e, this);
            return (
              y && b.push(y),
              b.push(
                e("input", {
                  ref: "input",
                  class: "vxe-input--inner",
                  domProps: { value: h },
                  attrs: {
                    name: t,
                    form: i,
                    type: s,
                    placeholder: n,
                    maxlength: o,
                    readonly: r,
                    disabled: v,
                    autocomplete: _,
                  },
                  on: {
                    keydown: this.keydownEvent,
                    keyup: this.triggerEvent,
                    wheel: this.wheelEvent,
                    click: this.clickEvent,
                    input: this.inputEvent,
                    change: this.changeEvent,
                    focus: this.focusEvent,
                    blur: this.blurEvent,
                  },
                })
              ),
              x && b.push(x),
              b.push(Xi(e, this)),
              c && b.push(Hi(e, this)),
              e(
                "div",
                {
                  class: [
                    "vxe-input",
                    `type--${f}`,
                    l,
                    {
                      [`size--${p}`]: p,
                      [`is--${m}`]: m,
                      "is--controls": a,
                      "is--prefix": !!y,
                      "is--suffix": !!x,
                      "is--readonly": g,
                      "is--visivle": d,
                      "is--disabled": v,
                      "is--active": u,
                    },
                  ],
                },
                b
              )
            );
          },
          methods: {
            focus() {
              return (
                (this.isActivated = !0),
                this.$refs.input.focus(),
                this.$nextTick()
              );
            },
            blur() {
              return (
                this.$refs.input.blur(),
                (this.isActivated = !1),
                this.$nextTick()
              );
            },
            triggerEvent(e) {
              const t = this.$refs,
                i = this.inputValue;
              this.$emit(e.type, { $panel: t.panel, value: i, $event: e });
            },
            emitModel(e, t) {
              (this.inputValue = e),
                this.$emit("modelValue", e),
                this.$emit("input", { value: e, $event: t }),
                n.a.toString(this.value) !== e &&
                  this.$emit("change", { value: e, $event: t });
            },
            emitInputEvent(e, t) {
              const i = this.inpImmediate,
                s = this.isDatePickerType;
              (this.inputValue = e),
                s ||
                  (i
                    ? this.emitModel(e, t)
                    : this.$emit("input", { value: e, $event: t }));
            },
            inputEvent(e) {
              const t = e.target.value;
              this.emitInputEvent(t, e);
            },
            changeEvent(e) {
              const t = this.inpImmediate;
              t || this.triggerEvent(e);
            },
            focusEvent(e) {
              (this.isActivated = !0), this.triggerEvent(e);
            },
            blurEvent(e) {
              const t = this.inputValue,
                i = this.inpImmediate,
                s = t;
              i || this.emitModel(s, e),
                this.afterCheckValue(),
                this.visiblePanel || (this.isActivated = !1),
                this.$emit("blur", { value: s, $event: e });
            },
            keydownEvent(e) {
              const t = this.exponential,
                i = this.controls,
                s = this.isNumType;
              if (s) {
                const s = e.ctrlKey,
                  n = e.shiftKey,
                  o = e.altKey,
                  r = e.keyCode;
                s ||
                  n ||
                  o ||
                  !(
                    32 === r ||
                    ((!t || 69 !== r) && r >= 65 && r <= 90) ||
                    (r >= 186 && r <= 188) ||
                    r >= 191
                  ) ||
                  e.preventDefault(),
                  i && this.numberKeydownEvent(e);
              }
              this.triggerEvent(e);
            },
            wheelEvent(e) {
              if (this.isNumType && this.controls && this.isActivated) {
                const t = e.deltaY;
                t > 0
                  ? this.numberNextEvent(e)
                  : t < 0 && this.numberPrevEvent(e),
                  e.preventDefault();
              }
              this.triggerEvent(e);
            },
            clickEvent(e) {
              const t = this.isDatePickerType;
              t && this.datePickerOpenEvent(e), this.triggerEvent(e);
            },
            clickPrefixEvent(e) {
              const t = this.$refs,
                i = this.disabled,
                s = this.inputValue;
              i ||
                this.$emit("prefix-click", {
                  $panel: t.panel,
                  value: s,
                  $event: e,
                });
            },
            clickSuffixEvent(e) {
              const t = this.$refs,
                i = this.disabled,
                s = this.inputValue;
              i ||
                (A.hasClass(e.currentTarget, "is--clear")
                  ? (this.emitModel("", e), this.clearValueEvent(e, ""))
                  : this.$emit("suffix-click", {
                      $panel: t.panel,
                      value: s,
                      $event: e,
                    }));
            },
            clearValueEvent(e, t) {
              const i = this.$refs,
                s = this.type,
                n = this.isNumType;
              this.isDatePickerType && this.hidePanel(),
                (n || ["text", "search", "password"].indexOf(s) > -1) &&
                  this.focus(),
                this.$emit("clear", { $panel: i.panel, value: t, $event: e });
            },
            initValue() {
              const e = this.type,
                t = this.isDatePickerType,
                i = this.inputValue,
                s = this.digitsValue;
              if (t) this.changeValue();
              else if ("float" === e && i) {
                const e = n.a.toFixed(n.a.floor(i, s), s);
                i !== e && this.emitModel(e, { type: "init" });
              }
            },
            changeValue() {
              this.isDatePickerType &&
                (this.dateParseValue(this.inputValue),
                (this.inputValue = this.datePanelLabel));
            },
            afterCheckValue() {
              const e = this.type,
                t = this.exponential,
                i = this.inpReadonly,
                s = this.inputValue,
                o = this.isDatePickerType,
                r = this.isNumType,
                l = this.datetimePanelValue,
                a = this.dateLabelFormat,
                h = this.min,
                c = this.max;
              if (!i)
                if (r) {
                  if (s) {
                    let i =
                      "integer" === e ? n.a.toInteger(s) : n.a.toNumber(s);
                    if (
                      (this.vaildMinNum(i)
                        ? this.vaildMaxNum(i) || (i = c)
                        : (i = h),
                      t)
                    ) {
                      const e = n.a.toString(s).toLowerCase();
                      e === n.a.toNumber(i).toExponential() && (i = e);
                    }
                    this.emitModel(Li(this, i), { type: "check" });
                  }
                } else if (o)
                  if (s)
                    if ("week" === e || "quarter" === e);
                    else {
                      let t;
                      if (
                        ((t = "time" === e ? Ri(s) : n.a.toStringDate(s, a)),
                        n.a.isValidDate(t))
                      )
                        if ("time" === e)
                          (t = Ri(t)),
                            s !== t && this.emitModel(t, { type: "check" }),
                            (this.inputValue = t);
                        else {
                          let i = !1;
                          "datetime" === e
                            ? (s === n.a.toDateString(this.dateValue, a) &&
                                s === n.a.toDateString(t, a)) ||
                              ((i = !0),
                              l.setHours(t.getHours()),
                              l.setMinutes(t.getMinutes()),
                              l.setSeconds(t.getSeconds()))
                            : (i = !0),
                            (this.inputValue = n.a.toDateString(t, a)),
                            i && this.dateChange(t);
                        }
                      else this.dateRevert();
                    }
                  else this.emitModel("", { type: "check" });
            },
            passwordToggleEvent(e) {
              const t = this.disabled,
                i = this.readonly,
                s = this.showPwd;
              t || i || (this.showPwd = !s),
                this.$emit("toggle-visible", {
                  visible: this.showPwd,
                  $event: e,
                });
            },
            searchEvent(e) {
              this.$emit("search-click", { $event: e });
            },
            vaildMinNum(e) {
              return null === this.min || e >= n.a.toNumber(this.min);
            },
            vaildMaxNum(e) {
              return null === this.max || e <= n.a.toNumber(this.max);
            },
            numberStopDown() {
              clearTimeout(this.downbumTimeout);
            },
            numberDownPrevEvent(e) {
              this.downbumTimeout = setTimeout(() => {
                this.numberPrevEvent(e), this.numberDownPrevEvent(e);
              }, 60);
            },
            numberDownNextEvent(e) {
              this.downbumTimeout = setTimeout(() => {
                this.numberNextEvent(e), this.numberDownNextEvent(e);
              }, 60);
            },
            numberKeydownEvent(e) {
              const t = e.keyCode,
                i = 38 === t,
                s = 40 === t;
              (i || s) &&
                (e.preventDefault(),
                i ? this.numberPrevEvent(e) : this.numberNextEvent(e));
            },
            numberMousedownEvent(e) {
              if ((this.numberStopDown(), 0 === e.button)) {
                const t = A.hasClass(e.currentTarget, "is--prev");
                t ? this.numberPrevEvent(e) : this.numberNextEvent(e),
                  (this.downbumTimeout = setTimeout(() => {
                    t
                      ? this.numberDownPrevEvent(e)
                      : this.numberDownNextEvent(e);
                  }, 500));
              }
            },
            numberPrevEvent(e) {
              const t = this.disabled,
                i = this.readonly;
              clearTimeout(this.downbumTimeout),
                t || i || this.numberChange(!0, e),
                this.$emit("prev-number", { $event: e });
            },
            numberNextEvent(e) {
              const t = this.disabled,
                i = this.readonly;
              clearTimeout(this.downbumTimeout),
                t || i || this.numberChange(!1, e),
                this.$emit("next-number", { $event: e });
            },
            numberChange(e, t) {
              const i = this.min,
                s = this.max,
                o = this.type,
                r = this.inputValue,
                l = this.stepValue,
                a = "integer" === o ? n.a.toInteger(r) : n.a.toNumber(r),
                h = e ? n.a.add(a, l) : n.a.subtract(a, l);
              let c;
              (c = this.vaildMinNum(h) ? (this.vaildMaxNum(h) ? h : s) : i),
                this.emitInputEvent(Li(this, c), t);
            },
            datePickerOpenEvent(e) {
              const t = this.readonly;
              t || (e.preventDefault(), this.showPanel());
            },
            dateMonthHandle(e, t) {
              this.selectMonth = n.a.getWhatMonth(e, t, "first");
            },
            dateNowHandle() {
              const e = n.a.getWhatDay(Date.now(), 0, "first");
              (this.currentDate = e), this.dateMonthHandle(e, 0);
            },
            dateToggleTypeEvent() {
              let e = this.datePanelType;
              (e = "month" === e || "quarter" === e ? "year" : "month"),
                (this.datePanelType = e);
            },
            datePrevEvent(e) {
              const t = this.isDisabledPrevDateBtn,
                i = this.type,
                s = this.datePanelType;
              t ||
                ((this.selectMonth =
                  "year" === i
                    ? n.a.getWhatYear(this.selectMonth, -Ti, "first")
                    : "month" === i || "quarter" === i
                    ? "year" === s
                      ? n.a.getWhatYear(this.selectMonth, -Ti, "first")
                      : n.a.getWhatYear(this.selectMonth, -1, "first")
                    : "year" === s
                    ? n.a.getWhatYear(this.selectMonth, -Ti, "first")
                    : "month" === s
                    ? n.a.getWhatYear(this.selectMonth, -1, "first")
                    : n.a.getWhatMonth(this.selectMonth, -1, "first")),
                this.$emit("date-prev", { type: i, $event: e }));
            },
            dateTodayMonthEvent(e) {
              this.dateNowHandle(),
                this.dateChange(this.currentDate),
                this.hidePanel(),
                this.$emit("date-today", { type: this.type, $event: e });
            },
            dateNextEvent(e) {
              const t = this.isDisabledNextDateBtn,
                i = this.type,
                s = this.datePanelType;
              t ||
                ((this.selectMonth =
                  "year" === i
                    ? n.a.getWhatYear(this.selectMonth, Ti, "first")
                    : "month" === i || "quarter" === i
                    ? "year" === s
                      ? n.a.getWhatYear(this.selectMonth, Ti, "first")
                      : n.a.getWhatYear(this.selectMonth, 1, "first")
                    : "year" === s
                    ? n.a.getWhatYear(this.selectMonth, Ti, "first")
                    : "month" === s
                    ? n.a.getWhatYear(this.selectMonth, 1, "first")
                    : n.a.getWhatMonth(this.selectMonth, 1, "first")),
                this.$emit("date-next", { type: i, $event: e }));
            },
            dateSelectEvent(e) {
              Ii(this, e) || this.dateSelectItem(e.date);
            },
            dateSelectItem(e) {
              const t = this.type,
                i = this.datePanelType,
                s = "week" === t;
              "month" === t
                ? "year" === i
                  ? ((this.datePanelType = "month"), this.dateCheckMonth(e))
                  : (this.dateChange(e), this.hidePanel())
                : "year" === t
                ? (this.hidePanel(), this.dateChange(e))
                : "quarter" === t
                ? "year" === i
                  ? ((this.datePanelType = "quarter"), this.dateCheckMonth(e))
                  : (this.dateChange(e), this.hidePanel())
                : "month" === i
                ? ((this.datePanelType = "week" === t ? t : "day"),
                  this.dateCheckMonth(e))
                : "year" === i
                ? ((this.datePanelType = "month"), this.dateCheckMonth(e))
                : (this.dateChange(e), this.hidePanel()),
                s && this.changeValue();
            },
            dateMouseenterEvent(e) {
              if (!Ii(this, e)) {
                const t = this.datePanelType;
                "month" === t
                  ? this.dateMoveMonth(e.date)
                  : "quarter" === t
                  ? this.dateMoveQuarter(e.date)
                  : "year" === t
                  ? this.dateMoveYear(e.date)
                  : this.dateMoveDay(e.date);
              }
            },
            dateHourEvent(e, t) {
              this.datetimePanelValue.setHours(t.value),
                this.dateTimeChangeEvent(e);
            },
            dateConfirmEvent() {
              this.dateChange(this.dateValue || this.currentDate),
                this.hidePanel();
            },
            dateMinuteEvent(e, t) {
              this.datetimePanelValue.setMinutes(t.value),
                this.dateTimeChangeEvent(e);
            },
            dateSecondEvent(e, t) {
              this.datetimePanelValue.setSeconds(t.value),
                this.dateTimeChangeEvent(e);
            },
            dateTimeChangeEvent(e) {
              (this.datetimePanelValue = new Date(
                this.datetimePanelValue.getTime()
              )),
                this.updateTimePos(e.currentTarget);
            },
            updateTimePos(e) {
              if (e) {
                const t = e.offsetHeight;
                e.parentNode.scrollTop = e.offsetTop - 4 * t;
              }
            },
            dateMoveDay(e) {
              Ii(this, { date: e }) ||
                (this.dayList.some((t) =>
                  n.a.isDateSame(t.date, e, "yyyyMMdd")
                ) || this.dateCheckMonth(e),
                this.dateParseValue(e));
            },
            dateMoveMonth(e) {
              Ii(this, { date: e }) ||
                (this.monthList.some((t) =>
                  n.a.isDateSame(t.date, e, "yyyyMM")
                ) || this.dateCheckMonth(e),
                this.dateParseValue(e));
            },
            dateMoveQuarter(e) {
              Ii(this, { date: e }) ||
                (this.quarterList.some((t) =>
                  n.a.isDateSame(t.date, e, "yyyyq")
                ) || this.dateCheckMonth(e),
                this.dateParseValue(e));
            },
            dateMoveYear(e) {
              Ii(this, { date: e }) ||
                (this.yearList.some((t) => n.a.isDateSame(t.date, e, "yyyy")) ||
                  this.dateCheckMonth(e),
                this.dateParseValue(e));
            },
            dateParseValue(e) {
              const t = this.type,
                i = this.dateLabelFormat,
                s = this.valueFormat;
              let o = null,
                r = "";
              e && (o = "time" === t ? Ri(e) : n.a.toStringDate(e, s)),
                n.a.isValidDate(o) ? (r = n.a.toDateString(o, i)) : (o = null),
                (this.datePanelValue = o),
                (this.datePanelLabel = r);
            },
            dateOffsetEvent(e) {
              const t = this.isActivated,
                i = this.datePanelValue,
                s = this.datePanelType;
              if (t) {
                e.preventDefault();
                const t = e.keyCode,
                  o = 37 === t,
                  r = 38 === t,
                  l = 39 === t,
                  a = 40 === t;
                if ("year" === s) {
                  let e = n.a.getWhatYear(i || Date.now(), 0, "first");
                  o
                    ? (e = n.a.getWhatYear(e, -1))
                    : r
                    ? (e = n.a.getWhatYear(e, -4))
                    : l
                    ? (e = n.a.getWhatYear(e, 1))
                    : a && (e = n.a.getWhatYear(e, 4)),
                    this.dateMoveYear(e);
                } else if ("quarter" === s) {
                  let e = n.a.getWhatQuarter(i || Date.now(), 0, "first");
                  o
                    ? (e = n.a.getWhatQuarter(e, -1))
                    : r
                    ? (e = n.a.getWhatQuarter(e, -2))
                    : l
                    ? (e = n.a.getWhatQuarter(e, 1))
                    : a && (e = n.a.getWhatQuarter(e, 2)),
                    this.dateMoveQuarter(e);
                } else if ("month" === s) {
                  let e = n.a.getWhatMonth(i || Date.now(), 0, "first");
                  o
                    ? (e = n.a.getWhatMonth(e, -1))
                    : r
                    ? (e = n.a.getWhatMonth(e, -4))
                    : l
                    ? (e = n.a.getWhatMonth(e, 1))
                    : a && (e = n.a.getWhatMonth(e, 4)),
                    this.dateMoveMonth(e);
                } else {
                  let e = i || n.a.getWhatDay(Date.now(), 0, "first");
                  o
                    ? (e = n.a.getWhatDay(e, -1))
                    : r
                    ? (e = n.a.getWhatWeek(e, -1))
                    : l
                    ? (e = n.a.getWhatDay(e, 1))
                    : a && (e = n.a.getWhatWeek(e, 1)),
                    this.dateMoveDay(e);
                }
              }
            },
            datePgOffsetEvent(e) {
              const t = this.isActivated;
              if (t) {
                const t = 33 === e.keyCode;
                e.preventDefault(),
                  t ? this.datePrevEvent(e) : this.dateNextEvent(e);
              }
            },
            dateChange(e) {
              const t = this.value,
                i = this.datetimePanelValue,
                s = this.dateValueFormat;
              if ("week" === this.type) {
                const t = n.a.toNumber(this.selectDay);
                e = n.a.getWhatWeek(e, 0, t);
              } else
                this.hasTime &&
                  (e.setHours(i.getHours()),
                  e.setMinutes(i.getMinutes()),
                  e.setSeconds(i.getSeconds()));
              const o = n.a.toDateString(e, s);
              this.dateCheckMonth(e),
                n.a.isEqual(t, o) || this.emitModel(o, { type: "update" });
            },
            dateCheckMonth(e) {
              const t = n.a.getWhatMonth(e, 0, "first");
              n.a.isEqual(t, this.selectMonth) || (this.selectMonth = t);
            },
            dateOpenPanel() {
              const e = this.type,
                t = this.dateValue;
              ["year", "quarter", "month", "week"].indexOf(e) > -1
                ? (this.datePanelType = e)
                : (this.datePanelType = "day"),
                (this.currentDate = n.a.getWhatDay(Date.now(), 0, "first")),
                t
                  ? (this.dateMonthHandle(t, 0), this.dateParseValue(t))
                  : this.dateNowHandle(),
                this.hasTime &&
                  ((this.datetimePanelValue =
                    this.datePanelValue ||
                    n.a.getWhatDay(Date.now(), 0, "first")),
                  this.$nextTick(() => {
                    n.a.arrayEach(
                      this.$refs.timeBody.querySelectorAll("li.is--selected"),
                      this.updateTimePos
                    );
                  }));
            },
            dateRevert() {
              this.inputValue = this.datePanelLabel;
            },
            updateZindex() {
              this.panelIndex < g.getLastZIndex() &&
                (this.panelIndex = g.nextZIndex());
            },
            showPanel() {
              const e = this.disabled,
                t = this.visiblePanel,
                i = this.isDatePickerType;
              e ||
                t ||
                (clearTimeout(this.hidePanelTimeout),
                (this.isActivated = !0),
                (this.animatVisible = !0),
                i && this.dateOpenPanel(),
                setTimeout(() => {
                  this.visiblePanel = !0;
                }, 10),
                this.updateZindex(),
                this.updatePlacement());
            },
            hidePanel() {
              (this.visiblePanel = !1),
                (this.hidePanelTimeout = setTimeout(() => {
                  this.animatVisible = !1;
                }, 350));
            },
            updatePlacement() {
              return this.$nextTick().then(() => {
                const e = this.$refs,
                  t = this.transfer,
                  i = this.placement,
                  s = this.panelIndex,
                  n = e.input,
                  o = e.panel;
                if (n && o) {
                  const e = n.offsetHeight,
                    r = n.offsetWidth,
                    l = o.offsetHeight,
                    a = o.offsetWidth,
                    h = 5,
                    c = { zIndex: s },
                    d = A.getAbsolutePos(n),
                    u = d.boundingTop,
                    p = d.boundingLeft,
                    f = d.visibleHeight,
                    m = d.visibleWidth;
                  let g = "bottom";
                  if (t) {
                    let t = p,
                      s = u + e;
                    "top" === i
                      ? ((g = "top"), (s = u - l))
                      : i ||
                        (s + l + h > f && ((g = "top"), (s = u - l)),
                        s < h && ((g = "bottom"), (s = u + e))),
                      t + a + h > m && (t -= t + a + h - m),
                      t < h && (t = h),
                      Object.assign(c, {
                        left: `${t}px`,
                        top: `${s}px`,
                        minWidth: `${r}px`,
                      });
                  } else
                    "top" === i
                      ? ((g = "top"), (c.bottom = `${e}px`))
                      : i ||
                        (u + e + l > f &&
                          u - e - l > h &&
                          ((g = "top"), (c.bottom = `${e}px`)));
                  return (
                    (this.panelStyle = c),
                    (this.panelPlacement = g),
                    this.$nextTick()
                  );
                }
              });
            },
            handleGlobalMousedownEvent(e) {
              const t = this.$refs,
                i = this.$el,
                s = this.disabled,
                n = this.visiblePanel,
                o = this.isActivated;
              !s &&
                o &&
                ((this.isActivated =
                  A.getEventTargetNode(e, i).flag ||
                  A.getEventTargetNode(e, t.panel).flag),
                this.isActivated ||
                  (this.isDatePickerType
                    ? n && (this.hidePanel(), this.afterCheckValue())
                    : this.afterCheckValue()));
            },
            handleGlobalKeydownEvent(e) {
              const t = this.isDatePickerType,
                i = this.visiblePanel,
                s = this.clearable,
                n = this.disabled;
              if (!n) {
                const n = e.keyCode,
                  o = 9 === n,
                  r = 46 === n,
                  l = 27 === n,
                  a = 13 === n,
                  h = 37 === n,
                  c = 38 === n,
                  d = 39 === n,
                  u = 40 === n,
                  p = 33 === n,
                  f = 34 === n,
                  m = h || c || d || u;
                let g = this.isActivated;
                o
                  ? (g && this.afterCheckValue(),
                    (g = !1),
                    (this.isActivated = g))
                  : m
                  ? t &&
                    g &&
                    (i
                      ? this.dateOffsetEvent(e)
                      : (c || u) && this.datePickerOpenEvent(e))
                  : a
                  ? t &&
                    (i
                      ? this.datePanelValue
                        ? this.dateSelectItem(this.datePanelValue)
                        : this.hidePanel()
                      : g && this.datePickerOpenEvent(e))
                  : (p || f) && t && g && this.datePgOffsetEvent(e),
                  o || l
                    ? i && this.hidePanel()
                    : r && s && g && this.clearValueEvent(e, null);
              }
            },
            handleGlobalMousewheelEvent(e) {
              const t = this.$refs,
                i = this.disabled,
                s = this.visiblePanel;
              i ||
                (s &&
                  (A.getEventTargetNode(e, t.panel).flag
                    ? this.updatePlacement()
                    : (this.hidePanel(), this.afterCheckValue())));
            },
            handleGlobalBlurEvent() {
              const e = this.isActivated,
                t = this.visiblePanel;
              t
                ? (this.hidePanel(), this.afterCheckValue())
                : e && this.afterCheckValue();
            },
          },
        },
        Ji = {
          name: "VxeCheckbox",
          mixins: [bt],
          props: {
            value: Boolean,
            label: [String, Number],
            indeterminate: Boolean,
            title: [String, Number],
            content: [String, Number],
            disabled: Boolean,
            size: { type: String, default: () => r.checkbox.size || r.size },
          },
          inject: { $xecheckboxgroup: { default: null } },
          computed: {
            isGroup() {
              return this.$xecheckboxgroup;
            },
            isDisabled() {
              return (
                this.disabled ||
                (this.isGroup && this.$xecheckboxgroup.disabled)
              );
            },
          },
          render(e) {
            const t = this.$scopedSlots,
              i = this.$xecheckboxgroup,
              s = this.isGroup,
              o = this.isDisabled,
              r = this.title,
              l = this.vSize,
              a = this.indeterminate,
              h = this.value,
              c = this.label,
              d = this.content,
              u = {};
            return (
              r && (u.title = r),
              e(
                "label",
                {
                  class: [
                    "vxe-checkbox",
                    {
                      [`size--${l}`]: l,
                      "is--indeterminate": a,
                      "is--disabled": o,
                    },
                  ],
                  attrs: u,
                },
                [
                  e("input", {
                    class: "vxe-checkbox--input",
                    attrs: { type: "checkbox", disabled: o },
                    domProps: { checked: s ? n.a.includes(i.value, c) : h },
                    on: { change: this.changeEvent },
                  }),
                  e("span", { class: "vxe-checkbox--icon" }),
                  e(
                    "span",
                    { class: "vxe-checkbox--label" },
                    t.default ? t.default.call(this, {}) : [g.getFuncText(d)]
                  ),
                ]
              )
            );
          },
          methods: {
            changeEvent(e) {
              const t = this.$xecheckboxgroup,
                i = this.isGroup,
                s = this.isDisabled,
                n = this.label;
              if (!s) {
                const s = e.target.checked,
                  o = { checked: s, label: n, $event: e };
                i
                  ? t.handleChecked(o)
                  : (this.$emit("input", s), this.$emit("change", o));
              }
            },
          },
        };
      function Qi(e) {
        return !1 !== e.visible;
      }
      function es() {
        return n.a.uniqueId("opt_");
      }
      function ts(e) {
        return e.optionId || "_XID";
      }
      function is(e, t) {
        const i = t[ts(e)];
        return i ? encodeURIComponent(i) : "";
      }
      function ss(e, t, i) {
        const s = e.isGroup,
          n = e.visibleOptionList,
          o = e.visibleGroupList,
          r = e.valueField,
          l = e.groupOptionsField;
        let a, h, c, d;
        if (s)
          for (let u = 0; u < o.length; u++) {
            const e = o[u],
              s = e[l],
              n = e.disabled;
            if (s)
              for (let o = 0; o < s.length; o++) {
                const e = s[o],
                  l = Qi(e),
                  u = n || e.disabled;
                if ((a || u || (a = e), d && l && !u && ((c = e), !i)))
                  return { offsetOption: c };
                if (t === e[r]) {
                  if (((d = e), i)) return { offsetOption: h };
                } else l && !u && (h = e);
              }
          }
        else
          for (let u = 0; u < n.length; u++) {
            const e = n[u],
              s = e.disabled;
            if ((a || s || (a = e), d && !s && ((c = e), !i)))
              return { offsetOption: c };
            if (t === e[r]) {
              if (((d = e), i)) return { offsetOption: h };
            } else s || (h = e);
          }
        return { firstOption: a };
      }
      function ns(e, t) {
        const i = e.isGroup,
          s = e.fullOptionList,
          n = e.fullGroupList,
          o = e.valueField;
        if (i)
          for (let r = 0; r < n.length; r++) {
            const e = n[r];
            if (e.options)
              for (let i = 0; i < e.options.length; i++) {
                const s = e.options[i];
                if (t === s[o]) return s;
              }
          }
        return s.find((e) => t === e[o]);
      }
      function os(e, t) {
        const i = ns(e, t);
        return n.a.toString(i ? i[e.labelField] : t);
      }
      function rs(e, t, i, s) {
        const n = t.isGroup,
          o = t.labelField,
          r = t.valueField,
          l = t.optionKey,
          a = t.value,
          h = t.multiple,
          c = t.currentValue;
        return i.map((i, d) => {
          const u = !n || Qi(i),
            p = (s && s.disabled) || i.disabled,
            f = i[r],
            m = is(t, i);
          return u
            ? e(
                "div",
                {
                  key: l ? m : d,
                  class: [
                    "vxe-select-option",
                    i.className,
                    {
                      "is--disabled": p,
                      "is--selected": h ? a && a.indexOf(f) > -1 : a === f,
                      "is--hover": c === f,
                    },
                  ],
                  attrs: { optid: m },
                  on: {
                    mousedown: t.mousedownOptionEvent,
                    click: (e) => {
                      p || t.changeOptionEvent(e, f);
                    },
                    mouseenter: () => {
                      p || t.setCurrentOption(i);
                    },
                  },
                },
                g.formatText(g.getFuncText(i[o]))
              )
            : null;
        });
      }
      function ls(e, t) {
        const i = t.optionKey,
          s = t.visibleGroupList,
          n = t.groupLabelField,
          o = t.groupOptionsField;
        return s.map((s, r) => {
          const l = is(t, s),
            a = s.disabled;
          return e(
            "div",
            {
              key: i ? l : r,
              class: ["vxe-optgroup", s.className, { "is--disabled": a }],
              attrs: { optid: l },
            },
            [
              e("div", { class: "vxe-optgroup--title" }, g.getFuncText(s[n])),
              e("div", { class: "vxe-optgroup--wrapper" }, rs(e, t, s[o], s)),
            ]
          );
        });
      }
      function as(e, t) {
        const i = t.isGroup,
          s = t.visibleGroupList,
          n = t.visibleOptionList;
        if (i) {
          if (s.length) return ls(e, t);
        } else if (n.length) return rs(e, t, n);
        return [
          e(
            "div",
            { class: "vxe-select--empty-placeholder" },
            t.emptyText || r.i18n("vxe.select.emptyText")
          ),
        ];
      }
      var hs = {
        name: "VxeSelect",
        mixins: [bt],
        props: {
          value: null,
          clearable: Boolean,
          placeholder: String,
          loading: Boolean,
          disabled: Boolean,
          multiple: Boolean,
          multiCharOverflow: {
            type: [Number, String],
            default: () => r.select.multiCharOverflow,
          },
          prefixIcon: String,
          placement: String,
          options: Array,
          optionProps: Object,
          optionGroups: Array,
          optionGroupProps: Object,
          className: [String, Function],
          size: { type: String, default: () => r.select.size || r.size },
          emptyText: String,
          optionId: { type: String, default: () => r.select.optionId },
          optionKey: Boolean,
          transfer: { type: Boolean, default: () => r.select.transfer },
        },
        components: { VxeInput: Ki },
        provide() {
          return { $xeselect: this };
        },
        data() {
          return {
            inited: !1,
            collectOption: [],
            fullGroupList: [],
            fullOptionList: [],
            visibleGroupList: [],
            visibleOptionList: [],
            panelIndex: 0,
            panelStyle: null,
            panelPlacement: null,
            currentValue: null,
            visiblePanel: !1,
            animatVisible: !1,
            isActivated: !1,
          };
        },
        computed: {
          propsOpts() {
            return this.optionProps || {};
          },
          groupPropsOpts() {
            return this.optionGroupProps || {};
          },
          labelField() {
            return this.propsOpts.label || "label";
          },
          valueField() {
            return this.propsOpts.value || "value";
          },
          groupLabelField() {
            return this.groupPropsOpts.label || "label";
          },
          groupOptionsField() {
            return this.groupPropsOpts.options || "options";
          },
          isGroup() {
            return this.fullGroupList.some(
              (e) => e.options && e.options.length
            );
          },
          multiMaxCharNum() {
            return n.a.toNumber(this.multiCharOverflow);
          },
          selectLabel() {
            const e = this.value,
              t = this.multiple,
              i = this.multiMaxCharNum;
            return e && t
              ? e
                  .map((e) => {
                    const t = os(this, e);
                    return i > 0 && t.length > i
                      ? `${t.substring(0, i)}...`
                      : t;
                  })
                  .join(", ")
              : os(this, e);
          },
        },
        watch: {
          collectOption(e) {
            e.some((e) => e.options && e.options.length)
              ? ((this.fullOptionList = []), (this.fullGroupList = e))
              : ((this.fullGroupList = []), (this.fullOptionList = e)),
              this.updateCache();
          },
          options(e) {
            (this.fullGroupList = []),
              (this.fullOptionList = e),
              this.updateCache();
          },
          optionGroups(e) {
            (this.fullOptionList = []),
              (this.fullGroupList = e),
              this.updateCache();
          },
        },
        created() {
          const e = this.options,
            t = this.optionGroups;
          t ? (this.fullGroupList = t) : e && (this.fullOptionList = e),
            this.updateCache(),
            M.on(this, "mousewheel", this.handleGlobalMousewheelEvent),
            M.on(this, "mousedown", this.handleGlobalMousedownEvent),
            M.on(this, "keydown", this.handleGlobalKeydownEvent),
            M.on(this, "blur", this.handleGlobalBlurEvent);
        },
        beforeDestroy() {
          const e = this.$refs.panel;
          e && e.parentNode && e.parentNode.removeChild(e);
        },
        destroyed() {
          M.off(this, "mousewheel"),
            M.off(this, "mousedown"),
            M.off(this, "keydown"),
            M.off(this, "blur");
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.vSize,
            s = this.className,
            o = this.inited,
            l = this.isActivated,
            a = this.loading,
            h = this.disabled,
            c = this.visiblePanel,
            d = t.prefix;
          return e(
            "div",
            {
              class: [
                "vxe-select",
                s ? (n.a.isFunction(s) ? s({ $select: this }) : s) : "",
                {
                  [`size--${i}`]: i,
                  "is--visivle": c,
                  "is--disabled": h,
                  "is--active": l,
                },
              ],
            },
            [
              e(
                "div",
                { class: "vxe-select-slots", ref: "hideOption" },
                this.$slots.default
              ),
              e("vxe-input", {
                ref: "input",
                props: {
                  clearable: this.clearable,
                  placeholder: this.placeholder,
                  readonly: !0,
                  disabled: h,
                  type: "text",
                  prefixIcon: this.prefixIcon,
                  suffixIcon: a
                    ? r.icon.SELECT_LOADED
                    : c
                    ? r.icon.SELECT_OPEN
                    : r.icon.SELECT_CLOSE,
                  value: this.selectLabel,
                },
                on: {
                  clear: this.clearEvent,
                  click: this.togglePanelEvent,
                  focus: this.focusEvent,
                  blur: this.blurEvent,
                  "suffix-click": this.togglePanelEvent,
                },
                scopedSlots: d ? { prefix: () => d({}) } : {},
              }),
              e(
                "div",
                {
                  ref: "panel",
                  class: [
                    "vxe-table--ignore-clear vxe-select--panel",
                    {
                      [`size--${i}`]: i,
                      "is--transfer": this.transfer,
                      "animat--leave": !a && this.animatVisible,
                      "animat--enter": !a && c,
                    },
                  ],
                  attrs: { placement: this.panelPlacement },
                  style: this.panelStyle,
                },
                o
                  ? [
                      e(
                        "div",
                        {
                          ref: "optWrapper",
                          class: "vxe-select-option--wrapper",
                        },
                        as(e, this)
                      ),
                    ]
                  : null
              ),
            ]
          );
        },
        methods: {
          updateCache() {
            const e = this.fullOptionList,
              t = this.fullGroupList,
              i = this.groupOptionsField,
              s = ts(this),
              n = (e) => {
                is(this, e) || (e[s] = es());
              };
            t.length
              ? t.forEach((e) => {
                  n(e), e[i] && e[i].forEach(n);
                })
              : e.length && e.forEach(n),
              this.refreshOption();
          },
          refreshOption() {
            const e = this.isGroup,
              t = this.fullOptionList,
              i = this.fullGroupList;
            return (
              e
                ? (this.visibleGroupList = i.filter(Qi))
                : (this.visibleOptionList = t.filter(Qi)),
              this.$nextTick()
            );
          },
          setCurrentOption(e) {
            e && (this.currentValue = e[this.valueField]);
          },
          scrollToOption(e, t) {
            return this.$nextTick().then(() => {
              if (e) {
                const i = this.$refs,
                  s = i.optWrapper,
                  n = i.panel.querySelector(`[optid='${is(this, e)}']`);
                if (s && n) {
                  const e = s.offsetHeight,
                    i = 5;
                  t
                    ? n.offsetTop + n.offsetHeight - s.scrollTop > e &&
                      (s.scrollTop = n.offsetTop + n.offsetHeight - e)
                    : (n.offsetTop + i < s.scrollTop ||
                        n.offsetTop + i > s.scrollTop + s.clientHeight) &&
                      (s.scrollTop = n.offsetTop - i);
                }
              }
            });
          },
          clearEvent(e, t) {
            this.clearValueEvent(t, null), this.hideOptionPanel();
          },
          clearValueEvent(e, t) {
            this.changeEvent(e, t),
              this.$emit("clear", { value: t, $event: e });
          },
          changeEvent(e, t) {
            t !== this.value &&
              (this.$emit("input", t),
              this.$emit("change", { value: t, $event: e }));
          },
          mousedownOptionEvent(e) {
            const t = 0 === e.button;
            t && e.stopPropagation();
          },
          changeOptionEvent(e, t) {
            const i = this.value,
              s = this.multiple;
            if (s) {
              let s;
              (s = i
                ? -1 === i.indexOf(t)
                  ? i.concat([t])
                  : i.filter((e) => e !== t)
                : [t]),
                this.changeEvent(e, s);
            } else this.changeEvent(e, t), this.hideOptionPanel();
          },
          handleGlobalMousewheelEvent(e) {
            const t = this.$refs,
              i = this.disabled,
              s = this.visiblePanel;
            i ||
              (s &&
                (A.getEventTargetNode(e, t.panel).flag
                  ? this.updatePlacement()
                  : this.hideOptionPanel()));
          },
          handleGlobalMousedownEvent(e) {
            const t = this.$refs,
              i = this.$el,
              s = this.disabled,
              n = this.visiblePanel;
            s ||
              ((this.isActivated =
                A.getEventTargetNode(e, i).flag ||
                A.getEventTargetNode(e, t.panel).flag),
              n && !this.isActivated && this.hideOptionPanel());
          },
          handleGlobalKeydownEvent(e) {
            const t = this.visiblePanel,
              i = this.currentValue,
              s = this.clearable,
              n = this.disabled;
            if (!n) {
              const n = e.keyCode,
                o = 9 === n,
                r = 13 === n,
                l = 27 === n,
                a = 38 === n,
                h = 40 === n,
                c = 46 === n,
                d = 32 === n;
              if ((o && (this.isActivated = !1), t))
                if (l || o) this.hideOptionPanel();
                else if (r)
                  e.preventDefault(),
                    e.stopPropagation(),
                    this.changeOptionEvent(e, i);
                else if (a || h) {
                  e.preventDefault();
                  let t = ss(this, i, a),
                    s = t.firstOption,
                    n = t.offsetOption;
                  n || ns(this, i) || (n = s),
                    this.setCurrentOption(n),
                    this.scrollToOption(n, h);
                } else d && e.preventDefault();
              else
                (a || h || r || d) &&
                  this.isActivated &&
                  (e.preventDefault(), this.showOptionPanel());
              this.isActivated && c && s && this.clearValueEvent(e, null);
            }
          },
          handleGlobalBlurEvent() {
            this.hideOptionPanel();
          },
          updateZindex() {
            this.panelIndex < g.getLastZIndex() &&
              (this.panelIndex = g.nextZIndex());
          },
          focusEvent() {
            this.disabled || (this.isActivated = !0);
          },
          blurEvent() {
            this.isActivated = !1;
          },
          isPanelVisible() {
            return this.visiblePanel;
          },
          togglePanel() {
            this.visiblePanel ? this.hideOptionPanel() : this.showOptionPanel(),
              this.$nextTick();
          },
          hidePanel() {
            this.visiblePanel && this.hideOptionPanel(), this.$nextTick();
          },
          showPanel() {
            this.visiblePanel || this.showOptionPanel(), this.$nextTick();
          },
          togglePanelEvent(e) {
            const t = e.$event;
            t.preventDefault(),
              this.visiblePanel
                ? this.hideOptionPanel()
                : this.showOptionPanel();
          },
          showOptionPanel() {
            const e = this.loading,
              t = this.disabled;
            e ||
              t ||
              (clearTimeout(this.hidePanelTimeout),
              this.inited ||
                ((this.inited = !0),
                this.transfer && document.body.appendChild(this.$refs.panel)),
              (this.isActivated = !0),
              (this.animatVisible = !0),
              setTimeout(() => {
                const e = this.value,
                  t = this.multiple,
                  i = ns(this, t && e ? e[0] : e);
                (this.visiblePanel = !0),
                  i && (this.setCurrentOption(i), this.scrollToOption(i));
              }, 10),
              this.updateZindex(),
              this.updatePlacement());
          },
          hideOptionPanel() {
            (this.visiblePanel = !1),
              (this.hidePanelTimeout = setTimeout(() => {
                this.animatVisible = !1;
              }, 350));
          },
          updatePlacement() {
            return this.$nextTick().then(() => {
              const e = this.$refs,
                t = this.transfer,
                i = this.placement,
                s = this.panelIndex,
                n = e.input.$el,
                o = e.panel;
              if (o && n) {
                const e = n.offsetHeight,
                  r = n.offsetWidth,
                  l = o.offsetHeight,
                  a = o.offsetWidth,
                  h = 5,
                  c = { zIndex: s },
                  d = A.getAbsolutePos(n),
                  u = d.boundingTop,
                  p = d.boundingLeft,
                  f = d.visibleHeight,
                  m = d.visibleWidth;
                let g = "bottom";
                if (t) {
                  let t = p,
                    s = u + e;
                  "top" === i
                    ? ((g = "top"), (s = u - l))
                    : i ||
                      (s + l + h > f && ((g = "top"), (s = u - l)),
                      s < h && ((g = "bottom"), (s = u + e))),
                    t + a + h > m && (t -= t + a + h - m),
                    t < h && (t = h),
                    Object.assign(c, {
                      left: `${t}px`,
                      top: `${s}px`,
                      minWidth: `${r}px`,
                    });
                } else
                  "top" === i
                    ? ((g = "top"), (c.bottom = `${e}px`))
                    : i ||
                      (u + e + l > f &&
                        u - e - l > h &&
                        ((g = "top"), (c.bottom = `${e}px`)));
                return (
                  (this.panelStyle = c),
                  (this.panelPlacement = g),
                  this.$nextTick()
                );
              }
            });
          },
          focus() {
            return (
              (this.isActivated = !0),
              this.$refs.input.focus(),
              this.$nextTick()
            );
          },
          blur() {
            return (
              this.hideOptionPanel(), this.$refs.input.blur(), this.$nextTick()
            );
          },
        },
      };
      class cs {
        constructor(e, t) {
          Object.assign(this, {
            value: t.value,
            label: t.label,
            visible: t.visible,
            className: t.className,
            disabled: t.disabled,
          });
        }
        update(e, t) {
          this[e] = t;
        }
      }
      function ds(e) {
        return e instanceof cs;
      }
      function us(e, t, i) {
        return ds(t) ? t : new cs(e, t, i);
      }
      function ps(e, t) {
        return us(e, t);
      }
      function fs(e) {
        const t = e.$xeselect,
          i = e.optionConfig,
          s = n.a.findTree(t.collectOption, (e) => e === i);
        s && s.items.splice(s.index, 1);
      }
      function ms(e) {
        const t = e.$el,
          i = e.$xeselect,
          s = e.$xeoptgroup,
          n = e.optionConfig,
          o = s ? s.optionConfig : null;
        (n.slots = e.$scopedSlots),
          o
            ? (o.options || (o.options = []),
              o.options.splice([].indexOf.call(s.$el.children, t), 0, n))
            : i.collectOption.splice(
                [].indexOf.call(i.$refs.hideOption.children, t),
                0,
                n
              );
      }
      const gs = {
          value: null,
          label: { type: [String, Number, Boolean], default: "" },
          visible: { type: Boolean, default: null },
          className: [String, Function],
          disabled: Boolean,
        },
        vs = {};
      Object.keys(gs).forEach((e) => {
        vs[e] = function (t) {
          this.optionConfig.update(e, t);
        };
      });
      var _s = {
          name: "VxeOption",
          props: gs,
          inject: {
            $xeselect: { default: null },
            $xeoptgroup: { default: null },
          },
          watch: vs,
          mounted() {
            ms(this);
          },
          created() {
            this.optionConfig = ps(this.$xeselect, this);
          },
          destroyed() {
            fs(this);
          },
          render(e) {
            return e("div");
          },
        },
        bs = {
          name: "VxeExportPanel",
          props: { defaultOptions: Object, storeData: Object },
          components: {
            VxeModal: Ei,
            VxeInput: Ki,
            VxeCheckbox: Ji,
            VxeSelect: hs,
            VxeOption: _s,
          },
          data() {
            return { isAll: !1, isIndeterminate: !1, loading: !1 };
          },
          computed: {
            vSize() {
              return this.size || this.$parent.size || this.$parent.vSize;
            },
            checkedAll() {
              return this.storeData.columns.every((e) => e.checked);
            },
            showSheet() {
              return (
                ["html", "xml", "xlsx", "pdf"].indexOf(
                  this.defaultOptions.type
                ) > -1
              );
            },
            supportMerge() {
              const e = this.storeData,
                t = this.defaultOptions;
              return (
                !t.original &&
                "current" === t.mode &&
                (e.isPrint || ["html", "xlsx"].indexOf(t.type) > -1)
              );
            },
            supportStyle() {
              const e = this.defaultOptions;
              return !e.original && ["xlsx"].indexOf(e.type) > -1;
            },
          },
          render(e) {
            const t = this._e,
              i = this.checkedAll,
              s = this.isAll,
              o = this.isIndeterminate,
              l = this.showSheet,
              a = this.supportMerge,
              h = this.supportStyle,
              c = this.defaultOptions,
              d = this.storeData,
              u = d.hasTree,
              p = d.hasMerge,
              f = d.isPrint,
              m = d.hasColgroup,
              v = c.isHeader,
              _ = [];
            return (
              n.a.eachTree(d.columns, (t) => {
                const i = g.formatText(t.getTitle(), 1),
                  s = t.children && t.children.length;
                _.push(
                  e(
                    "li",
                    {
                      class: [
                        "vxe-export--panel-column-option",
                        `level--${t.level}`,
                        {
                          "is--group": s,
                          "is--checked": t.checked,
                          "is--indeterminate": t.halfChecked,
                          "is--disabled": t.disabled,
                        },
                      ],
                      attrs: { title: i },
                      on: {
                        click: () => {
                          t.disabled || this.changeOption(t);
                        },
                      },
                    },
                    [
                      e("span", {
                        class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e("span", {
                        class:
                          "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e("span", {
                        class:
                          "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e("span", { class: "vxe-checkbox--label" }, i),
                    ]
                  )
                );
              }),
              e(
                "vxe-modal",
                {
                  res: "modal",
                  props: {
                    value: d.visible,
                    title: r.i18n(
                      f ? "vxe.export.printTitle" : "vxe.export.expTitle"
                    ),
                    width: 660,
                    mask: !0,
                    lockView: !0,
                    showFooter: !1,
                    escClosable: !0,
                    maskClosable: !0,
                    loading: this.loading,
                  },
                  on: {
                    input(e) {
                      d.visible = e;
                    },
                    show: this.showEvent,
                  },
                },
                [
                  e("div", { class: "vxe-export--panel" }, [
                    e(
                      "table",
                      { attrs: { cellspacing: 0, cellpadding: 0, border: 0 } },
                      [
                        e("tbody", [
                          [
                            f
                              ? t()
                              : e("tr", [
                                  e("td", r.i18n("vxe.export.expName")),
                                  e("td", [
                                    e("vxe-input", {
                                      ref: "filename",
                                      props: {
                                        value: c.filename,
                                        type: "text",
                                        clearable: !0,
                                        placeholder: r.i18n(
                                          "vxe.export.expNamePlaceholder"
                                        ),
                                      },
                                      on: {
                                        modelValue(e) {
                                          c.filename = e;
                                        },
                                      },
                                    }),
                                  ]),
                                ]),
                            f
                              ? t()
                              : e("tr", [
                                  e("td", r.i18n("vxe.export.expType")),
                                  e("td", [
                                    e(
                                      "vxe-select",
                                      {
                                        props: { value: c.type },
                                        on: {
                                          input(e) {
                                            c.type = e;
                                          },
                                        },
                                      },
                                      d.typeList.map((t) => {
                                        return e("vxe-option", {
                                          props: {
                                            value: t.value,
                                            label: r.i18n(t.label),
                                          },
                                        });
                                      })
                                    ),
                                  ]),
                                ]),
                            f || l
                              ? e("tr", [
                                  e("td", r.i18n("vxe.export.expSheetName")),
                                  e("td", [
                                    e("vxe-input", {
                                      ref: "sheetname",
                                      props: {
                                        value: c.sheetName,
                                        type: "text",
                                        clearable: !0,
                                        placeholder: r.i18n(
                                          "vxe.export.expSheetNamePlaceholder"
                                        ),
                                      },
                                      on: {
                                        modelValue(e) {
                                          c.sheetName = e;
                                        },
                                      },
                                    }),
                                  ]),
                                ])
                              : t(),
                            e("tr", [
                              e("td", r.i18n("vxe.export.expMode")),
                              e("td", [
                                e(
                                  "vxe-select",
                                  {
                                    props: { value: c.mode },
                                    on: {
                                      input(e) {
                                        c.mode = e;
                                      },
                                    },
                                  },
                                  d.modeList.map((t) => {
                                    return e("vxe-option", {
                                      props: {
                                        value: t.value,
                                        label: r.i18n(t.label),
                                      },
                                    });
                                  })
                                ),
                              ]),
                            ]),
                            e("tr", [
                              e("td", [r.i18n("vxe.export.expColumn")]),
                              e("td", [
                                e(
                                  "div",
                                  { class: "vxe-export--panel-column" },
                                  [
                                    e(
                                      "ul",
                                      {
                                        class:
                                          "vxe-export--panel-column-header",
                                      },
                                      [
                                        e(
                                          "li",
                                          {
                                            class: [
                                              "vxe-export--panel-column-option",
                                              {
                                                "is--checked": s,
                                                "is--indeterminate": o,
                                              },
                                            ],
                                            attrs: {
                                              title:
                                                r.i18n("vxe.table.allTitle"),
                                            },
                                            on: { click: this.allColumnEvent },
                                          },
                                          [
                                            e("span", {
                                              class:
                                                "vxe-checkbox--icon vxe-checkbox--checked-icon",
                                              style: {
                                                "--checkedColor": $_theme.color,
                                              },
                                            }),
                                            e("span", {
                                              class:
                                                "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                                              style: {
                                                "--checkedColor": $_theme.color,
                                              },
                                            }),
                                            e("span", {
                                              class:
                                                "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                                              style: {
                                                "--checkedColor": $_theme.color,
                                              },
                                            }),
                                            e(
                                              "span",
                                              { class: "vxe-checkbox--label" },
                                              r.i18n(
                                                "vxe.export.expCurrentColumn"
                                              )
                                            ),
                                          ]
                                        ),
                                      ]
                                    ),
                                    e(
                                      "ul",
                                      {
                                        class: "vxe-export--panel-column-body",
                                      },
                                      _
                                    ),
                                  ]
                                ),
                              ]),
                            ]),
                            e("tr", [
                              e("td", r.i18n("vxe.export.expOpts")),
                              e("td", [
                                e(
                                  "div",
                                  { class: "vxe-export--panel-option-row" },
                                  [
                                    e("vxe-checkbox", {
                                      props: {
                                        value: v,
                                        title: r.i18n(
                                          "vxe.export.expHeaderTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptHeader"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.isHeader = e;
                                        },
                                      },
                                    }),
                                    e("vxe-checkbox", {
                                      props: {
                                        value: c.isFooter,
                                        disabled: !d.hasFooter,
                                        title: r.i18n(
                                          "vxe.export.expFooterTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptFooter"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.isFooter = e;
                                        },
                                      },
                                    }),
                                    e("vxe-checkbox", {
                                      props: {
                                        value: c.original,
                                        title: r.i18n(
                                          "vxe.export.expOriginalTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptOriginal"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.original = e;
                                        },
                                      },
                                    }),
                                  ]
                                ),
                                e(
                                  "div",
                                  { class: "vxe-export--panel-option-row" },
                                  [
                                    e("vxe-checkbox", {
                                      props: {
                                        value: !!(v && m && a) && c.isColgroup,
                                        disabled: !v || !m || !a,
                                        title: r.i18n(
                                          "vxe.export.expColgroupTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptColgroup"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.isColgroup = e;
                                        },
                                      },
                                    }),
                                    e("vxe-checkbox", {
                                      props: {
                                        value: !!(p && a && i) && c.isMerge,
                                        disabled: !p || !a || !i,
                                        title: r.i18n(
                                          "vxe.export.expMergeTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptMerge"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.isMerge = e;
                                        },
                                      },
                                    }),
                                    f
                                      ? t()
                                      : e("vxe-checkbox", {
                                          props: {
                                            value: !!h && c.useStyle,
                                            disabled: !h,
                                            title: r.i18n(
                                              "vxe.export.expUseStyleTitle"
                                            ),
                                            content: r.i18n(
                                              "vxe.export.expOptUseStyle"
                                            ),
                                          },
                                          on: {
                                            input(e) {
                                              c.useStyle = e;
                                            },
                                          },
                                        }),
                                    e("vxe-checkbox", {
                                      props: {
                                        value: !!u && c.isAllExpand,
                                        disabled: !u,
                                        title: r.i18n(
                                          "vxe.export.expAllExpandTitle"
                                        ),
                                        content: r.i18n(
                                          "vxe.export.expOptAllExpand"
                                        ),
                                      },
                                      on: {
                                        input(e) {
                                          c.isAllExpand = e;
                                        },
                                      },
                                    }),
                                  ]
                                ),
                              ]),
                            ]),
                          ],
                        ]),
                      ]
                    ),
                    e("div", { class: "vxe-export--panel-btns" }, [
                      e("vxe-button", {
                        props: { content: r.i18n("vxe.export.expCancel") },
                        on: { click: this.cancelEvent },
                      }),
                      e("vxe-button", {
                        ref: "confirmBtn",
                        props: {
                          status: "primary",
                          content: r.i18n(
                            f ? "vxe.export.expPrint" : "vxe.export.expConfirm"
                          ),
                        },
                        on: { click: this.confirmEvent },
                      }),
                    ]),
                  ]),
                ]
              )
            );
          },
          methods: {
            changeOption(e) {
              const t = !e.checked;
              n.a.eachTree([e], (e) => {
                (e.checked = t), (e.halfChecked = !1);
              }),
                this.handleOptionCheck(e),
                this.checkStatus();
            },
            handleOptionCheck(e) {
              const t = n.a.findTree(this.storeData.columns, (t) => t === e);
              if (t && t.parent) {
                const e = t.parent;
                e.children &&
                  e.children.length &&
                  ((e.checked = e.children.every((e) => e.checked)),
                  (e.halfChecked =
                    !e.checked &&
                    e.children.some((e) => e.checked || e.halfChecked)),
                  this.handleOptionCheck(e));
              }
            },
            checkStatus() {
              const e = this.storeData.columns;
              (this.isAll = e.every((e) => e.disabled || e.checked)),
                (this.isIndeterminate =
                  !this.isAll &&
                  e.some((e) => !e.disabled && (e.checked || e.halfChecked)));
            },
            allColumnEvent() {
              const e = !this.isAll;
              n.a.eachTree(this.storeData.columns, (t) => {
                t.disabled || ((t.checked = e), (t.halfChecked = !1));
              }),
                (this.isAll = e),
                this.checkStatus();
            },
            showEvent() {
              this.$nextTick(() => {
                const e = this.$refs,
                  t = e.filename || e.sheetname || e.confirmBtn;
                t && t.focus();
              }),
                this.checkStatus();
            },
            getExportOption() {
              const e = this.checkedAll,
                t = this.storeData,
                i = this.defaultOptions,
                s = this.supportMerge,
                o = t.hasMerge,
                r = t.columns,
                l = n.a.searchTree(r, (e) => e.checked, {
                  children: "children",
                  mapChildren: "childNodes",
                  original: !0,
                });
              return Object.assign({}, i, {
                columns: l,
                isMerge: !!(o && s && e) && i.isMerge,
              });
            },
            cancelEvent() {
              this.storeData.visible = !1;
            },
            confirmEvent(e) {
              this.storeData.isPrint ? this.printEvent(e) : this.exportEvent(e);
            },
            printEvent() {
              const e = this.$parent;
              (this.storeData.visible = !1),
                e.print(Object.assign({}, e.printOpts, this.getExportOption()));
            },
            exportEvent() {
              const e = this.$parent;
              (this.loading = !0),
                e
                  .exportData(
                    Object.assign({}, e.exportOpts, this.getExportOption())
                  )
                  .then(() => {
                    (this.loading = !1), (this.storeData.visible = !1);
                  })
                  .catch(() => {
                    this.loading = !1;
                  });
            },
          },
        },
        ys = {
          name: "VxeRadio",
          mixins: [bt],
          props: {
            value: [String, Number, Boolean],
            label: [String, Number, Boolean],
            title: [String, Number],
            content: [String, Number],
            disabled: Boolean,
            name: String,
            size: { type: String, default: () => r.radio.size || r.size },
          },
          inject: { $xeradiogroup: { default: null } },
          computed: {
            isDisabled() {
              const e = this.$xeradiogroup;
              return this.disabled || (e && e.disabled);
            },
          },
          render(e) {
            const t = this.$scopedSlots,
              i = this.$xeradiogroup,
              s = this.isDisabled,
              n = this.title,
              o = this.vSize,
              r = this.value,
              l = this.label,
              a = this.name,
              h = this.content,
              c = {};
            return (
              n && (c.title = n),
              e(
                "label",
                {
                  class: [
                    "vxe-radio",
                    { [`size--${o}`]: o, "is--disabled": s },
                  ],
                  attrs: c,
                },
                [
                  e("input", {
                    class: "vxe-radio--input",
                    attrs: { type: "radio", name: i ? i.name : a, disabled: s },
                    domProps: { checked: i ? i.value === l : r === l },
                    on: {
                      change: (e) => {
                        if (!s) {
                          const t = { label: l, $event: e };
                          i
                            ? i.handleChecked(t)
                            : (this.$emit("input", l), this.$emit("change", t));
                        }
                      },
                    },
                  }),
                  e("span", { class: "vxe-radio--icon" }),
                  e(
                    "span",
                    { class: "vxe-radio--label" },
                    t.default ? t.default.call(this, {}) : [g.getFuncText(h)]
                  ),
                ]
              )
            );
          },
          methods: {
            changeEvent(e) {
              const t = this.$xeradiogroup,
                i = this.isDisabled,
                s = this.label;
              if (!i) {
                const i = { label: s, $event: e };
                t
                  ? t.handleChecked(i)
                  : (this.$emit("input", s), this.$emit("change", i));
              }
            },
          },
        },
        xs = {
          name: "VxeImportPanel",
          props: { defaultOptions: Object, storeData: Object },
          components: { VxeModal: Ei, VxeRadio: ys },
          data() {
            return { loading: !1 };
          },
          computed: {
            vSize() {
              return this.size || this.$parent.size || this.$parent.vSize;
            },
            selectName() {
              return `${this.storeData.filename}.${this.storeData.type}`;
            },
            hasFile() {
              return this.storeData.file && this.storeData.type;
            },
            parseTypeLabel() {
              const e = this.storeData,
                t = e.type,
                i = e.typeList;
              if (t) {
                const e = n.a.find(i, (e) => t === e.value);
                return e ? r.i18n(e.label) : "*.*";
              }
              return `*.${i.map((e) => e.value).join(", *.")}`;
            },
          },
          render(e) {
            const t = this.hasFile,
              i = this.parseTypeLabel,
              s = this.defaultOptions,
              n = this.storeData,
              o = this.selectName;
            return e(
              "vxe-modal",
              {
                res: "modal",
                props: {
                  value: n.visible,
                  title: r.i18n("vxe.import.impTitle"),
                  width: 440,
                  mask: !0,
                  lockView: !0,
                  showFooter: !1,
                  escClosable: !0,
                  maskClosable: !0,
                  loading: this.loading,
                },
                on: {
                  input(e) {
                    n.visible = e;
                  },
                  show: this.showEvent,
                },
              },
              [
                e("div", { class: "vxe-export--panel" }, [
                  e(
                    "table",
                    { attrs: { cellspacing: 0, cellpadding: 0, border: 0 } },
                    [
                      e("tbody", [
                        e("tr", [
                          e("td", r.i18n("vxe.import.impFile")),
                          e("td", [
                            t
                              ? e(
                                  "div",
                                  {
                                    class: "vxe-import-selected--file",
                                    attrs: { title: o },
                                  },
                                  [
                                    e("span", o),
                                    e("i", {
                                      class: r.icon.INPUT_CLEAR,
                                      on: { click: this.clearFileEvent },
                                    }),
                                  ]
                                )
                              : e(
                                  "button",
                                  {
                                    ref: "fileBtn",
                                    class: "vxe-import-select--file",
                                    attrs: { type: "button" },
                                    on: { click: this.selectFileEvent },
                                  },
                                  r.i18n("vxe.import.impSelect")
                                ),
                          ]),
                        ]),
                        e("tr", [
                          e("td", r.i18n("vxe.import.impType")),
                          e("td", i),
                        ]),
                        e("tr", [
                          e("td", r.i18n("vxe.import.impOpts")),
                          e("td", [
                            e(
                              "vxe-radio-group",
                              {
                                props: { value: s.mode },
                                on: {
                                  input(e) {
                                    s.mode = e;
                                  },
                                },
                              },
                              n.modeList.map((t) => {
                                return e(
                                  "vxe-radio",
                                  { props: { label: t.value } },
                                  r.i18n(t.label)
                                );
                              })
                            ),
                          ]),
                        ]),
                      ]),
                    ]
                  ),
                  e("div", { class: "vxe-export--panel-btns" }, [
                    e(
                      "vxe-button",
                      { on: { click: this.cancelEvent } },
                      r.i18n("vxe.import.impCancel")
                    ),
                    e(
                      "vxe-button",
                      {
                        props: { status: "primary", disabled: !t },
                        on: { click: this.importEvent },
                      },
                      r.i18n("vxe.import.impConfirm")
                    ),
                  ]),
                ]),
              ]
            );
          },
          methods: {
            clearFileEvent() {
              Object.assign(this.storeData, {
                filename: "",
                sheetName: "",
                type: "",
              });
            },
            selectFileEvent() {
              const e = this.$parent;
              e.readFile(this.defaultOptions)
                .then((e) => {
                  const t = e.file;
                  Object.assign(this.storeData, g.parseFile(t), { file: t });
                })
                .catch((e) => e);
            },
            showEvent() {
              this.$nextTick(() => {
                const e = this.$refs,
                  t = e.fileBtn;
                t && t.focus();
              });
            },
            cancelEvent() {
              this.storeData.visible = !1;
            },
            importEvent() {
              const e = this.$parent;
              (this.loading = !0),
                e
                  .importByFile(
                    this.storeData.file,
                    Object.assign({}, e.importOpts, this.defaultOptions)
                  )
                  .then(() => {
                    (this.loading = !1), (this.storeData.visible = !1);
                  })
                  .catch(() => {
                    this.loading = !1;
                  });
            },
          },
        };
      const ws = g.formatText,
        Ss =
          'body{margin:0;color:#333333;font-size:14px;font-family:"Microsoft YaHei",微软雅黑,"MicrosoftJhengHei",华文细黑,STHeiti,MingLiu}body *{-webkit-box-sizing:border-box;box-sizing:border-box}.vxe-table{border-collapse:collapse;text-align:left;border-spacing:0}.vxe-table:not(.is--print){table-layout:fixed}.vxe-table,.vxe-table th,.vxe-table td,.vxe-table td{border-color:#D0D0D0;border-style:solid;border-width:0}.vxe-table.is--print{width:100%}.border--default,.border--full,.border--outer{border-top-width:1px}.border--default,.border--full,.border--outer{border-left-width:1px}.border--outer,.border--default th,.border--default td,.border--full th,.border--full td,.border--outer th,.border--inner th,.border--inner td{border-bottom-width:1px}.border--default,.border--outer,.border--full th,.border--full td{border-right-width:1px}.border--default th,.border--full th,.border--outer th{background-color:#f8f8f9}.vxe-table td>div,.vxe-table th>div{padding:.5em .4em}.col--center{text-align:center}.col--right{text-align:right}.vxe-table:not(.is--print) .col--ellipsis>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.vxe-table--tree-node{text-align:left}.vxe-table--tree-node-wrapper{position:relative}.vxe-table--tree-icon-wrapper{position:absolute;top:50%;width:1em;height:1em;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.vxe-table--tree-unfold-icon,.vxe-table--tree-fold-icon{position:absolute;width:0;height:0;border-style:solid;border-width:.5em;border-right-color:transparent;border-bottom-color:transparent}.vxe-table--tree-unfold-icon{left:.3em;top:0;border-left-color:#939599;border-top-color:transparent}.vxe-table--tree-fold-icon{left:0;top:.3em;border-left-color:transparent;border-top-color:#939599}.vxe-table--tree-cell{display:block;padding-left:1.5em}.vxe-table input[type="checkbox"]{margin:0}.vxe-table input[type="checkbox"],.vxe-table input[type="radio"],.vxe-table input[type="checkbox"]+span,.vxe-table input[type="radio"]+span{vertical-align:middle;padding-left:0.4em}';
      let Es, ks, Cs, Ts;
      const Os = "\ufeff",
        $s = "\r\n";
      function Rs() {
        const e = document.createElement("iframe");
        return (e.className = "vxe-table--print-frame"), e;
      }
      function As(e, t) {
        return window.Blob ? new Blob([e], { type: `text/${t.type}` }) : null;
      }
      function Ls(e, t) {
        const i = e.treeOpts;
        return t[i.children] && t[i.children].length > 0;
      }
      function Ds(e, t, i, s, n) {
        const o = e.seqOpts,
          r = o.seqMethod || s.seqMethod;
        return r
          ? r({ row: t, rowIndex: i, column: s, columnIndex: n })
          : o.startIndex + i + 1;
      }
      function Is(e) {
        return (
          e.property ||
          ["seq", "index", "checkbox", "radio"].indexOf(e.type) > -1
        );
      }
      function Ms(e) {
        return !0 === e ? "full" : e || "default";
      }
      function Ps(e) {
        return n.a.isBoolean(e) ? (e ? "TRUE" : "FALSE") : e;
      }
      function Ns(e, t, i, s) {
        const o = t.isAllExpand,
          r = e.treeConfig,
          l = e.treeOpts,
          a = e.radioOpts,
          h = e.checkboxOpts;
        if ((Es || (Es = document.createElement("div")), r)) {
          const r = [];
          return (
            n.a.eachTree(
              s,
              (s, l, c, d, u, p) => {
                const f = s._row || s,
                  m = u && u._row ? u._row : u;
                if (o || !m || e.isTreeExpandByRow(m)) {
                  const s = Ls(e, f),
                    o = {
                      _row: f,
                      _level: p.length - 1,
                      _hasChild: s,
                      _expand: s && e.isTreeExpandByRow(f),
                    };
                  i.forEach((i, s) => {
                    let r = "";
                    const c = i.editRender || i.cellRender;
                    let d = i.exportMethod;
                    if (!d && c && c.name) {
                      const e = Ke.renderer.get(c.name);
                      e && (d = e.exportMethod || e.cellExportMethod);
                    }
                    if (d) r = d({ $table: e, row: f, column: i, options: t });
                    else
                      switch (i.type) {
                        case "index":
                        case "seq":
                          r = Ds(e, f, l, i, s);
                          break;
                        case "checkbox":
                          (r = Ps(e.isCheckedByCheckboxRow(f))),
                            (o._checkboxLabel = h.labelField
                              ? n.a.get(f, h.labelField)
                              : ""),
                            (o._checkboxDisabled =
                              h.checkMethod && !h.checkMethod({ row: f }));
                          break;
                        case "radio":
                          (r = Ps(e.isCheckedByRadioRow(f))),
                            (o._radioLabel = a.labelField
                              ? n.a.get(f, a.labelField)
                              : ""),
                            (o._radioDisabled =
                              a.checkMethod && !a.checkMethod({ row: f }));
                          break;
                        default:
                          if (t.original) r = g.getCellValue(f, i);
                          else if (
                            ((r = e.getCellLabel(f, i)), "html" === i.type)
                          )
                            (Es.innerHTML = r), (r = Es.innerText.trim());
                          else {
                            const t = e.getCell(f, i);
                            t && (r = t.innerText.trim());
                          }
                      }
                    o[i.id] = n.a.toString(r);
                  }),
                    r.push(Object.assign(o, f));
                }
              },
              l
            ),
            r
          );
        }
        return s.map((s, o) => {
          const r = { _row: s };
          return (
            i.forEach((i, l) => {
              let c = "";
              const d = i.editRender || i.cellRender;
              let u = i.exportMethod;
              if (!u && d && d.name) {
                const e = Ke.renderer.get(d.name);
                e && (u = e.exportMethod || e.cellExportMethod);
              }
              if (u) c = u({ $table: e, row: s, column: i, options: t });
              else
                switch (i.type) {
                  case "index":
                  case "seq":
                    c = Ds(e, s, o, i, l);
                    break;
                  case "checkbox":
                    (c = Ps(e.isCheckedByCheckboxRow(s))),
                      (r._checkboxLabel = h.labelField
                        ? n.a.get(s, h.labelField)
                        : ""),
                      (r._checkboxDisabled =
                        h.checkMethod && !h.checkMethod({ row: s }));
                    break;
                  case "radio":
                    (c = Ps(e.isCheckedByRadioRow(s))),
                      (r._radioLabel = a.labelField
                        ? n.a.get(s, a.labelField)
                        : ""),
                      (r._radioDisabled =
                        a.checkMethod && !a.checkMethod({ row: s }));
                    break;
                  default:
                    if (t.original) c = g.getCellValue(s, i);
                    else if (((c = e.getCellLabel(s, i)), "html" === i.type))
                      (Es.innerHTML = c), (c = Es.innerText.trim());
                    else {
                      const t = e.getCell(s, i);
                      t && (c = t.innerText.trim());
                    }
                }
              r[i.id] = n.a.toString(c);
            }),
            r
          );
        });
      }
      function Bs(e, t) {
        const i = t.columns,
          s = t.dataFilterMethod;
        let n = t.data;
        return (
          s && (n = n.filter((e, t) => s({ row: e, $rowIndex: t }))),
          Ns(e, t, i, n)
        );
      }
      function Fs(e) {
        return "TRUE" === e || "true" === e || !0 === e;
      }
      function Vs(e, t) {
        return (e.original ? t.property : t.getTitle()) || "";
      }
      function zs(e, t, i, s) {
        const o = s.editRender || s.cellRender;
        let r = s.footerExportMethod;
        if (!r && o && o.name) {
          const e = Ke.renderer.get(o.name);
          e && (r = e.footerExportMethod || e.footerCellExportMethod);
        }
        const l = e.getVTColumnIndex(s),
          a = r
            ? r({
                $table: e,
                items: i,
                itemIndex: l,
                _columnIndex: l,
                column: s,
                options: t,
              })
            : n.a.toString(i[l]);
        return a;
      }
      function js(e, t) {
        const i = e.footerFilterMethod;
        return i ? t.filter((e, t) => i({ items: e, $rowIndex: t })) : t;
      }
      function Hs(e, t) {
        if (t)
          switch (e.cellType) {
            case "string":
              if (!isNaN(t)) return `\t${t}`;
              break;
            case "number":
              break;
            default:
              if (t.length >= 12 && !isNaN(t)) return `\t${t}`;
              break;
          }
        return t;
      }
      function Us(e) {
        return /[",\s\n]/.test(e) ? `"${e.replace(/"/g, '""')}"` : e;
      }
      function Ws(e, t, i, s) {
        let n = Os;
        if (
          (t.isHeader && (n += i.map((e) => Us(Vs(t, e))).join(",") + $s),
          s.forEach((e) => {
            n += i.map((t) => Us(Hs(t, e[t.id]))).join(",") + $s;
          }),
          t.isFooter)
        ) {
          const s = e.footerTableData,
            o = js(t, s);
          o.forEach((s) => {
            n += i.map((i) => Us(zs(e, t, s, i))).join(",") + $s;
          });
        }
        return n;
      }
      function Gs(e, t, i, s) {
        let n = "";
        if (
          (t.isHeader && (n += i.map((e) => Us(Vs(t, e))).join("\t") + $s),
          s.forEach((e) => {
            n += i.map((t) => Us(e[t.id])).join("\t") + $s;
          }),
          t.isFooter)
        ) {
          const s = e.footerTableData,
            o = js(t, s);
          o.forEach((s) => {
            n += i.map((i) => Us(zs(e, t, s, i))).join(",") + $s;
          });
        }
        return n;
      }
      function Zs(e, t, i, s) {
        const o = t[i],
          r = n.a.isUndefined(o) || n.a.isNull(o) ? s : o,
          l = "ellipsis" === r,
          a = "title" === r,
          h = !0 === r || "tooltip" === r;
        let c = a || h || l;
        return (!e.scrollXLoad && !e.scrollYLoad) || c || (c = !0), c;
      }
      function Ys(e, t) {
        const i = e.style;
        return [
          "<!DOCTYPE html><html>",
          "<head>",
          '<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">',
          `<title>${e.sheetName}</title>`,
          `<style>${Ss}</style>`,
          i ? `<style>${i}</style>` : "",
          "</head>",
          `<body>${t}</body>`,
          "</html>",
        ].join("");
      }
      function qs(e, t, i, s) {
        const o = e.id,
          r = e.border,
          l = e.treeConfig,
          a = e.treeOpts,
          h = e.isAllSelected,
          c = e.isIndeterminate,
          d = e.headerAlign,
          u = e.align,
          p = e.footerAlign,
          f = e.showOverflow,
          m = e.showHeaderOverflow,
          g = e.mergeList,
          v = t.print,
          _ = t.isHeader,
          b = t.isFooter,
          y = t.isColgroup,
          x = t.isMerge,
          w = t.colgroups,
          S = t.original,
          E = "check-all",
          k = [
            "vxe-table",
            `border--${Ms(r)}`,
            v ? "is--print" : "",
            _ ? "is--header" : "",
          ].filter((e) => e),
          C = [
            `<table class="${k.join(
              " "
            )}" border="0" cellspacing="0" cellpadding="0">`,
            `<colgroup>${i
              .map((e) => `<col style="width:${e.renderWidth}px">`)
              .join("")}</colgroup>`,
          ];
        if (
          (_ &&
            (C.push("<thead>"),
            y && !S
              ? w.forEach((i) => {
                  C.push(
                    `<tr>${i
                      .map((i) => {
                        const s = i.headerAlign || i.align || d || u,
                          o = Zs(e, i, "showHeaderOverflow", m)
                            ? ["col--ellipsis"]
                            : [],
                          r = Vs(t, i);
                        let l = 0,
                          a = 0;
                        n.a.eachTree(
                          [i],
                          (e) => {
                            (e.childNodes && i.childNodes.length) || a++,
                              (l += e.renderWidth);
                          },
                          { children: "childNodes" }
                        );
                        const c = l - a;
                        return (
                          s && o.push(`col--${s}`),
                          "checkbox" === i.type
                            ? `<th class="${o.join(" ")}" colspan="${
                                i._colSpan
                              }" rowspan="${i._rowSpan}"><div ${
                                v ? "" : `style="width: ${c}px"`
                              }><input type="checkbox" class="${E}" ${
                                h ? "checked" : ""
                              }><span>${r}</span></div></th>`
                            : `<th class="${o.join(" ")}" colspan="${
                                i._colSpan
                              }" rowspan="${i._rowSpan}" title="${r}"><div ${
                                v ? "" : `style="width: ${c}px"`
                              }><span>${ws(r, !0)}</span></div></th>`
                        );
                      })
                      .join("")}</tr>`
                  );
                })
              : C.push(
                  `<tr>${i
                    .map((i) => {
                      const s = i.headerAlign || i.align || d || u,
                        n = Zs(e, i, "showHeaderOverflow", m)
                          ? ["col--ellipsis"]
                          : [],
                        o = Vs(t, i);
                      return (
                        s && n.push(`col--${s}`),
                        "checkbox" === i.type
                          ? `<th class="${n.join(" ")}"><div ${
                              v ? "" : `style="width: ${i.renderWidth}px"`
                            }><input type="checkbox" class="${E}" ${
                              h ? "checked" : ""
                            }><span>${o}</span></div></th>`
                          : `<th class="${n.join(" ")}" title="${o}"><div ${
                              v ? "" : `style="width: ${i.renderWidth}px"`
                            }><span>${ws(o, !0)}</span></div></th>`
                      );
                    })
                    .join("")}</tr>`
                ),
            C.push("</thead>")),
          s.length &&
            (C.push("<tbody>"),
            l
              ? s.forEach((t) => {
                  C.push(
                    "<tr>" +
                      i
                        .map((i) => {
                          const s = i.align || u,
                            n = Zs(e, i, "showOverflow", f)
                              ? ["col--ellipsis"]
                              : [],
                            r = t[i.id];
                          if ((s && n.push(`col--${s}`), i.treeNode)) {
                            let e = "";
                            return (
                              t._hasChild &&
                                (e = `<i class="${
                                  t._expand
                                    ? "vxe-table--tree-fold-icon"
                                    : "vxe-table--tree-unfold-icon"
                                }"></i>`),
                              n.push("vxe-table--tree-node"),
                              "radio" === i.type
                                ? `<td class="${n.join(
                                    " "
                                  )}" title="${r}"><div ${
                                    v ? "" : `style="width: ${i.renderWidth}px"`
                                  }><div class="vxe-table--tree-node-wrapper" style="padding-left: ${
                                    t._level * a.indent
                                  }px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="radio" name="radio_${o}" ${
                                    t._radioDisabled ? "disabled " : ""
                                  }${Fs(r) ? "checked" : ""}><span>${
                                    t._radioLabel
                                  }</span></div></div></div></td>`
                                : "checkbox" === i.type
                                ? `<td class="${n.join(
                                    " "
                                  )}" title="${r}"><div ${
                                    v ? "" : `style="width: ${i.renderWidth}px"`
                                  }><div class="vxe-table--tree-node-wrapper" style="padding-left: ${
                                    t._level * a.indent
                                  }px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell"><input type="checkbox" ${
                                    t._checkboxDisabled ? "disabled " : ""
                                  }${Fs(r) ? "checked" : ""}><span>${
                                    t._checkboxLabel
                                  }</span></div></div></div></td>`
                                : `<td class="${n.join(
                                    " "
                                  )}" title="${r}"><div ${
                                    v ? "" : `style="width: ${i.renderWidth}px"`
                                  }><div class="vxe-table--tree-node-wrapper" style="padding-left: ${
                                    t._level * a.indent
                                  }px"><div class="vxe-table--tree-icon-wrapper">${e}</div><div class="vxe-table--tree-cell">${r}</div></div></div></td>`
                            );
                          }
                          return "radio" === i.type
                            ? `<td class="${n.join(" ")}"><div ${
                                v ? "" : `style="width: ${i.renderWidth}px"`
                              }><input type="radio" name="radio_${o}" ${
                                t._radioDisabled ? "disabled " : ""
                              }${Fs(r) ? "checked" : ""}><span>${
                                t._radioLabel
                              }</span></div></td>`
                            : "checkbox" === i.type
                            ? `<td class="${n.join(" ")}"><div ${
                                v ? "" : `style="width: ${i.renderWidth}px"`
                              }><input type="checkbox" ${
                                t._checkboxDisabled ? "disabled " : ""
                              }${Fs(r) ? "checked" : ""}><span>${
                                t._checkboxLabel
                              }</span></div></td>`
                            : `<td class="${n.join(" ")}" title="${r}"><div ${
                                v ? "" : `style="width: ${i.renderWidth}px"`
                              }>${ws(r, !0)}</div></td>`;
                        })
                        .join("") +
                      "</tr>"
                  );
                })
              : s.forEach((t) => {
                  C.push(
                    "<tr>" +
                      i
                        .map((i) => {
                          const s = i.align || u,
                            n = Zs(e, i, "showOverflow", f)
                              ? ["col--ellipsis"]
                              : [],
                            r = t[i.id];
                          let l = 1,
                            a = 1;
                          if (x && g.length) {
                            const s = e.getVTRowIndex(t._row),
                              n = e.getVTColumnIndex(i),
                              o = at(g, s, n);
                            if (o) {
                              const e = o.rowspan,
                                t = o.colspan;
                              if (!e || !t) return "";
                              e > 1 && (l = e), t > 1 && (a = t);
                            }
                          }
                          return (
                            s && n.push(`col--${s}`),
                            "radio" === i.type
                              ? `<td class="${n.join(
                                  " "
                                )}" rowspan="${l}" colspan="${a}"><div ${
                                  v ? "" : `style="width: ${i.renderWidth}px"`
                                }><input type="radio" name="radio_${o}" ${
                                  t._radioDisabled ? "disabled " : ""
                                }${Fs(r) ? "checked" : ""}><span>${
                                  t._radioLabel
                                }</span></div></td>`
                              : "checkbox" === i.type
                              ? `<td class="${n.join(
                                  " "
                                )}" rowspan="${l}" colspan="${a}"><div ${
                                  v ? "" : `style="width: ${i.renderWidth}px"`
                                }><input type="checkbox" ${
                                  t._checkboxDisabled ? "disabled " : ""
                                }${Fs(r) ? "checked" : ""}><span>${
                                  t._checkboxLabel
                                }</span></div></td>`
                              : `<td class="${n.join(
                                  " "
                                )}" rowspan="${l}" colspan="${a}" title="${r}"><div ${
                                  v ? "" : `style="width: ${i.renderWidth}px"`
                                }>${ws(r, !0)}</div></td>`
                          );
                        })
                        .join("") +
                      "</tr>"
                  );
                }),
            C.push("</tbody>")),
          b)
        ) {
          const s = e.footerTableData,
            n = js(t, s);
          n.length &&
            (C.push("<tfoot>"),
            n.forEach((s) => {
              C.push(
                `<tr>${i
                  .map((i) => {
                    const n = i.footerAlign || i.align || p || u,
                      o = Zs(e, i, "showOverflow", f) ? ["col--ellipsis"] : [],
                      r = zs(e, t, s, i);
                    return (
                      n && o.push(`col--${n}`),
                      `<td class="${o.join(" ")}" title="${r}"><div ${
                        v ? "" : `style="width: ${i.renderWidth}px"`
                      }>${ws(r, !0)}</div></td>`
                    );
                  })
                  .join("")}</tr>`
              );
            }),
            C.push("</tfoot>"));
        }
        const T =
          !h && c
            ? `<script>(function(){var a=document.querySelector(".${E}");if(a){a.indeterminate=true}})()<\/script>`
            : "";
        return C.push("</table>", T), v ? C.join("") : Ys(t, C.join(""));
      }
      function Xs(e, t, i, s) {
        let n = [
          '<?xml version="1.0"?>',
          '<?mso-application progid="Excel.Sheet"?>',
          '<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">',
          '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">',
          "<Version>16.00</Version>",
          "</DocumentProperties>",
          '<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">',
          "<WindowHeight>7920</WindowHeight>",
          "<WindowWidth>21570</WindowWidth>",
          "<WindowTopX>32767</WindowTopX>",
          "<WindowTopY>32767</WindowTopY>",
          "<ProtectStructure>False</ProtectStructure>",
          "<ProtectWindows>False</ProtectWindows>",
          "</ExcelWorkbook>",
          `<Worksheet ss:Name="${t.sheetName}">`,
          "<Table>",
          i.map((e) => `<Column ss:Width="${e.renderWidth}"/>`).join(""),
        ].join("");
        if (
          (t.isHeader &&
            (n += `<Row>${i
              .map(
                (e) => `<Cell><Data ss:Type="String">${Vs(t, e)}</Data></Cell>`
              )
              .join("")}</Row>`),
          s.forEach((e) => {
            n +=
              "<Row>" +
              i
                .map(
                  (t) => `<Cell><Data ss:Type="String">${e[t.id]}</Data></Cell>`
                )
                .join("") +
              "</Row>";
          }),
          t.isFooter)
        ) {
          const s = e.footerTableData,
            o = js(t, s);
          o.forEach((s) => {
            n += `<Row>${i
              .map(
                (i) =>
                  `<Cell><Data ss:Type="String">${zs(e, t, s, i)}</Data></Cell>`
              )
              .join("")}</Row>`;
          });
        }
        return `${n}</Table></Worksheet></Workbook>`;
      }
      function Ks(e, t, i, s) {
        if (i.length)
          switch (t.type) {
            case "csv":
              return Ws(e, t, i, s);
            case "txt":
              return Gs(e, t, i, s);
            case "html":
              return qs(e, t, i, s);
            case "xml":
              return Xs(e, t, i, s);
          }
        return "";
      }
      function Js(e) {
        const t = e.filename,
          i = e.type,
          s = e.content,
          o = `${t}.${i}`;
        if (window.Blob) {
          const t = s instanceof Blob ? s : As(n.a.toString(s), e);
          if (navigator.msSaveBlob) navigator.msSaveBlob(t, o);
          else {
            const e = document.createElement("a");
            (e.target = "_blank"),
              (e.download = o),
              (e.href = URL.createObjectURL(t)),
              document.body.appendChild(e),
              e.click(),
              document.body.removeChild(e);
          }
          return Promise.resolve();
        }
        return Promise.reject(new Error(g.getLog("vxe.error.notExp")));
      }
      function Qs(e, t, i) {
        const s = t.filename,
          n = t.type,
          o = t.download;
        if (!o) {
          const e = As(i, t);
          return Promise.resolve({ type: n, content: i, blob: e });
        }
        Js({ filename: s, type: n, content: i }).then(() => {
          !1 !== t.message &&
            Ke.modal.message({
              content: r.i18n("vxe.table.expSuccess"),
              status: "success",
            });
        });
      }
      function en(e) {
        n.a.eachTree(
          e,
          (e) => {
            delete e._level,
              delete e._colSpan,
              delete e._rowSpan,
              delete e._children,
              delete e.childNodes;
          },
          { children: "children" }
        );
      }
      function tn(e, t) {
        const i = t.remote,
          s = t.columns,
          n = t.colgroups,
          o = t.exportMethod,
          r = t.afterExportMethod;
        return new Promise((r) => {
          if (i) {
            const i = { options: t, $table: e, $grid: e.$xegrid };
            r(o ? o(i) : i);
          } else {
            const i = Bs(e, t);
            r(
              e.preventEvent(
                null,
                "event.export",
                { options: t, columns: s, colgroups: n, datas: i },
                () => {
                  return Qs(e, t, Ks(e, t, s, i));
                }
              )
            );
          }
        })
          .then((i) => {
            return (
              en(s),
              t.print ||
                (r &&
                  r({ status: !0, options: t, $table: e, $grid: e.$xegrid })),
              Object.assign({ status: !0 }, i)
            );
          })
          .catch(() => {
            en(s),
              t.print ||
                (r &&
                  r({ status: !1, options: t, $table: e, $grid: e.$xegrid }));
            const i = { status: !1 };
            return Promise.reject(i);
          });
      }
      function sn(e, t) {
        return e.getElementsByTagName(t);
      }
      function nn(e) {
        return `#${e}@${n.a.uniqueId()}`;
      }
      function on(e, t) {
        return e.replace(/#\d+@\d+/g, (e) => (n.a.hasOwnProp(t, e) ? t[e] : e));
      }
      function rn(e, t) {
        const i = on(e, t);
        return i.replace(/^"+$/g, (e) => '"'.repeat(Math.ceil(e.length / 2)));
      }
      function ln(e, t, i) {
        const s = t.split($s),
          n = [];
        let o = [];
        if (s.length) {
          const e = {},
            t = Date.now();
          s.forEach((s) => {
            if (s) {
              const r = {};
              s = s
                .replace(/("")|(\n)/g, (i, s) => {
                  const n = nn(t);
                  return (e[n] = s ? '"' : "\n"), n;
                })
                .replace(/"(.*?)"/g, (i, s) => {
                  const n = nn(t);
                  return (e[n] = on(s, e)), n;
                });
              const l = s.split(i);
              o.length
                ? (l.forEach((t, i) => {
                    i < o.length && (r[o[i]] = rn(t, e));
                  }),
                  n.push(r))
                : (o = l.map((t) => rn(t.trim(), e)));
            }
          });
        }
        return { fields: o, rows: n };
      }
      function an(e, t) {
        return ln(e, t, ",");
      }
      function hn(e, t) {
        return ln(e, t, "\t");
      }
      function cn(e, t) {
        const i = new DOMParser(),
          s = i.parseFromString(t, "text/html"),
          o = sn(s, "body"),
          r = [],
          l = [];
        if (o.length) {
          const e = sn(o[0], "table");
          if (e.length) {
            const t = sn(e[0], "thead");
            if (t.length) {
              n.a.arrayEach(sn(t[0], "tr"), (e) => {
                n.a.arrayEach(sn(e, "th"), (e) => {
                  l.push(e.textContent);
                });
              });
              const i = sn(e[0], "tbody");
              i.length &&
                n.a.arrayEach(sn(i[0], "tr"), (e) => {
                  const t = {};
                  n.a.arrayEach(sn(e, "td"), (e, i) => {
                    l[i] && (t[l[i]] = e.textContent || "");
                  }),
                    r.push(t);
                });
            }
          }
        }
        return { fields: l, rows: r };
      }
      function dn(e, t) {
        const i = new DOMParser(),
          s = i.parseFromString(t, "application/xml"),
          o = sn(s, "Worksheet"),
          r = [],
          l = [];
        if (o.length) {
          const e = sn(o[0], "Table");
          if (e.length) {
            const t = sn(e[0], "Row");
            t.length &&
              (n.a.arrayEach(sn(t[0], "Cell"), (e) => {
                l.push(e.textContent);
              }),
              n.a.arrayEach(t, (e, t) => {
                if (t) {
                  const t = {},
                    i = sn(e, "Cell");
                  n.a.arrayEach(i, (e, i) => {
                    l[i] && (t[l[i]] = e.textContent);
                  }),
                    r.push(t);
                }
              }));
          }
        }
        return { fields: l, rows: r };
      }
      function un(e, t) {
        const i = [];
        return (
          e.forEach((e) => {
            const t = e.property;
            t && i.push(t);
          }),
          t.some((e) => i.indexOf(e) > -1)
        );
      }
      function pn(e, t, i) {
        const s = e.tableFullColumn,
          n = e._importResolve,
          o = e._importReject;
        let l = { fields: [], rows: [] };
        switch (i.type) {
          case "csv":
            l = an(s, t);
            break;
          case "txt":
            l = hn(s, t);
            break;
          case "html":
            l = cn(s, t);
            break;
          case "xml":
            l = dn(s, t);
            break;
        }
        const a = l,
          h = a.fields,
          c = a.rows,
          d = un(s, h);
        d
          ? e.createData(c).then((t) => {
              let s;
              return (
                (s = "insert" === i.mode ? e.insert(t) : e.reloadData(t)),
                !1 !== i.message &&
                  Ke.modal.message({
                    content: r.i18n("vxe.table.impSuccess", [c.length]),
                    status: "success",
                  }),
                s.then(() => {
                  n && n({ status: !0 });
                })
              );
            })
          : !1 !== i.message &&
            (Ke.modal.message({
              content: r.i18n("vxe.error.impFields"),
              status: "error",
            }),
            o && o({ status: !1 }));
      }
      function fn(e, t, i) {
        const s = i.importMethod,
          o = i.afterImportMethod,
          l = g.parseFile(t),
          a = l.type,
          h = l.filename;
        if (!s && !n.a.includes(Ke.config.importTypes, a)) {
          !1 !== i.message &&
            Ke.modal.message({
              content: r.i18n("vxe.error.notType", [a]),
              status: "error",
            });
          const e = { status: !1 };
          return Promise.reject(e);
        }
        const c = new Promise((n, o) => {
          const r = (t) => {
              n(t), (e._importResolve = null), (e._importReject = null);
            },
            l = (t) => {
              o(t), (e._importResolve = null), (e._importReject = null);
            };
          if (
            ((e._importResolve = r), (e._importReject = l), window.FileReader)
          ) {
            const n = Object.assign({ mode: "insert" }, i, {
              type: a,
              filename: h,
            });
            n.remote
              ? s
                ? Promise.resolve(s({ file: t, options: n, $table: e }))
                    .then(() => {
                      r({ status: !0 });
                    })
                    .catch(() => {
                      r({ status: !0 });
                    })
                : r({ status: !0 })
              : e.preventEvent(
                  null,
                  "event.import",
                  { file: t, options: n, columns: e.tableFullColumn },
                  () => {
                    const i = new FileReader();
                    (i.onerror = () => {
                      g.error("vxe.error.notType", [a]), l({ status: !1 });
                    }),
                      (i.onload = (t) => {
                        pn(e, t.target.result, n);
                      }),
                      i.readAsText(t, "UTF-8");
                  }
                );
          } else
            "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV && g.error("vxe.error.notExp"),
              r({ status: !0 });
        });
        return c
          .then(() => {
            o && o({ status: !0, options: i, $table: e });
          })
          .catch((t) => {
            return (
              o && o({ status: !1, options: i, $table: e }), Promise.reject(t)
            );
          });
      }
      function mn() {
        let e =
          arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
        return (
          ks ||
            ((ks = document.createElement("form")),
            (Cs = document.createElement("input")),
            (ks.className = "vxe-table--file-form"),
            (Cs.name = "file"),
            (Cs.type = "file"),
            ks.appendChild(Cs),
            document.body.appendChild(ks)),
          new Promise((t, i) => {
            const s = e.types || [],
              o = !s.length || s.some((e) => "*" === e);
            (Cs.multiple = !!e.multiple),
              (Cs.accept = o ? "" : `.${s.join(", .")}`),
              (Cs.onchange = (l) => {
                const a = l.target.files,
                  h = a[0];
                let c;
                if (!o)
                  for (let e = 0; e < a.length; e++) {
                    const t = g.parseFile(a[e]),
                      i = t.type;
                    if (!n.a.includes(s, i)) {
                      c = i;
                      break;
                    }
                  }
                if (c) {
                  !1 !== e.message &&
                    Ke.modal.message({
                      content: r.i18n("vxe.error.notType", [c]),
                      status: "error",
                    });
                  const t = { status: !1, files: a, file: h };
                  i(t);
                } else t({ status: !0, files: a, file: h });
              }),
              ks.reset(),
              Cs.click();
          })
        );
      }
      function gn() {
        if (Ts) {
          if (Ts.parentNode) {
            try {
              Ts.contentDocument.write(""), Ts.contentDocument.clear();
            } catch (e) {}
            Ts.parentNode.removeChild(Ts);
          }
          Ts = null;
        }
      }
      function vn() {
        Ts.parentNode || document.body.appendChild(Ts);
      }
      function _n() {
        gn();
      }
      function bn(e, t, i) {
        const s = t.beforePrintMethod;
        s && (i = s({ content: i, options: t, $table: e }) || ""),
          (i = Ys(t, i));
        const n = As(i, t);
        b.msie
          ? (gn(),
            (Ts = Rs()),
            vn(),
            Ts.contentDocument.write(i),
            Ts.contentDocument.execCommand("print"))
          : (Ts ||
              ((Ts = Rs()),
              (Ts.onload = (e) => {
                e.target.src &&
                  ((e.target.contentWindow.onafterprint = _n),
                  e.target.contentWindow.print());
              })),
            vn(),
            (Ts.src = URL.createObjectURL(n)));
      }
      function yn(e, t, i) {
        const s = e.initStore,
          o = e.customOpts,
          r = e.collectColumn,
          l = e.footerTableData,
          a = e.treeConfig,
          h = e.mergeList,
          c = e.isGroup,
          d = e.exportParams,
          u = e.getCheckboxRecords(),
          p = !!l.length,
          f = a,
          m = !f && h.length,
          v = Object.assign({ message: !0, isHeader: !0 }, t),
          _ = v.types || Ke.config.exportTypes,
          b = v.modes,
          y = o.checkMethod,
          x = r.slice(0),
          w = v.columns,
          S = _.map((e) => {
            return { value: e, label: `vxe.export.types.${e}` };
          }),
          E = b.map((e) => {
            return { value: e, label: `vxe.export.modes.${e}` };
          });
        return (
          n.a.eachTree(x, (e, t, i, s, o) => {
            const r = e.children && e.children.length;
            (r || Is(e)) &&
              ((e.checked = w
                ? w.some((t) => {
                    if (g.isColumn(t)) return e === t;
                    if (n.a.isString(t)) return e.field === t;
                    {
                      const i = t.id || t.colId,
                        s = t.type,
                        n = t.property || t.field;
                      if (i) return e.id === i;
                      if (n && s) return e.property === n && e.type === s;
                      if (n) return e.property === n;
                      if (s) return e.type === s;
                    }
                  })
                : e.visible),
              (e.halfChecked = !1),
              (e.disabled = (o && o.disabled) || (!!y && !y({ column: e }))));
          }),
          Object.assign(e.exportStore, {
            columns: x,
            typeList: S,
            modeList: E,
            hasFooter: p,
            hasMerge: m,
            hasTree: f,
            isPrint: i,
            hasColgroup: c,
            visible: !0,
          }),
          s.export ||
            Object.assign(d, { mode: u.length ? "selected" : "current" }, v),
          -1 === b.indexOf(d.mode) && (d.mode = b[0]),
          -1 === _.indexOf(d.type) && (d.type = _[0]),
          (s.export = !0),
          e.$nextTick()
        );
      }
      const xn = (e) => {
          const t = [];
          return (
            e.forEach((e) => {
              e.childNodes && e.childNodes.length
                ? (t.push(e), t.push(...xn(e.childNodes)))
                : t.push(e);
            }),
            t
          );
        },
        wn = (e) => {
          let t = 1;
          const i = (e, s) => {
            if (
              (s && ((e._level = s._level + 1), t < e._level && (t = e._level)),
              e.childNodes && e.childNodes.length)
            ) {
              let t = 0;
              e.childNodes.forEach((s) => {
                i(s, e), (t += s._colSpan);
              }),
                (e._colSpan = t);
            } else e._colSpan = 1;
          };
          e.forEach((e) => {
            (e._level = 1), i(e);
          });
          const s = [];
          for (let o = 0; o < t; o++) s.push([]);
          const n = xn(e);
          return (
            n.forEach((e) => {
              e.childNodes && e.childNodes.length
                ? (e._rowSpan = 1)
                : (e._rowSpan = t - e._level + 1),
                s[e._level - 1].push(e);
            }),
            s
          );
        };
      var Sn = {
        methods: {
          _exportData(e) {
            const t = this.$xegrid,
              i = this.isGroup,
              s = this.tableGroupColumn,
              o = this.tableFullColumn,
              l = this.afterFullData,
              a = this.treeConfig,
              h = this.treeOpts,
              c = this.exportOpts,
              d = Object.assign(
                {
                  isHeader: !0,
                  isFooter: !0,
                  isColgroup: !0,
                  isMerge: !1,
                  isAllExpand: !1,
                  download: !0,
                  type: "csv",
                  mode: "current",
                },
                c,
                { print: !1 },
                e
              ),
              u = d.type,
              p = d.mode,
              f = d.columns,
              m = d.original,
              v = d.beforeExportMethod;
            let _ = [];
            const b = f && f.length ? f : null;
            let y = d.columnFilterMethod;
            b ||
              y ||
              (y = m
                ? (e) => {
                    let t = e.column;
                    return t.property;
                  }
                : (e) => {
                    let t = e.column;
                    return Is(t);
                  }),
              (_ = b
                ? n.a.searchTree(
                    n.a.mapTree(
                      b,
                      (e) => {
                        let t;
                        if (e) {
                          if (g.isColumn(e)) t = e;
                          else if (n.a.isString(e))
                            t = this.getColumnByField(e);
                          else {
                            const i = e.id || e.colId,
                              s = e.type,
                              n = e.property || e.field;
                            i
                              ? (t = this.getColumnById(i))
                              : n && s
                              ? (t = o.find(
                                  (e) => e.property === n && e.type === s
                                ))
                              : n
                              ? (t = this.getColumnByField(n))
                              : s && (t = o.find((e) => e.type === s));
                          }
                          return t || {};
                        }
                      },
                      { children: "childNodes", mapChildren: "_children" }
                    ),
                    (e, t) =>
                      g.isColumn(e) &&
                      (!y || y({ column: e, $columnIndex: t })),
                    {
                      children: "_children",
                      mapChildren: "childNodes",
                      original: !0,
                    }
                  )
                : n.a.searchTree(
                    i ? s : o,
                    (e, t) =>
                      e.visible && (!y || y({ column: e, $columnIndex: t })),
                    {
                      children: "children",
                      mapChildren: "childNodes",
                      original: !0,
                    }
                  ));
            const x = [];
            if (
              (n.a.eachTree(
                _,
                (e) => {
                  const t = e.children && e.children.length;
                  t || x.push(e);
                },
                { children: "childNodes" }
              ),
              (d.columns = x),
              (d.colgroups = wn(_)),
              d.filename ||
                (d.filename = r.i18n(
                  d.original
                    ? "vxe.table.expOriginFilename"
                    : "vxe.table.expFilename",
                  [n.a.toDateString(Date.now(), "yyyyMMddHHmmss")]
                )),
              d.sheetName || (d.sheetName = document.title),
              !d.exportMethod && !n.a.includes(Ke.config.exportTypes, u))
            ) {
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV && g.error("vxe.error.notType", [u]);
              const e = { status: !1 };
              return Promise.reject(e);
            }
            if (
              (d.print || (v && v({ options: d, $table: this, $grid: t })),
              !d.data)
            )
              if (((d.data = l), "selected" === p)) {
                const e = this.getCheckboxRecords();
                ["html", "pdf"].indexOf(u) > -1 && a
                  ? (d.data = n.a.searchTree(
                      this.getTableData().fullData,
                      (t) => e.indexOf(t) > -1,
                      Object.assign({}, h, { data: "_row" })
                    ))
                  : (d.data = e);
              } else if ("all" === p && t && !d.remote) {
                const e = t.proxyOpts,
                  i = e.beforeQueryAll,
                  s = e.afterQueryAll,
                  o = e.ajax,
                  r = void 0 === o ? {} : o,
                  l = e.props,
                  a = void 0 === l ? {} : l,
                  h = r.queryAll;
                if (h) {
                  const e = {
                    $table: this,
                    $grid: t,
                    sort: t.sortData,
                    filters: t.filterData,
                    form: t.formData,
                    target: h,
                    options: d,
                  };
                  return Promise.resolve((i || h)(e))
                    .catch((e) => e)
                    .then((t) => {
                      return (
                        (d.data = (a.list ? n.a.get(t, a.list) : t) || []),
                        s && s(e),
                        tn(this, d)
                      );
                    });
                }
              }
            return tn(this, d);
          },
          _importByFile(e, t) {
            const i = Object.assign({}, t),
              s = i.beforeImportMethod;
            return s && s({ options: i, $table: this }), fn(this, e, i);
          },
          _importData(e) {
            const t = Object.assign(
                { types: Ke.config.importTypes },
                this.importOpts,
                e
              ),
              i = t.beforeImportMethod,
              s = t.afterImportMethod;
            return (
              i && i({ options: t, $table: this }),
              mn(t)
                .catch((e) => {
                  return (
                    s && s({ status: !1, options: t, $table: this }),
                    Promise.reject(e)
                  );
                })
                .then((e) => {
                  const i = e.file;
                  return fn(this, i, t);
                })
            );
          },
          _saveFile(e) {
            return Js(e);
          },
          _readFile(e) {
            return mn(e);
          },
          _print(e) {
            const t = Object.assign({ original: !1 }, this.printOpts, e, {
              type: "html",
              download: !1,
              remote: !1,
              print: !0,
            });
            return (
              t.sheetName || (t.sheetName = document.title),
              new Promise((e) => {
                t.content
                  ? e(bn(this, t, t.content))
                  : e(
                      this.exportData(t).then((e) => {
                        let i = e.content;
                        return bn(this, t, i);
                      })
                    );
              })
            );
          },
          _openImport(e) {
            const t = Object.assign(
                { mode: "insert", message: !0, types: Ke.config.importTypes },
                e,
                this.importOpts
              ),
              i = t.types,
              s = !!this.getTreeStatus();
            if (s)
              return void (
                t.message &&
                Ke.modal.message({
                  content: r.i18n("vxe.error.treeNotImp"),
                  status: "error",
                })
              );
            this.importConfig ||
              g.error("vxe.error.reqProp", ["import-config"]);
            const n = i.map((e) => {
                return { value: e, label: `vxe.export.types.${e}` };
              }),
              o = t.modes.map((e) => {
                return { value: e, label: `vxe.import.modes.${e}` };
              });
            Object.assign(this.importStore, {
              file: null,
              type: "",
              filename: "",
              modeList: o,
              typeList: n,
              visible: !0,
            }),
              Object.assign(this.importParams, t),
              (this.initStore.import = !0);
          },
          _openExport(e) {
            const t = this.exportOpts;
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                (this.exportConfig ||
                  g.error("vxe.error.reqProp", ["export-config"])),
              yn(this, Object.assign({}, t, e))
            );
          },
          _openPrint(e) {
            const t = this.printOpts;
            return (
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                (this.printConfig ||
                  g.error("vxe.error.reqProp", ["print-config"])),
              yn(this, Object.assign({}, t, e), !0)
            );
          },
        },
      };
      function En(e) {
        const t = Object.assign({}, e, { type: "html" });
        bn(null, t, t.content);
      }
      const kn = {
        ExportPanel: bs,
        ImportPanel: xs,
        install(e) {
          Ke.reg("export"),
            (Ke.saveFile = Js),
            (Ke.readFile = mn),
            (Ke.print = En),
            Ke.setup({
              export: { types: { csv: 0, html: 0, xml: 0, txt: 0 } },
            }),
            ui.mixins.push(Sn),
            e.component(bs.name, bs),
            e.component(xs.name, xs);
        },
      };
      function Cn(e, t) {
        let i = 0,
          s = 0;
        const o = !b.firefox && A.hasClass(e, "vxe-checkbox--label");
        if (o) {
          const t = getComputedStyle(e);
          (i -= n.a.toNumber(t.paddingTop)), (s -= n.a.toNumber(t.paddingLeft));
        }
        while (e && e !== t)
          if (
            ((i += e.offsetTop), (s += e.offsetLeft), (e = e.offsetParent), o)
          ) {
            const t = getComputedStyle(e);
            (i -= n.a.toNumber(t.paddingTop)),
              (s -= n.a.toNumber(t.paddingLeft));
          }
        return { offsetTop: i, offsetLeft: s };
      }
      function Tn(e, t, i, s) {
        let n = 0,
          o = [];
        const r = s > 0,
          l = s > 0 ? s : Math.abs(s) + i.offsetHeight,
          a = e.afterFullData,
          h = e.scrollYStore,
          c = e.scrollYLoad;
        if (c) {
          const i = e.getVTRowIndex(t.row);
          o = r
            ? a.slice(i, i + Math.ceil(l / h.rowHeight))
            : a.slice(i - Math.floor(l / h.rowHeight) + 1, i + 1);
        } else {
          const t = r ? "next" : "previous";
          while (i && n < l)
            o.push(e.getRowNode(i).item),
              (n += i.offsetHeight),
              (i = i[`${t}ElementSibling`]);
        }
        return o;
      }
      var On = {
        methods: {
          moveTabSelected(e, t, i) {
            const s = this.afterFullData,
              n = this.visibleColumn,
              o = this.editConfig,
              r = this.editOpts;
            let l, a, h;
            const c = Object.assign({}, e),
              d = this.getVTRowIndex(c.row),
              u = this.getVTColumnIndex(c.column);
            i.preventDefault(),
              t
                ? u <= 0
                  ? d > 0 && ((a = d - 1), (l = s[a]), (h = n.length - 1))
                  : (h = u - 1)
                : u >= n.length - 1
                ? d < s.length - 1 && ((a = d + 1), (l = s[a]), (h = 0))
                : (h = u + 1);
            const p = n[h];
            p &&
              (l ? ((c.rowIndex = a), (c.row = l)) : (c.rowIndex = d),
              (c.columnIndex = h),
              (c.column = p),
              (c.cell = this.getCell(c.row, c.column)),
              o
                ? ("click" !== r.trigger && "dblclick" !== r.trigger) ||
                  ("row" === r.mode
                    ? this.handleActived(c, i)
                    : this.scrollToRow(c.row, c.column).then(() =>
                        this.handleSelected(c, i)
                      ))
                : this.scrollToRow(c.row, c.column).then(() =>
                    this.handleSelected(c, i)
                  ));
          },
          moveCurrentRow(e, t, i) {
            const s = this.currentRow,
              o = this.treeConfig,
              r = this.treeOpts,
              l = this.afterFullData;
            let a;
            if ((i.preventDefault(), s))
              if (o) {
                const i = n.a.findTree(l, (e) => e === s, r),
                  o = i.index,
                  h = i.items;
                e && o > 0
                  ? (a = h[o - 1])
                  : t && o < h.length - 1 && (a = h[o + 1]);
              } else {
                const i = this.getVTRowIndex(s);
                e && i > 0
                  ? (a = l[i - 1])
                  : t && i < l.length - 1 && (a = l[i + 1]);
              }
            else a = l[0];
            if (a) {
              const e = { $table: this, row: a };
              this.scrollToRow(a).then(() => this.triggerCurrentRowEvent(i, e));
            }
          },
          moveSelected(e, t, i, s, n, o) {
            const r = this.afterFullData,
              l = this.visibleColumn,
              a = Object.assign({}, e),
              h = this.getVTRowIndex(a.row),
              c = this.getVTColumnIndex(a.column);
            o.preventDefault(),
              i && h > 0
                ? ((a.rowIndex = h - 1), (a.row = r[a.rowIndex]))
                : n && h < r.length - 1
                ? ((a.rowIndex = h + 1), (a.row = r[a.rowIndex]))
                : t && c
                ? ((a.columnIndex = c - 1), (a.column = l[a.columnIndex]))
                : s &&
                  c < l.length - 1 &&
                  ((a.columnIndex = c + 1), (a.column = l[a.columnIndex])),
              this.scrollToRow(a.row, a.column).then(() => {
                (a.cell = this.getCell(a.row, a.column)),
                  this.handleSelected(a, o);
              });
          },
          triggerHeaderCellMousedownEvent(e, t) {
            const i = this.mouseConfig,
              s = this.mouseOpts;
            if (i && s.area && this.handleHeaderCellAreaEvent) {
              const i = e.currentTarget,
                s = A.getEventTargetNode(e, i, "vxe-cell--sort").flag,
                n = A.getEventTargetNode(e, i, "vxe-cell--filter").flag;
              this.handleHeaderCellAreaEvent(
                e,
                Object.assign({ cell: i, triggerSort: s, triggerFilter: n }, t)
              );
            }
            this.focus(), this.closeMenu();
          },
          triggerCellMousedownEvent(e, t) {
            const i = e.currentTarget;
            (t.cell = i),
              this.handleCellMousedownEvent(e, t),
              this.focus(),
              this.closeFilter(),
              this.closeMenu();
          },
          handleCellMousedownEvent(e, t) {
            const i = this.editConfig,
              s = this.editOpts,
              n = this.handleSelected,
              o = this.checkboxConfig,
              r = this.checkboxOpts,
              l = this.mouseConfig,
              a = this.mouseOpts;
            if (l && a.area && this.handleCellAreaEvent)
              return this.handleCellAreaEvent(e, t);
            o && r.range && this.handleCheckboxRangeEvent(e, t),
              l && a.selected && ((i && "cell" !== s.mode) || n(t, e));
          },
          handleCheckboxRangeEvent(e, t) {
            const i = t.column,
              s = t.cell;
            if ("checkbox" === i.type) {
              const n = this.$el,
                o = this.elemStore,
                r = e.clientX,
                l = e.clientY,
                a =
                  o[`${i.fixed || "main"}-body-wrapper`] ||
                  o["main-body-wrapper"],
                h = a.querySelector(".vxe-table--checkbox-range"),
                c = document.onmousemove,
                d = document.onmouseup,
                u = s.parentNode,
                p = this.getCheckboxRecords();
              let f = [];
              const m = 1,
                g = Cn(e.target, a),
                v = g.offsetTop + e.offsetY,
                _ = g.offsetLeft + e.offsetX,
                b = a.scrollTop,
                y = u.offsetHeight;
              let x = null,
                w = !1,
                S = 1;
              const E = (e, t) => {
                  this.emitEvent(
                    `checkbox-range-${e}`,
                    {
                      records: this.getCheckboxRecords(),
                      reserves: this.getCheckboxReserveRecords(),
                    },
                    t
                  );
                },
                k = (e) => {
                  const i = e.clientX,
                    s = e.clientY,
                    n = i - r,
                    o = s - l + (a.scrollTop - b);
                  let c = Math.abs(o),
                    d = Math.abs(n),
                    g = v,
                    y = _;
                  o < m
                    ? ((g += o), g < m && ((g = m), (c = v)))
                    : (c = Math.min(c, a.scrollHeight - v - m)),
                    n < m
                      ? ((y += n), d > _ && ((y = m), (d = _)))
                      : (d = Math.min(d, a.clientWidth - _ - m)),
                    (h.style.height = `${c}px`),
                    (h.style.width = `${d}px`),
                    (h.style.left = `${y}px`),
                    (h.style.top = `${g}px`),
                    (h.style.display = "block");
                  const x = Tn(this, t, u, o < m ? -c : c);
                  c > 10 &&
                    x.length !== f.length &&
                    ((f = x),
                    e.ctrlKey
                      ? x.forEach((e) => {
                          this.handleSelectRow({ row: e }, -1 === p.indexOf(e));
                        })
                      : (this.setAllCheckboxRow(!1),
                        this.setCheckboxRow(x, !0)),
                    E("change", e));
                },
                C = () => {
                  clearTimeout(x), (x = null);
                },
                T = (e) => {
                  C(),
                    (x = setTimeout(() => {
                      if (x) {
                        const t = a.scrollLeft,
                          i = a.scrollTop,
                          s = a.clientHeight,
                          n = a.scrollHeight,
                          o = Math.ceil((50 * S) / y);
                        w
                          ? i + s < n
                            ? (this.scrollTo(t, i + o), T(e), k(e))
                            : C()
                          : i
                          ? (this.scrollTo(t, i - o), T(e), k(e))
                          : C();
                      }
                    }, 50));
                };
              A.addClass(n, "drag--range"),
                (document.onmousemove = (e) => {
                  e.preventDefault(), e.stopPropagation();
                  const t = e.clientY,
                    i = A.getAbsolutePos(a),
                    s = i.boundingTop;
                  t < s
                    ? ((w = !1), (S = s - t), x || T(e))
                    : t > s + a.clientHeight
                    ? ((w = !0), (S = t - s - a.clientHeight), x || T(e))
                    : x && C(),
                    k(e);
                }),
                (document.onmouseup = (e) => {
                  C(),
                    A.removeClass(n, "drag--range"),
                    h.removeAttribute("style"),
                    (document.onmousemove = c),
                    (document.onmouseup = d),
                    E("end", e);
                }),
                E("start", e);
            }
          },
        },
      };
      const $n = {
        install() {
          Ke.reg("keyboard"), ui.mixins.push(On);
        },
      };
      class Rn {
        constructor(e) {
          Object.assign(this, {
            $options: e,
            required: e.required,
            min: e.min,
            max: e.max,
            type: e.type,
            pattern: e.pattern,
            validator: e.validator,
            trigger: e.trigger,
            maxWidth: e.maxWidth,
          });
        }
        get message() {
          return g.getFuncText(this.$options.message);
        }
      }
      function An(e, t) {
        const i = e.type,
          s = e.min,
          o = e.max,
          r = e.pattern,
          l = "number" === i,
          a = l ? n.a.toNumber(t) : n.a.getSize(t);
        return (
          !(!l || !isNaN(t)) ||
          (!n.a.eqNull(s) && a < n.a.toNumber(s)) ||
          (!n.a.eqNull(o) && a > n.a.toNumber(o)) ||
          !(!r || (n.a.isRegExp(r) ? r : new RegExp(r)).test(t))
        );
      }
      var Ln = {
        methods: {
          _fullValidate(e, t) {
            return this.beginValidate(e, t, !0);
          },
          _validate(e, t) {
            return this.beginValidate(e, t);
          },
          handleValidError(e) {
            return new Promise((t) => {
              !1 === this.validOpts.autoPos
                ? (this.emitEvent("valid-error", e), t())
                : this.handleActived(e, {
                    type: "valid-error",
                    trigger: "call",
                  }).then(() => {
                    setTimeout(() => {
                      t(this.showValidTooltip(e));
                    }, 10);
                  });
            });
          },
          beginValidate(e, t, i) {
            const s = {},
              o = this.editRules,
              r = this.afterFullData,
              l = this.treeConfig,
              a = this.treeOpts;
            let h;
            !0 === e
              ? (h = r)
              : e &&
                (n.a.isFunction(e) ? (t = e) : (h = n.a.isArray(e) ? e : [e])),
              h ||
                (h = this.getInsertRecords().concat(this.getUpdateRecords()));
            const c = [];
            if (
              ((this.lastCallTime = Date.now()),
              (this.validRuleErr = !1),
              this.clearValidate(),
              o)
            ) {
              const e = this.getColumns(),
                d = (t) => {
                  if (i || !this.validRuleErr) {
                    const r = [];
                    e.forEach((e) => {
                      (!i && this.validRuleErr) ||
                        !n.a.has(o, e.property) ||
                        r.push(
                          this.validCellRules("all", t, e).catch((n) => {
                            let o = n.rule,
                              r = n.rules;
                            const l = {
                              rule: o,
                              rules: r,
                              rowIndex: this.getRowIndex(t),
                              row: t,
                              columnIndex: this.getColumnIndex(e),
                              column: e,
                              $table: this,
                            };
                            if (
                              (s[e.property] || (s[e.property] = []),
                              s[e.property].push(l),
                              !i)
                            )
                              return (
                                (this.validRuleErr = !0), Promise.reject(l)
                              );
                          })
                        );
                    }),
                      c.push(Promise.all(r));
                  }
                };
              return (
                l ? n.a.eachTree(h, d, a) : h.forEach(d),
                Promise.all(c)
                  .then(() => {
                    const e = Object.keys(s);
                    return this.$nextTick().then(() => {
                      if (e.length) return Promise.reject(s[e[0]][0]);
                      t && t();
                    });
                  })
                  .catch((e) => {
                    return new Promise((i, n) => {
                      const o = () => {
                          this.$nextTick(() => {
                            t ? (t(s), i()) : n(s);
                          });
                        },
                        a = () => {
                          (e.cell = this.getCell(e.row, e.column)),
                            A.scrollToView(e.cell),
                            this.handleValidError(e).then(o);
                        },
                        h = e.row,
                        c = r.indexOf(h),
                        d = c > 0 ? r[c - 1] : h;
                      !1 === this.validOpts.autoPos
                        ? o()
                        : l
                        ? this.scrollToTreeRow(d).then(a)
                        : this.scrollToRow(d).then(a);
                    });
                  })
              );
            }
            return this.$nextTick().then(() => {
              t && t();
            });
          },
          hasCellRules(e, t, i) {
            const s = this.editRules,
              o = i.property;
            if (o && s) {
              const t = n.a.get(s, o);
              return (
                t &&
                n.a.find(t, (t) => "all" === e || !t.trigger || e === t.trigger)
              );
            }
            return !1;
          },
          validCellRules(e, t, i, s) {
            const o = this.editRules,
              r = i.property,
              l = [],
              a = [];
            if (r && o) {
              const h = n.a.get(o, r);
              if (h) {
                const o = n.a.isUndefined(s) ? n.a.get(t, r) : s;
                h.forEach((s) => {
                  const r = s.type,
                    c = s.trigger,
                    d = s.required;
                  if ("all" === e || !c || e === c)
                    if (n.a.isFunction(s.validator)) {
                      const e = s.validator({
                        cellValue: o,
                        rule: s,
                        rules: h,
                        row: t,
                        rowIndex: this.getRowIndex(t),
                        column: i,
                        columnIndex: this.getColumnIndex(i),
                        $table: this,
                      });
                      e &&
                        (n.a.isError(e)
                          ? ((this.validRuleErr = !0),
                            l.push(
                              new Rn({
                                type: "custom",
                                trigger: c,
                                message: e.message,
                                rule: new Rn(s),
                              })
                            ))
                          : e.catch &&
                            a.push(
                              e.catch((e) => {
                                (this.validRuleErr = !0),
                                  l.push(
                                    new Rn({
                                      type: "custom",
                                      trigger: c,
                                      message:
                                        e && e.message ? e.message : s.message,
                                      rule: new Rn(s),
                                    })
                                  );
                              })
                            ));
                    } else {
                      const e = "array" === r,
                        t = e ? !n.a.isArray(o) || !o.length : m(o);
                      (d ? t || An(s, o) : !t && An(s, o)) &&
                        ((this.validRuleErr = !0), l.push(new Rn(s)));
                    }
                });
              }
            }
            return Promise.all(a).then(() => {
              if (l.length) {
                const e = { rules: l, rule: l[0] };
                return Promise.reject(e);
              }
            });
          },
          _clearValidate() {
            const e = this.$refs.validTip;
            return (
              Object.assign(this.validStore, {
                visible: !1,
                row: null,
                column: null,
                content: "",
                rule: null,
              }),
              e && e.visible && e.close(),
              this.$nextTick()
            );
          },
          triggerValidate(e) {
            const t = this.editConfig,
              i = this.editStore,
              s = this.editRules,
              n = this.validStore,
              o = i.actived;
            if (o.row && s) {
              const i = o.args,
                s = i.row,
                r = i.column,
                l = i.cell;
              if (this.hasCellRules(e, s, r))
                return this.validCellRules(e, s, r)
                  .then(() => {
                    "row" === t.mode &&
                      n.visible &&
                      n.row === s &&
                      n.column === r &&
                      this.clearValidate();
                  })
                  .catch((t) => {
                    let i = t.rule;
                    if (!i.trigger || e === i.trigger) {
                      const e = { rule: i, row: s, column: r, cell: l };
                      return this.showValidTooltip(e), Promise.reject(e);
                    }
                    return Promise.resolve();
                  });
            }
            return Promise.resolve();
          },
          showValidTooltip(e) {
            const t = this.$refs,
              i = this.height,
              s = this.tableData,
              n = this.validOpts,
              o = e.rule,
              r = e.row,
              l = e.column,
              a = e.cell,
              h = t.validTip,
              c = o.message;
            return this.$nextTick(() => {
              if (
                (Object.assign(this.validStore, {
                  row: r,
                  column: l,
                  rule: o,
                  content: c,
                  visible: !0,
                }),
                this.emitEvent("valid-error", e),
                h &&
                  ("tooltip" === n.message ||
                    ("default" === n.message && !i && s.length < 2)))
              )
                return h.open(a, c);
            });
          },
        },
      };
      const Dn = {
        install() {
          Ke.reg("valid"), ui.mixins.push(Ln);
        },
      };
      const In = (e, t) => {
          const i = [];
          return (
            e.forEach((e) => {
              (e.parentId = t ? t.id : null),
                e.visible &&
                  (e.children &&
                  e.children.length &&
                  e.children.some((e) => e.visible)
                    ? (i.push(e), i.push(...In(e.children, e)))
                    : i.push(e));
            }),
            i
          );
        },
        Mn = (e) => {
          let t = 1;
          const i = (e, s) => {
            if (
              (s && ((e.level = s.level + 1), t < e.level && (t = e.level)),
              e.children &&
                e.children.length &&
                e.children.some((e) => e.visible))
            ) {
              let t = 0;
              e.children.forEach((s) => {
                s.visible && (i(s, e), (t += s.colSpan));
              }),
                (e.colSpan = t);
            } else e.colSpan = 1;
          };
          e.forEach((e) => {
            (e.level = 1), i(e);
          });
          const s = [];
          for (let o = 0; o < t; o++) s.push([]);
          const n = In(e);
          return (
            n.forEach((e) => {
              e.children &&
              e.children.length &&
              e.children.some((e) => e.visible)
                ? (e.rowSpan = 1)
                : (e.rowSpan = t - e.level + 1),
                s[e.level - 1].push(e);
            }),
            s
          );
        },
        Pn = "header";
      var Nn = {
        name: "VxeTableHeader",
        props: {
          tableData: Array,
          tableColumn: Array,
          tableGroupColumn: Array,
          fixedColumn: Array,
          size: String,
          fixedType: String,
        },
        data() {
          return { headerColumn: [] };
        },
        watch: {
          tableColumn() {
            this.uploadColumn();
          },
        },
        created() {
          this.uploadColumn();
        },
        mounted() {
          const e = this.$parent,
            t = this.$el,
            i = this.$refs,
            s = this.fixedType,
            n = e.elemStore,
            o = `${s || "main"}-header-`;
          (n[`${o}wrapper`] = t),
            (n[`${o}table`] = i.table),
            (n[`${o}colgroup`] = i.colgroup),
            (n[`${o}list`] = i.thead),
            (n[`${o}xSpace`] = i.xSpace),
            (n[`${o}repair`] = i.repair);
        },
        render(e) {
          const t = this._e,
            i = this.$parent,
            s = this.fixedType,
            o = this.headerColumn,
            r = this.fixedColumn,
            l = i.$listeners,
            a = i.tId,
            h = i.isGroup,
            c = i.resizable,
            d = i.border,
            u = i.columnKey,
            p = i.headerRowClassName,
            f = i.headerCellClassName,
            m = i.headerRowStyle,
            v = i.headerCellStyle,
            _ = i.showHeaderOverflow,
            b = i.headerAlign,
            y = i.align,
            x = i.highlightCurrentColumn,
            w = i.currentColumn,
            S = i.scrollXLoad,
            E = i.overflowX,
            k = i.scrollbarWidth,
            C = i.sortOpts,
            T = i.mouseConfig;
          let O = this.tableColumn,
            $ = o;
          return (
            h || (s && (S || _) && (O = r), ($ = [O])),
            e(
              "div",
              {
                class: [
                  "vxe-table--header-wrapper",
                  s ? `fixed-${s}--wrapper` : "body--wrapper",
                ],
                attrs: { xid: a },
              },
              [
                s
                  ? t()
                  : e("div", { class: "vxe-body--x-space", ref: "xSpace" }),
                e(
                  "table",
                  {
                    class: "vxe-table--header",
                    attrs: {
                      xid: a,
                      cellspacing: 0,
                      cellpadding: 0,
                      border: 0,
                    },
                    ref: "table",
                  },
                  [
                    e(
                      "colgroup",
                      { ref: "colgroup" },
                      O.map((t, i) => {
                        return e("col", { attrs: { name: t.id }, key: i });
                      }).concat(
                        k ? [e("col", { attrs: { name: "col_gutter" } })] : []
                      )
                    ),
                    e(
                      "thead",
                      { ref: "thead" },
                      $.map((t, o) => {
                        return e(
                          "tr",
                          {
                            class: [
                              "vxe-header--row",
                              p
                                ? n.a.isFunction(p)
                                  ? p({
                                      $table: i,
                                      $rowIndex: o,
                                      fixed: s,
                                      type: Pn,
                                    })
                                  : p
                                : "",
                            ],
                            style: m
                              ? n.a.isFunction(m)
                                ? m({
                                    $table: i,
                                    $rowIndex: o,
                                    fixed: s,
                                    type: Pn,
                                  })
                                : m
                              : null,
                          },
                          t
                            .map((r, a) => {
                              const h = r.type,
                                p = r.showHeaderOverflow,
                                m = r.headerAlign,
                                k = r.align,
                                O = r.headerClassName,
                                $ = r.children && r.children.length,
                                R = s ? r.fixed !== s && !$ : r.fixed && E,
                                A = n.a.isUndefined(p) || n.a.isNull(p) ? _ : p,
                                L = m || k || b || y;
                              let D = "ellipsis" === A;
                              const I = "title" === A,
                                M = !0 === A || "tooltip" === A;
                              let P = I || M || D;
                              const N = {},
                                B =
                                  r.filters && r.filters.some((e) => e.checked),
                                F = i.getColumnIndex(r),
                                V = i.getVTColumnIndex(r),
                                z = {
                                  $table: i,
                                  $rowIndex: o,
                                  column: r,
                                  columnIndex: F,
                                  $columnIndex: a,
                                  _columnIndex: V,
                                  fixed: s,
                                  type: Pn,
                                  isHidden: R,
                                  hasFilter: B,
                                };
                              return (
                                S && !P && (D = P = !0),
                                (x ||
                                  l["header-cell-click"] ||
                                  "cell" === C.trigger) &&
                                  (N.click = (e) =>
                                    i.triggerHeaderCellClickEvent(e, z)),
                                l["header-cell-dblclick"] &&
                                  (N.dblclick = (e) =>
                                    i.triggerHeaderCellDblclickEvent(e, z)),
                                T &&
                                  (N.mousedown = (e) =>
                                    i.triggerHeaderCellMousedownEvent(e, z)),
                                e(
                                  "th",
                                  {
                                    class: [
                                      "vxe-header--column",
                                      r.id,
                                      {
                                        [`col--${L}`]: L,
                                        [`col--${h}`]: h,
                                        "col--last": a === t.length - 1,
                                        "col--fixed": r.fixed,
                                        "col--group": $,
                                        "col--ellipsis": P,
                                        "fixed--hidden": R,
                                        "is--sortable": r.sortable,
                                        "is--filter": !!r.filters,
                                        "filter--active": B,
                                        "col--current": w === r,
                                      },
                                      g.getClass(O, z),
                                      g.getClass(f, z),
                                    ],
                                    attrs: {
                                      colid: r.id,
                                      colspan: r.colSpan > 1 ? r.colSpan : null,
                                      rowspan: r.rowSpan > 1 ? r.rowSpan : null,
                                    },
                                    style: v
                                      ? n.a.isFunction(v)
                                        ? v(z)
                                        : v
                                      : null,
                                    on: N,
                                    key: u || $ ? r.id : a,
                                  },
                                  [
                                    e(
                                      "div",
                                      {
                                        class: [
                                          "vxe-cell",
                                          {
                                            "c--title": I,
                                            "c--tooltip": M,
                                            "c--ellipsis": D,
                                          },
                                        ],
                                      },
                                      r.renderHeader(e, z)
                                    ),
                                    !R &&
                                    !$ &&
                                    (n.a.isBoolean(r.resizable)
                                      ? r.resizable
                                      : c)
                                      ? e("div", {
                                          class: [
                                            "vxe-resizable",
                                            { "is--line": !d || "none" === d },
                                          ],
                                          on: {
                                            mousedown: (e) =>
                                              this.resizeMousedown(e, z),
                                          },
                                        })
                                      : null,
                                  ]
                                )
                              );
                            })
                            .concat(
                              k
                                ? [
                                    e("th", {
                                      class: "vxe-header--gutter col--gutter",
                                    }),
                                  ]
                                : []
                            )
                        );
                      })
                    ),
                  ]
                ),
                e("div", {
                  class: "vxe-table--header-border-line",
                  ref: "repair",
                }),
              ]
            )
          );
        },
        methods: {
          uploadColumn() {
            const e = this.$parent;
            this.headerColumn = e.isGroup ? Mn(this.tableGroupColumn) : [];
          },
          resizeMousedown(e, t) {
            const i = t.column,
              s = this.$parent,
              n = this.$el,
              o = this.fixedType,
              r = s.$refs,
              l = r.tableBody,
              a = r.leftContainer,
              h = r.rightContainer,
              c = r.resizeBar,
              d = e.target,
              u = e.clientX,
              p = (t.cell = d.parentNode);
            let f = 0;
            const m = l.$el,
              g = A.getOffsetPos(d, n),
              v = d.clientWidth,
              _ = Math.floor(v / 2),
              b = nt(t) - _;
            let y = g.left - p.clientWidth + v + b,
              x = g.left + _;
            const w = document.onmousemove,
              S = document.onmouseup,
              E = "left" === o,
              k = "right" === o;
            let C = 0;
            if (E || k) {
              const e = E ? "nextElementSibling" : "previousElementSibling";
              let t = p[e];
              while (t) {
                if (A.hasClass(t, "fixed--hidden")) break;
                A.hasClass(t, "col--group") || (C += t.offsetWidth), (t = t[e]);
              }
              k && h && (x = h.offsetLeft + C);
            }
            const T = function (e) {
              e.stopPropagation(), e.preventDefault();
              const t = e.clientX - u;
              let i = x + t;
              const s = o ? 0 : m.scrollLeft;
              E
                ? (i = Math.min(i, (h ? h.offsetLeft : m.clientWidth) - C - b))
                : k
                ? ((y = (a ? a.clientWidth : 0) + C + b),
                  (i = Math.min(i, x + p.clientWidth - b)))
                : (y = Math.max(m.scrollLeft, y)),
                (f = Math.max(i, y)),
                (c.style.left = `${f - s}px`);
            };
            (s._isResize = !0),
              A.addClass(s.$el, "drag--resize"),
              (c.style.display = "block"),
              (document.onmousemove = T),
              (document.onmouseup = function (e) {
                (document.onmousemove = w),
                  (document.onmouseup = S),
                  (i.resizeWidth = i.renderWidth + (k ? x - f : f - x)),
                  (c.style.display = "none"),
                  (s._isResize = !1),
                  (s._lastResizeTime = Date.now()),
                  s.analyColumnWidth(),
                  s.recalculate(!0).then(() => {
                    s.saveCustomResizable(),
                      s.updateCellAreas(),
                      s.emitEvent("resizable-change", t, e);
                  }),
                  A.removeClass(s.$el, "drag--resize");
              }),
              T(e),
              s.closeMenu();
          },
        },
      };
      const Bn = Object.assign(Nn, {
        install(e) {
          e.component(Nn.name, Nn);
        },
      });
      const Fn = "footer";
      function Vn(e, t, i) {
        for (let s = 0; s < e.length; s++) {
          const n = e[s],
            o = n.row,
            r = n.col,
            l = n.rowspan,
            a = n.colspan;
          if (r > -1 && o > -1 && l && a) {
            if (o === t && r === i) return { rowspan: l, colspan: a };
            if (t >= o && t < o + l && i >= r && i < r + a)
              return { rowspan: 0, colspan: 0 };
          }
        }
      }
      var zn = {
        name: "VxeTableFooter",
        props: {
          footerTableData: Array,
          tableColumn: Array,
          fixedColumn: Array,
          fixedType: String,
          size: String,
        },
        mounted() {
          const e = this.$parent,
            t = this.$el,
            i = this.$refs,
            s = this.fixedType,
            n = e.elemStore,
            o = `${s || "main"}-footer-`;
          (n[`${o}wrapper`] = t),
            (n[`${o}table`] = i.table),
            (n[`${o}colgroup`] = i.colgroup),
            (n[`${o}list`] = i.tfoot),
            (n[`${o}xSpace`] = i.xSpace);
        },
        render(e) {
          let t = this._e,
            i = this.$parent,
            s = this.fixedType,
            o = this.fixedColumn,
            r = this.tableColumn,
            l = this.footerTableData;
          const a = i.$listeners,
            h = i.tId,
            c = i.footerRowClassName,
            d = i.footerCellClassName,
            u = i.footerRowStyle,
            p = i.footerCellStyle,
            f = i.footerAlign,
            m = i.mergeFooterList,
            v = i.footerSpanMethod,
            _ = i.align,
            b = i.scrollXLoad,
            y = i.columnKey,
            x = i.showFooterOverflow,
            w = i.currentColumn,
            S = i.overflowX,
            E = i.scrollbarWidth,
            k = i.tooltipOpts;
          return (
            s && ((m.length && v) || (!b && !x) || (r = o)),
            e(
              "div",
              {
                class: [
                  "vxe-table--footer-wrapper",
                  s ? `fixed-${s}--wrapper` : "body--wrapper",
                ],
                attrs: { xid: h },
                on: { scroll: this.scrollEvent },
              },
              [
                s
                  ? t()
                  : e("div", { class: "vxe-body--x-space", ref: "xSpace" }),
                e(
                  "table",
                  {
                    class: "vxe-table--footer",
                    attrs: {
                      xid: h,
                      cellspacing: 0,
                      cellpadding: 0,
                      border: 0,
                    },
                    ref: "table",
                  },
                  [
                    e(
                      "colgroup",
                      { ref: "colgroup" },
                      r
                        .map((t, i) => {
                          return e("col", { attrs: { name: t.id }, key: i });
                        })
                        .concat(
                          E ? [e("col", { attrs: { name: "col_gutter" } })] : []
                        )
                    ),
                    e(
                      "tfoot",
                      { ref: "tfoot" },
                      l.map((t, o) => {
                        const h = o;
                        return e(
                          "tr",
                          {
                            class: [
                              "vxe-footer--row",
                              c
                                ? n.a.isFunction(c)
                                  ? c({
                                      $table: i,
                                      _rowIndex: o,
                                      $rowIndex: h,
                                      fixed: s,
                                      type: Fn,
                                    })
                                  : c
                                : "",
                            ],
                            style: u
                              ? n.a.isFunction(u)
                                ? u({
                                    $table: i,
                                    _rowIndex: o,
                                    $rowIndex: h,
                                    fixed: s,
                                    type: Fn,
                                  })
                                : u
                              : null,
                          },
                          r
                            .map((c, u) => {
                              const E = c.type,
                                C = c.showFooterOverflow,
                                T = c.footerAlign,
                                O = c.align,
                                $ = c.footerClassName,
                                R = k.showAll || k.enabled,
                                L = c.children && c.children.length,
                                D = s ? c.fixed !== s && !L : c.fixed && S,
                                I = n.a.isUndefined(C) || n.a.isNull(C) ? x : C,
                                M = T || O || f || _;
                              let P = "ellipsis" === I;
                              const N = "title" === I,
                                B = !0 === I || "tooltip" === I;
                              let F = N || B || P;
                              const V = { colid: c.id },
                                z = {},
                                j = i.getColumnIndex(c),
                                H = i.getVTColumnIndex(c),
                                U = H,
                                W = {
                                  $table: i,
                                  _rowIndex: o,
                                  $rowIndex: h,
                                  column: c,
                                  columnIndex: j,
                                  $columnIndex: u,
                                  _columnIndex: H,
                                  itemIndex: U,
                                  items: t,
                                  fixed: s,
                                  type: Fn,
                                  data: l,
                                };
                              if (
                                (b && !F && (P = F = !0),
                                (N || B || R) &&
                                  (z.mouseenter = (e) => {
                                    N
                                      ? A.updateCellTitle(e.currentTarget, c)
                                      : (B || R) &&
                                        i.triggerFooterTooltipEvent(e, W);
                                  }),
                                (B || R) &&
                                  (z.mouseleave = (e) => {
                                    (B || R) && i.handleTargetLeaveEvent(e);
                                  }),
                                a["footer-cell-click"] &&
                                  (z.click = (e) => {
                                    i.emitEvent(
                                      "footer-cell-click",
                                      Object.assign(
                                        { cell: e.currentTarget },
                                        W
                                      ),
                                      e
                                    );
                                  }),
                                a["footer-cell-dblclick"] &&
                                  (z.dblclick = (e) => {
                                    i.emitEvent(
                                      "footer-cell-dblclick",
                                      Object.assign(
                                        { cell: e.currentTarget },
                                        W
                                      ),
                                      e
                                    );
                                  }),
                                m.length)
                              ) {
                                const e = Vn(m, o, H);
                                if (e) {
                                  const t = e.rowspan,
                                    i = e.colspan;
                                  if (!t || !i) return null;
                                  t > 1 && (V.rowspan = t),
                                    i > 1 && (V.colspan = i);
                                }
                              } else if (v) {
                                const e = v(W) || {},
                                  t = e.rowspan,
                                  i = void 0 === t ? 1 : t,
                                  s = e.colspan,
                                  n = void 0 === s ? 1 : s;
                                if (!i || !n) return null;
                                i > 1 && (V.rowspan = i),
                                  n > 1 && (V.colspan = n);
                              }
                              return e(
                                "td",
                                {
                                  class: [
                                    "vxe-footer--column",
                                    c.id,
                                    {
                                      [`col--${M}`]: M,
                                      [`col--${E}`]: E,
                                      "col--last": u === r.length - 1,
                                      "fixed--hidden": D,
                                      "col--ellipsis": F,
                                      "col--current": w === c,
                                    },
                                    g.getClass($, W),
                                    g.getClass(d, W),
                                  ],
                                  attrs: V,
                                  style: p
                                    ? n.a.isFunction(p)
                                      ? p(W)
                                      : p
                                    : null,
                                  on: z,
                                  key: y ? c.id : u,
                                },
                                [
                                  e(
                                    "div",
                                    {
                                      class: [
                                        "vxe-cell",
                                        {
                                          "c--title": N,
                                          "c--tooltip": B,
                                          "c--ellipsis": P,
                                        },
                                      ],
                                    },
                                    c.renderFooter(e, W)
                                  ),
                                ]
                              );
                            })
                            .concat(
                              E
                                ? [
                                    e("td", {
                                      class: "vxe-footer--gutter col--gutter",
                                    }),
                                  ]
                                : []
                            )
                        );
                      })
                    ),
                  ]
                ),
              ]
            )
          );
        },
        methods: {
          scrollEvent(e) {
            const t = this.$parent,
              i = this.fixedType,
              s = t.$refs,
              n = t.scrollXLoad,
              o = t.triggerScrollXEvent,
              r = t.lastScrollLeft,
              l = s.tableHeader,
              a = s.tableBody,
              h = s.tableFooter,
              c = s.validTip,
              d = l ? l.$el : null,
              u = h ? h.$el : null,
              p = a.$el,
              f = u ? u.scrollLeft : 0,
              m = f !== r;
            (t.lastScrollLeft = f),
              (t.lastScrollTime = Date.now()),
              d && (d.scrollLeft = f),
              p && (p.scrollLeft = f),
              n && m && o(e),
              m && c && c.visible && c.updatePlacement(),
              t.emitEvent(
                "scroll",
                {
                  type: Fn,
                  fixed: i,
                  scrollTop: p.scrollTop,
                  scrollLeft: f,
                  isX: m,
                  isY: !1,
                },
                e
              );
          },
        },
      };
      const jn = Object.assign(zn, {
        install(e) {
          e.component(zn.name, zn);
        },
      });
      const Hn = {
          colId: [String, Number],
          type: String,
          field: String,
          title: String,
          width: [Number, String],
          minWidth: [Number, String],
          resizable: { type: Boolean, default: null },
          fixed: String,
          align: { type: String, default: "center" },
          headerAlign: String,
          footerAlign: String,
          showOverflow: { type: [Boolean, String], default: null },
          showHeaderOverflow: { type: [Boolean, String], default: null },
          showFooterOverflow: { type: [Boolean, String], default: null },
          className: [String, Function],
          headerClassName: [String, Function],
          footerClassName: [String, Function],
          formatter: [Function, Array, String],
          sortable: { type: Boolean, default: !0 },
          remoteSort: { type: Boolean, default: null },
          sortBy: [String, Function],
          sortType: String,
          sortMethod: Function,
          filters: { type: Array, default: null },
          filterMultiple: { type: Boolean, default: !0 },
          filterMethod: Function,
          filterResetMethod: Function,
          filterRecoverMethod: Function,
          filterRender: Object,
          treeNode: Boolean,
          visible: { type: Boolean, default: null },
          exportMethod: Function,
          footerExportMethod: Function,
          titleHelp: Object,
          cellType: String,
          cellRender: Object,
          editRender: Object,
          contentRender: Object,
          params: Object,
          sortByFormatter: { type: Boolean, default: !0 },
        },
        Un = {};
      Object.keys(Hn).forEach((e) => {
        Un[e] = function (t) {
          this.columnConfig.update(e, t);
        };
      });
      var Wn = {
        name: "VxeColumn",
        props: Hn,
        provide() {
          return { $xecolumn: this, $xegrid: null };
        },
        inject: { $xetable: { default: null }, $xecolumn: { default: null } },
        watch: Un,
        created() {
          this.columnConfig = this.createColumn(this.$xetable, this);
        },
        mounted() {
          g.assemColumn(this);
        },
        destroyed() {
          g.destroyColumn(this);
        },
        render(e) {
          return e("div", this.$slots.default);
        },
        methods: Ot,
      };
      const Gn = Object.assign(Wn, {
        install(e) {
          e.component(Wn.name, Wn), e.component("VxeTableColumn", Wn);
        },
      });
      var Zn = {
        name: "VxeColgroup",
        extends: Wn,
        provide() {
          return { xecolgroup: this, $xegrid: null };
        },
      };
      const Yn = Object.assign(Zn, {
        install(e) {
          e.component(Zn.name, Zn), e.component("VxeTableColgroup", Zn);
        },
      });
      function qn(e, t) {
        var i = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
          var s = Object.getOwnPropertySymbols(e);
          t &&
            (s = s.filter(function (t) {
              return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })),
            i.push.apply(i, s);
        }
        return i;
      }
      function Xn(e) {
        for (var t = 1; t < arguments.length; t++) {
          var i = null != arguments[t] ? arguments[t] : {};
          t % 2
            ? qn(i, !0).forEach(function (t) {
                Object(yt["a"])(e, t, i[t]);
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i))
            : qn(i).forEach(function (t) {
                Object.defineProperty(
                  e,
                  t,
                  Object.getOwnPropertyDescriptor(i, t)
                );
              });
        }
        return e;
      }
      const Kn = {},
        Jn = Object.keys(ui.props);
      function Qn(e, t) {
        const i = t.$scopedSlots,
          s = t.proxyConfig,
          o = t.proxyOpts,
          r = t.formData,
          l = t.formConfig,
          a = t.formOpts;
        if (p(l) && a.items && a.items.length) {
          const l = {};
          if (!a.inited) {
            a.inited = !0;
            const e = o.beforeItem;
            o &&
              e &&
              a.items.forEach((i) => {
                e.call(t, { $grid: t, item: i });
              });
          }
          return (
            a.items.forEach((e) => {
              n.a.each(e.slots, (e) => {
                n.a.isFunction(e) || (i[e] && (l[e] = i[e]));
              });
            }),
            [
              e("vxe-form", {
                props: Object.assign({}, a, { data: s && o.form ? r : a.data }),
                on: {
                  submit: t.submitEvent,
                  reset: t.resetEvent,
                  "submit-invalid": t.submitInvalidEvent,
                  "toggle-collapse": t.togglCollapseEvent,
                },
                scopedSlots: l,
              }),
            ]
          );
        }
        return [];
      }
      function eo(e, t, i) {
        const s = e.$scopedSlots,
          o = t[i];
        if (o) {
          if (!n.a.isString(o)) return o;
          if (s[o]) return s[o];
          "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV && g.error("vxe.error.notSlot", [o]);
        }
        return null;
      }
      function to(e) {
        const t = e.$scopedSlots,
          i = e.toolbarOpts,
          s = i.slots;
        let n, o;
        const r = {};
        return (
          "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV &&
            (!t.buttons ||
              (s && "buttons" === s.buttons) ||
              g.warn("vxe.error.reqProp", ["toolbar-config.slots.buttons"]),
            !t.tools ||
              (s && "tools" === s.tools) ||
              g.warn("vxe.error.reqProp", ["toolbar-config.slots.tools"])),
          s &&
            ((n = eo(e, s, "buttons")),
            (o = eo(e, s, "tools")),
            n && (r.buttons = n),
            o && (r.tools = o)),
          r
        );
      }
      function io(e) {
        const t = e.pagerOpts,
          i = t.slots,
          s = {};
        let n, o;
        return (
          i &&
            ((n = eo(e, i, "left")),
            (o = eo(e, i, "right")),
            n && (s.left = n),
            o && (s.right = o)),
          s
        );
      }
      function so(e) {
        const t = e.$listeners,
          i = e.proxyConfig,
          s = e.proxyOpts,
          o = {};
        return (
          n.a.each(t, (t, i) => {
            o[i] = function () {
              for (
                var t = arguments.length, s = new Array(t), n = 0;
                n < t;
                n++
              )
                s[n] = arguments[n];
              e.$emit(i, ...s);
            };
          }),
          i &&
            (s.sort && (o["sort-change"] = e.sortChangeEvent),
            s.filter && (o["filter-change"] = e.filterChangeEvent)),
          o
        );
      }
      Object.keys(ui.methods).forEach((e) => {
        Kn[e] = function () {
          return this.$refs.xTable && this.$refs.xTable[e](...arguments);
        };
      });
      var no = {
        name: "VxeGrid",
        mixins: [bt],
        props: Xn({}, ui.props, {
          columns: Array,
          pagerConfig: [Boolean, Object],
          proxyConfig: Object,
          toolbar: [Boolean, Object],
          toolbarConfig: [Boolean, Object],
          formConfig: [Boolean, Object],
          zoomConfig: Object,
          size: { type: String, default: () => r.grid.size || r.size },
        }),
        provide() {
          return { $xegrid: this };
        },
        data() {
          return {
            tableLoading: !1,
            isZMax: !1,
            tableData: [],
            pendingRecords: [],
            filterData: [],
            formData: {},
            sortData: [],
            tZindex: 0,
            tablePage: { total: 0, pageSize: 10, currentPage: 1 },
          };
        },
        computed: {
          isMsg() {
            return !1 !== this.proxyOpts.message;
          },
          proxyOpts() {
            return Object.assign({}, r.grid.proxyConfig, this.proxyConfig);
          },
          pagerOpts() {
            return Object.assign({}, r.grid.pagerConfig, this.pagerConfig);
          },
          formOpts() {
            return Object.assign({}, r.grid.formConfig, this.formConfig);
          },
          toolbarOpts() {
            return Object.assign(
              {},
              r.grid.toolbarConfig,
              this.toolbarConfig || this.toolbar
            );
          },
          zoomOpts() {
            return Object.assign({}, r.grid.zoomConfig, this.zoomConfig);
          },
          renderStyle() {
            return this.isZMax
              ? { zIndex: this.tZindex, height: "100%" }
              : { height: "100%" };
          },
          tableExtendProps() {
            const e = {};
            return (
              Jn.forEach((t) => {
                e[t] = this[t];
              }),
              e
            );
          },
          tableProps() {
            const e = this.isZMax,
              t = this.seqConfig,
              i = this.pagerConfig,
              s = this.loading,
              n = this.editConfig,
              o = this.proxyConfig,
              r = this.proxyOpts,
              l = this.tableExtendProps,
              a = this.tableLoading,
              h = this.tablePage,
              c = this.tableData,
              d = Object.assign({}, l);
            return (
              e && (l.maxHeight ? (d.maxHeight = "auto") : (d.height = "auto")),
              o &&
                ((d.loading = s || a),
                (d.data = c),
                (d.rowClassName = this.handleRowClassName),
                r.seq &&
                  p(i) &&
                  (d.seqConfig = Object.assign({}, t, {
                    startIndex: (h.currentPage - 1) * h.pageSize,
                  }))),
              n &&
                (d.editConfig = Object.assign({}, n, {
                  activeMethod: this.handleActiveMethod,
                })),
              d
            );
          },
        },
        watch: {
          columns(e) {
            this.$nextTick(() => this.loadColumn(e));
          },
          toolbar(e) {
            e && this.initToolbar();
          },
          toolbarConfig(e) {
            e && this.initToolbar();
          },
          proxyConfig() {
            this.initProxy();
          },
          pagerConfig() {
            this.initPages();
          },
        },
        created() {
          const e = this.data,
            t = this.formOpts,
            i = this.proxyOpts,
            s = this.proxyConfig;
          s &&
            (e || (i.form && t.data)) &&
            console.error(
              "[vxe-grid] There is a conflict between the props proxy-config and data."
            ),
            "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV &&
              (this.toolbar &&
                g.warn("vxe.error.delProp", [
                  "grid.toolbar",
                  "grid.toolbar-config",
                ]),
              this.toolbarConfig &&
                !n.a.isObject(this.toolbarConfig) &&
                g.warn("vxe.error.errProp", [
                  `grid.toolbar-config=${this.toolbarConfig}`,
                  "grid.toolbar-config={}",
                ])),
            M.on(this, "keydown", this.handleGlobalKeydownEvent);
        },
        mounted() {
          this.columns && this.columns.length && this.loadColumn(this.columns),
            this.initToolbar(),
            this.initPages(),
            this.initProxy();
        },
        destroyed() {
          M.off(this, "keydown");
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.vSize,
            s = this.isZMax,
            n = !(!t.form && !p(this.formConfig)),
            o = !!(t.toolbar || p(this.toolbarConfig) || this.toolbar),
            r = !(!t.pager && !p(this.pagerConfig));
          return e(
            "div",
            {
              class: [
                "vxe-grid",
                {
                  [`size--${i}`]: i,
                  "is--animat": !!this.animat,
                  "is--round": this.round,
                  "is--maximize": s,
                  "is--loading": this.loading || this.tableLoading,
                },
              ],
              style: this.renderStyle,
            },
            [
              n
                ? e(
                    "div",
                    { ref: "formWrapper", class: "vxe-grid--form-wrapper" },
                    t.form ? t.form.call(this, { $grid: this }, e) : Qn(e, this)
                  )
                : null,
              o
                ? e(
                    "div",
                    {
                      ref: "toolbarWrapper",
                      class: "vxe-grid--toolbar-wrapper",
                    },
                    t.toolbar
                      ? t.toolbar.call(this, { $grid: this }, e)
                      : [
                          e("vxe-toolbar", {
                            props: this.toolbarOpts,
                            ref: "xToolbar",
                            scopedSlots: to(this),
                          }),
                        ]
                  )
                : null,
              t.top
                ? e(
                    "div",
                    { ref: "topWrapper", class: "vxe-grid--top-wrapper" },
                    t.top.call(this, { $grid: this }, e)
                  )
                : null,
              e("vxe-table", {
                props: this.tableProps,
                on: so(this),
                scopedSlots: t,
                ref: "xTable",
              }),
              t.bottom
                ? e(
                    "div",
                    { ref: "bottomWrapper", class: "vxe-grid--bottom-wrapper" },
                    t.bottom.call(this, { $grid: this }, e)
                  )
                : null,
              r
                ? e(
                    "div",
                    { ref: "pagerWrapper", class: "vxe-grid--pager-wrapper" },
                    t.pager
                      ? t.pager.call(this, { $grid: this }, e)
                      : [
                          e("vxe-pager", {
                            props: Xn(
                              {},
                              this.pagerOpts,
                              {},
                              this.proxyConfig ? this.tablePage : {}
                            ),
                            on: { "page-change": this.pageChangeEvent },
                            scopedSlots: io(this),
                          }),
                        ]
                  )
                : null,
            ]
          );
        },
        methods: Xn(
          {},
          Kn,
          {
            callSlot(e, t, i, s) {
              if (e) {
                const o = this.$scopedSlots;
                if ((n.a.isString(e) && (e = o[e] || null), n.a.isFunction(e)))
                  return e.call(this, t, i, s);
              }
              return [];
            },
            getParentHeight() {
              const e = this.$el,
                t = this.isZMax;
              return (
                (t
                  ? A.getDomNode().visibleHeight
                  : n.a.toNumber(getComputedStyle(e.parentNode).height)) -
                this.getExcludeHeight()
              );
            },
            getExcludeHeight() {
              const e = this.$refs,
                t = this.$el,
                i = this.isZMax,
                s = this.height,
                n = e.formWrapper,
                o = e.toolbarWrapper,
                r = e.topWrapper,
                l = e.bottomWrapper,
                a = e.pagerWrapper,
                h = i || "auto" !== s ? 0 : O(t.parentNode);
              return h + O(t) + T(n) + T(o) + T(r) + T(l) + T(a);
            },
            handleRowClassName(e) {
              const t = this.rowClassName,
                i = [];
              return (
                this.pendingRecords.some((t) => t === e.row) &&
                  i.push("row--pending"),
                i.push(t ? (n.a.isFunction(t) ? t(e) : t) : ""),
                i
              );
            },
            handleActiveMethod(e) {
              const t = this.editConfig,
                i = t ? t.activeMethod : null;
              return -1 === this.pendingRecords.indexOf(e.row) && (!i || i(e));
            },
            initToolbar() {
              this.$nextTick(() => {
                const e = this.$refs,
                  t = e.xTable,
                  i = e.xToolbar;
                t && i && t.connect(i);
              });
            },
            initPages() {
              const e = this.tablePage,
                t = this.pagerConfig,
                i = this.pagerOpts,
                s = i.currentPage,
                n = i.pageSize;
              t && (s && (e.currentPage = s), n && (e.pageSize = n));
            },
            initProxy() {
              const e = this.proxyInited,
                t = this.proxyConfig,
                i = this.proxyOpts,
                s = this.formConfig,
                o = this.formOpts;
              if (t) {
                if (p(s) && i.form && o.items) {
                  const e = {};
                  o.items.forEach((t) => {
                    let i = t.field,
                      s = t.itemRender;
                    i &&
                      (e[i] =
                        s && !n.a.isUndefined(s.defaultValue)
                          ? s.defaultValue
                          : void 0);
                  }),
                    (this.formData = e);
                }
                e ||
                  !1 === i.autoLoad ||
                  ((this.proxyInited = !0),
                  this.$nextTick(() => this.commitProxy("_init")));
              }
            },
            handleGlobalKeydownEvent(e) {
              const t = 27 === e.keyCode;
              t &&
                this.isZMax &&
                !1 !== this.zoomOpts.escRestore &&
                this.triggerZoomEvent(e);
            },
            commitProxy(e) {
              const t = this.$refs,
                i = this.toolbar,
                s = this.toolbarConfig,
                o = this.toolbarOpts,
                l = this.proxyOpts,
                a = this.tablePage,
                h = this.pagerConfig,
                c = this.formData,
                d = this.isMsg,
                u = l.beforeQuery,
                f = l.afterQuery,
                m = l.beforeDelete,
                v = l.afterDelete,
                _ = l.beforeSave,
                b = l.afterSave,
                y = l.ajax,
                x = void 0 === y ? {} : y,
                w = l.props,
                S = void 0 === w ? {} : w,
                E = t.xTable;
              let k, C;
              if (n.a.isString(e)) {
                const t =
                  s || i
                    ? n.a.findTree(o.buttons, (t) => t.code === e, {
                        children: "dropdowns",
                      })
                    : null;
                (C = e), (k = t ? t.item : null);
              } else (k = e), (C = k.code);
              const T = k ? k.params : null;
              for (
                var O = arguments.length,
                  $ = new Array(O > 1 ? O - 1 : 0),
                  R = 1;
                R < O;
                R++
              )
                $[R - 1] = arguments[R];
              switch (C) {
                case "insert":
                  this.insert();
                  break;
                case "insert_actived":
                  this.insert().then((e) => {
                    let t = e.row;
                    return this.setActiveRow(t);
                  });
                  break;
                case "mark_cancel":
                  this.triggerPendingEvent(C);
                  break;
                case "remove":
                  return this.handleDeleteRow(
                    C,
                    "vxe.grid.removeSelectRecord",
                    () => this.removeCheckboxRow()
                  );
                case "import":
                  this.importData(T);
                  break;
                case "open_import":
                  this.openImport(T);
                  break;
                case "export":
                  this.exportData(T);
                  break;
                case "open_export":
                  this.openExport(T);
                  break;
                case "reset_custom":
                  this.resetColumn(!0);
                  break;
                case "_init":
                case "reload":
                case "query": {
                  const e = x.query;
                  if (e) {
                    const t = "_init" === C,
                      i = "reload" === C;
                    let s = [],
                      o = [],
                      r = {};
                    if (
                      (h &&
                        ((t || i) && (a.currentPage = 1),
                        p(h) && (r = Xn({}, a))),
                      t)
                    ) {
                      const e = E.sortOpts;
                      let t = e.defaultSort;
                      t &&
                        (n.a.isArray(t) || (t = [t]),
                        (s = t.map((e) => {
                          return { property: e.field, order: e.order };
                        }))),
                        (o = E.getCheckedFilters());
                    } else
                      i
                        ? ((this.pendingRecords = []), E.clearAll())
                        : ((s = E.getSortColumns()),
                          (o = E.getCheckedFilters()));
                    const l = {
                      code: C,
                      button: k,
                      $grid: this,
                      page: r,
                      sort: s.length ? s[0] : {},
                      sorts: s,
                      filters: o,
                      form: c,
                      options: e,
                    };
                    (this.sortData = s),
                      (this.filterData = o),
                      (this.tableLoading = !0);
                    const d = [l].concat($);
                    return Promise.resolve((u || e)(...d))
                      .catch((e) => e)
                      .then((e) => {
                        if (((this.tableLoading = !1), e))
                          if (p(h)) {
                            const t = n.a.get(e, S.total || "page.total") || 0;
                            (a.total = t),
                              (this.tableData =
                                n.a.get(e, S.result || "result") || []);
                            const i = Math.max(Math.ceil(t / a.pageSize), 1);
                            a.currentPage > i && (a.currentPage = i);
                          } else
                            this.tableData =
                              (S.list ? n.a.get(e, S.list) : e) || [];
                        else this.tableData = [];
                        f && f(...d);
                      });
                  }
                  g.error("vxe.error.notFunc", ["query"]);
                  break;
                }
                case "delete": {
                  const e = x.delete;
                  if (e) {
                    const t = this.getCheckboxRecords(),
                      i = { removeRecords: t },
                      s = [
                        {
                          $grid: this,
                          code: C,
                          button: k,
                          body: i,
                          options: e,
                        },
                      ].concat($);
                    if (t.length)
                      return this.handleDeleteRow(
                        C,
                        "vxe.grid.deleteSelectRecord",
                        () => {
                          return (
                            (this.tableLoading = !0),
                            Promise.resolve((m || e)(...s))
                              .then((e) => {
                                (this.tableLoading = !1),
                                  (this.pendingRecords =
                                    this.pendingRecords.filter(
                                      (e) => -1 === t.indexOf(e)
                                    )),
                                  d &&
                                    Ke.modal.message({
                                      content: this.getRespMsg(
                                        e,
                                        "vxe.grid.delSuccess"
                                      ),
                                      status: "success",
                                    }),
                                  v ? v(...s) : this.commitProxy("query");
                              })
                              .catch((e) => {
                                (this.tableLoading = !1),
                                  d &&
                                    Ke.modal.message({
                                      id: C,
                                      content: this.getRespMsg(
                                        e,
                                        "vxe.grid.operError"
                                      ),
                                      status: "error",
                                    });
                              })
                          );
                        }
                      );
                    d &&
                      Ke.modal.message({
                        id: C,
                        content: r.i18n("vxe.grid.selectOneRecord"),
                        status: "warning",
                      });
                  } else g.error("vxe.error.notFunc", [C]);
                  break;
                }
                case "save": {
                  const e = x.save;
                  if (e) {
                    const t = Object.assign(
                        { pendingRecords: this.pendingRecords },
                        this.getRecordset()
                      ),
                      i = t.insertRecords,
                      s = t.removeRecords,
                      n = t.updateRecords,
                      o = t.pendingRecords,
                      l = [
                        {
                          $grid: this,
                          code: C,
                          button: k,
                          body: t,
                          options: e,
                        },
                      ].concat($);
                    return (
                      i.length &&
                        (t.pendingRecords = o.filter(
                          (e) => -1 === i.indexOf(e)
                        )),
                      o.length &&
                        (t.insertRecords = i.filter(
                          (e) => -1 === o.indexOf(e)
                        )),
                      this.validate(t.insertRecords.concat(n))
                        .then(() => {
                          if (
                            t.insertRecords.length ||
                            s.length ||
                            n.length ||
                            t.pendingRecords.length
                          )
                            return (
                              (this.tableLoading = !0),
                              Promise.resolve((_ || e)(...l))
                                .then((e) => {
                                  (this.tableLoading = !1),
                                    (this.pendingRecords = []),
                                    d &&
                                      Ke.modal.message({
                                        content: this.getRespMsg(
                                          e,
                                          "vxe.grid.saveSuccess"
                                        ),
                                        status: "success",
                                      }),
                                    b ? b(...l) : this.commitProxy("query");
                                })
                                .catch((e) => {
                                  (this.tableLoading = !1),
                                    d &&
                                      Ke.modal.message({
                                        id: C,
                                        content: this.getRespMsg(
                                          e,
                                          "vxe.grid.operError"
                                        ),
                                        status: "error",
                                      });
                                })
                            );
                          d &&
                            Ke.modal.message({
                              id: C,
                              content: r.i18n("vxe.grid.dataUnchanged"),
                              status: "info",
                            });
                        })
                        .catch((e) => e)
                    );
                  }
                  g.error("vxe.error.notFunc", [C]);
                  break;
                }
                default: {
                  const e = Ke.commands.get(C);
                  e && e({ code: C, button: k, $grid: this, $table: E }, ...$);
                }
              }
              return this.$nextTick();
            },
            getRespMsg(e, t) {
              const i = this.proxyOpts.props,
                s = void 0 === i ? {} : i;
              let o;
              return (
                e && s.message && (o = n.a.get(e, s.message)), o || r.i18n(t)
              );
            },
            handleDeleteRow(e, t, i) {
              const s = this.getCheckboxRecords();
              if (this.isMsg) {
                if (s.length)
                  return Ke.modal
                    .confirm({
                      id: `cfm_${e}`,
                      content: r.i18n(t),
                      escClosable: !0,
                    })
                    .then((e) => {
                      "confirm" === e && i();
                    });
                Ke.modal.message({
                  id: `msg_${e}`,
                  content: r.i18n("vxe.grid.selectOneRecord"),
                  status: "warning",
                });
              } else s.length && i();
              return Promise.resolve();
            },
            getFormItems(e) {
              const t = this.formConfig,
                i = this.formOpts,
                s = [];
              return (
                n.a.eachTree(
                  p(t) && i.items ? i.items : [],
                  (e) => {
                    s.push(e);
                  },
                  { children: "children" }
                ),
                n.a.isUndefined(e) ? s : s[e]
              );
            },
            getPendingRecords() {
              return this.pendingRecords;
            },
            triggerToolbarBtnEvent(e, t) {
              this.commitProxy(e, t),
                this.$emit("toolbar-button-click", {
                  code: e.code,
                  button: e,
                  $grid: this,
                  $event: t,
                });
            },
            triggerToolbarTolEvent(e, t) {
              this.commitProxy(e, t),
                this.$emit("toolbar-tool-click", {
                  code: e.code,
                  tool: e,
                  $grid: this,
                  $event: t,
                });
            },
            triggerPendingEvent(e) {
              const t = this.pendingRecords,
                i = this.isMsg,
                s = this.getCheckboxRecords();
              if (s.length) {
                const e = [],
                  i = [];
                s.forEach((s) => {
                  t.some((e) => s === e) ? i.push(s) : e.push(s);
                }),
                  i.length
                    ? (this.pendingRecords = t
                        .filter((e) => -1 === i.indexOf(e))
                        .concat(e))
                    : e.length && (this.pendingRecords = t.concat(e)),
                  this.clearCheckboxRow();
              } else
                i &&
                  Ke.modal.message({
                    id: e,
                    content: r.i18n("vxe.grid.selectOneRecord"),
                    status: "warning",
                  });
            },
            pageChangeEvent(e) {
              const t = this.proxyConfig,
                i = this.tablePage,
                s = e.currentPage,
                n = e.pageSize;
              (i.currentPage = s),
                (i.pageSize = n),
                this.$emit("page-change", Object.assign({ $grid: this }, e)),
                t && this.commitProxy("query");
            },
            sortChangeEvent(e) {
              const t = e.$table,
                i = e.column,
                s = e.sortList,
                o = n.a.isBoolean(i.remoteSort)
                  ? i.remoteSort
                  : t.sortOpts.remote;
              o &&
                ((this.sortData = s),
                this.proxyConfig &&
                  ((this.tablePage.currentPage = 1),
                  this.commitProxy("query"))),
                this.$emit("sort-change", Object.assign({ $grid: this }, e));
            },
            filterChangeEvent(e) {
              const t = e.$table,
                i = e.filterList;
              t.filterOpts.remote &&
                ((this.filterData = i),
                this.proxyConfig &&
                  ((this.tablePage.currentPage = 1),
                  this.commitProxy("query"))),
                this.$emit("filter-change", Object.assign({ $grid: this }, e));
            },
            submitEvent(e) {
              const t = this.proxyConfig;
              t && this.commitProxy("reload"),
                this.$emit("form-submit", Object.assign({ $grid: this }, e));
            },
            resetEvent(e) {
              const t = this.proxyConfig;
              t && this.commitProxy("reload"),
                this.$emit("form-reset", Object.assign({ $grid: this }, e));
            },
            submitInvalidEvent(e) {
              this.$emit(
                "form-submit-invalid",
                Object.assign({ $grid: this }, e)
              );
            },
            togglCollapseEvent(e) {
              this.$nextTick(() => this.recalculate(!0)),
                this.$emit(
                  "form-toggle-collapse",
                  Object.assign({ $grid: this }, e)
                );
            },
            triggerZoomEvent(e) {
              this.zoom(),
                this.$emit("zoom", {
                  $grid: this,
                  type: this.isZMax ? "max" : "revert",
                  $event: e,
                });
            },
            zoom() {
              return this[this.isZMax ? "revert" : "maximize"]();
            },
            isMaximized() {
              return this.isZMax;
            },
            maximize() {
              return this.handleZoom(!0);
            },
            revert() {
              return this.handleZoom();
            },
            handleZoom(e) {
              const t = this.isZMax;
              return (
                (e ? !t : t) &&
                  ((this.isZMax = !t),
                  this.tZindex < g.getLastZIndex() &&
                    (this.tZindex = g.nextZIndex())),
                this.$nextTick()
                  .then(() => this.recalculate(!0))
                  .then(() => this.isZMax)
              );
            },
            getProxyInfo() {
              const e = this.sortData,
                t = this.proxyConfig;
              return t
                ? {
                    data: this.tableData,
                    filter: this.filterData,
                    form: this.formData,
                    sort: e.length ? e[0] : {},
                    sorts: e,
                    pager: this.tablePage,
                    pendingRecords: this.pendingRecords,
                  }
                : null;
            },
          },
          "development" ===
            Object({ NODE_ENV: "production", BASE_URL: "" })
              .VUE_APP_VXE_TABLE_ENV
            ? {
                loadColumn(e) {
                  const t = this.$scopedSlots;
                  return (
                    n.a.eachTree(e, (e) => {
                      e.slots &&
                        n.a.each(e.slots, (e) => {
                          n.a.isFunction(e) ||
                            t[e] ||
                            g.error("vxe.error.notSlot", [e]);
                        });
                    }),
                    this.$refs.xTable.loadColumn(e)
                  );
                },
                reloadColumn(e) {
                  return this.clearAll(), this.loadColumn(e);
                },
              }
            : null
        ),
      };
      const oo = Object.assign(no, {
        install(e) {
          (Ke.Grid = no), (Ke.GridComponent = no), e.component(no.name, no);
        },
      });
      const ro = (e, t, i, s) => {
        const n = t._e,
          o = i.dropdowns;
        return o
          ? o.map((i) => {
              return !1 === i.visible
                ? n()
                : e("vxe-button", {
                    on: {
                      click: (e) => (s ? t.btnEvent(e, i) : t.tolEvent(e, i)),
                    },
                    props: {
                      disabled: i.disabled,
                      loading: i.loading,
                      type: i.type,
                      icon: i.icon,
                      circle: i.circle,
                      round: i.round,
                      status: i.status,
                      content: i.name,
                    },
                  });
            })
          : [];
      };
      function lo(e, t) {
        const i = t._e,
          s = t.$scopedSlots,
          n = t.$xegrid,
          o = t.$xetable,
          r = t.buttons,
          l = void 0 === r ? [] : r,
          a = s.buttons;
        return a
          ? a.call(t, { $grid: n, $table: o }, e)
          : l.map((s) => {
              const r = s.dropdowns,
                l = s.buttonRender,
                a = l ? Ke.renderer.get(l.name) : null;
              if (!1 === s.visible) return i();
              if (a) {
                const i = a.renderToolbarButton || a.renderButton;
                if (i)
                  return e(
                    "span",
                    { class: "vxe-button--item" },
                    i.call(t, e, l, { $grid: n, $table: o, button: s })
                  );
              }
              return e("vxe-button", {
                on: { click: (e) => t.btnEvent(e, s) },
                props: {
                  disabled: s.disabled,
                  loading: s.loading,
                  type: s.type,
                  icon: s.icon,
                  circle: s.circle,
                  round: s.round,
                  status: s.status,
                  content: s.name,
                  destroyOnClose: s.destroyOnClose,
                  placement: s.placement,
                  transfer: s.transfer,
                },
                scopedSlots:
                  r && r.length ? { dropdowns: () => ro(e, t, s, !0) } : null,
              });
            });
      }
      function ao(e, t) {
        const i = t._e,
          s = t.$scopedSlots,
          n = t.$xegrid,
          o = t.$xetable,
          r = t.tools,
          l = void 0 === r ? [] : r,
          a = s.tools;
        return a
          ? a.call(t, { $grid: n, $table: o }, e)
          : l.map((s) => {
              const r = s.dropdowns,
                l = s.toolRender,
                a = l ? Ke.renderer.get(l.name) : null;
              if (!1 === s.visible) return i();
              if (a) {
                const i = a.renderToolbarTool;
                if (i)
                  return e(
                    "span",
                    { class: "vxe-tool--item" },
                    i.call(t, e, l, { $grid: n, $table: o, tool: s })
                  );
              }
              return e("vxe-button", {
                on: { click: (e) => t.tolEvent(e, s) },
                props: {
                  disabled: s.disabled,
                  loading: s.loading,
                  type: s.type,
                  icon: s.icon,
                  circle: s.circle,
                  round: s.round,
                  status: s.status,
                  content: s.name,
                  destroyOnClose: s.destroyOnClose,
                  placement: s.placement,
                  transfer: s.transfer,
                },
                scopedSlots:
                  r && r.length ? { dropdowns: () => ro(e, t, s, !1) } : null,
              });
            });
      }
      function ho(e, t) {
        const i = t.$xetable,
          s = t.customStore,
          o = t.customOpts,
          l = t.columns,
          a = [],
          h = {},
          c = {},
          d = i ? i.customOpts.checkMethod : null;
        return (
          "manual" === o.trigger ||
            ("hover" === o.trigger
              ? ((h.mouseenter = t.handleMouseenterSettingEvent),
                (h.mouseleave = t.handleMouseleaveSettingEvent),
                (c.mouseenter = t.handleWrapperMouseenterEvent),
                (c.mouseleave = t.handleWrapperMouseleaveEvent))
              : (h.click = t.handleClickSettingEvent)),
          n.a.eachTree(l, (i) => {
            const s = g.formatText(i.getTitle(), 1),
              n = i.getKey(),
              o = i.children && i.children.length,
              r = !!d && !d({ column: i });
            (o || n) &&
              a.push(
                e(
                  "li",
                  {
                    class: [
                      "vxe-custom--option",
                      `level--${i.level}`,
                      {
                        "is--group": o,
                        "is--checked": i.visible,
                        "is--indeterminate": i.halfVisible,
                        "is--disabled": r,
                      },
                    ],
                    attrs: { title: s },
                    on: {
                      click: () => {
                        r || t.changeCustomOption(i);
                      },
                    },
                  },
                  [
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class: "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", {
                      class:
                        "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                      style: { "--checkedColor": $_theme.color },
                    }),
                    e("span", { class: "vxe-checkbox--label" }, s),
                  ]
                )
              );
          }),
          e(
            "div",
            {
              class: ["vxe-custom--wrapper", { "is--active": s.visible }],
              ref: "customWrapper",
            },
            [
              e("vxe-button", {
                props: {
                  circle: !0,
                  icon: o.icon || r.icon.TOOLBAR_TOOLS_CUSTOM,
                },
                attrs: { title: r.i18n("vxe.toolbar.custom") },
                on: h,
              }),
              e("div", { class: "vxe-custom--option-wrapper" }, [
                e("ul", { class: "vxe-custom--header" }, [
                  e(
                    "li",
                    {
                      class: [
                        "vxe-custom--option",
                        {
                          "is--checked": s.isAll,
                          "is--indeterminate": s.isIndeterminate,
                        },
                      ],
                      attrs: { title: r.i18n("vxe.table.allTitle") },
                      on: { click: t.allCustomEvent },
                    },
                    [
                      e("span", {
                        class: "vxe-checkbox--icon vxe-checkbox--checked-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e("span", {
                        class:
                          "vxe-checkbox--icon vxe-checkbox--unchecked-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e("span", {
                        class:
                          "vxe-checkbox--icon vxe-checkbox--indeterminate-icon",
                        style: { "--checkedColor": $_theme.color },
                      }),
                      e(
                        "span",
                        { class: "vxe-checkbox--label" },
                        r.i18n("vxe.toolbar.customAll")
                      ),
                    ]
                  ),
                ]),
                e("ul", { class: "vxe-custom--body", on: c }, a),
                !1 === o.isFooter
                  ? null
                  : e("div", { class: "vxe-custom--footer" }, [
                      e(
                        "button",
                        {
                          class: "btn--confirm",
                          on: { click: t.confirmCustomEvent },
                        },
                        r.i18n("vxe.toolbar.customConfirm")
                      ),
                      e(
                        "button",
                        {
                          class: "btn--reset",
                          on: { click: t.resetCustomEvent },
                        },
                        r.i18n("vxe.toolbar.customRestore")
                      ),
                    ]),
              ]),
            ]
          )
        );
      }
      var co = {
        name: "VxeToolbar",
        mixins: [bt],
        props: {
          loading: Boolean,
          refresh: [Boolean, Object],
          import: [Boolean, Object],
          export: [Boolean, Object],
          print: [Boolean, Object],
          zoom: [Boolean, Object],
          custom: [Boolean, Object],
          buttons: { type: Array, default: () => r.toolbar.buttons },
          tools: { type: Array, default: () => r.toolbar.tools },
          perfect: { type: Boolean, default: () => r.toolbar.perfect },
          size: { type: String, default: () => r.toolbar.size || r.size },
          className: [String, Function],
        },
        inject: { $xegrid: { default: null } },
        data() {
          return {
            $xetable: null,
            isRefresh: !1,
            columns: [],
            customStore: { isAll: !1, isIndeterminate: !1, visible: !1 },
          };
        },
        computed: {
          refreshOpts() {
            return Object.assign({}, r.toolbar.refresh, this.refresh);
          },
          importOpts() {
            return Object.assign({}, r.toolbar.import, this.import);
          },
          exportOpts() {
            return Object.assign({}, r.toolbar.export, this.export);
          },
          printOpts() {
            return Object.assign({}, r.toolbar.print, this.print);
          },
          zoomOpts() {
            return Object.assign({}, r.toolbar.zoom, this.zoom);
          },
          customOpts() {
            return Object.assign({}, r.toolbar.custom, this.custom);
          },
        },
        created() {
          const e = this.refresh,
            t = this.refreshOpts;
          this.$nextTick(() => {
            const i = this.fintTable();
            !e ||
              this.$xegrid ||
              t.query ||
              g.warn("vxe.error.notFunc", ["query"]),
              i && i.connect(this),
              "development" ===
                Object({ NODE_ENV: "production", BASE_URL: "" })
                  .VUE_APP_VXE_TABLE_ENV &&
                this.buttons &&
                this.buttons.forEach((e) => {
                  const t = e.buttonRender,
                    i = t ? Ke.renderer.get(t.name) : null;
                  i &&
                    i.renderButton &&
                    g.warn("vxe.error.delFunc", [
                      "renderButton",
                      "renderToolbarButton",
                    ]);
                });
          }),
            M.on(this, "mousedown", this.handleGlobalMousedownEvent),
            M.on(this, "blur", this.handleGlobalBlurEvent);
        },
        destroyed() {
          M.off(this, "mousedown"), M.off(this, "blur");
        },
        render(e) {
          const t = this._e,
            i = this.$xegrid,
            s = this.perfect,
            o = this.loading,
            l = this.importOpts,
            a = this.exportOpts,
            h = this.refresh,
            c = this.refreshOpts,
            d = this.zoom,
            u = this.zoomOpts,
            p = this.custom,
            f = this.vSize,
            m = this.className;
          return e(
            "div",
            {
              class: [
                "vxe-toolbar",
                m ? (n.a.isFunction(m) ? m({ $toolbar: this }) : m) : "",
                { [`size--${f}`]: f, "is--perfect": s, "is--loading": o },
              ],
            },
            [
              e("div", { class: "vxe-buttons--wrapper" }, lo(e, this)),
              e("div", { class: "vxe-tools--wrapper" }, ao(e, this)),
              e("div", { class: "vxe-tools--operate" }, [
                this.import
                  ? e("vxe-button", {
                      props: {
                        circle: !0,
                        icon: l.icon || r.icon.TOOLBAR_TOOLS_IMPORT,
                      },
                      attrs: { title: r.i18n("vxe.toolbar.import") },
                      on: { click: this.importEvent },
                    })
                  : t(),
                this.export
                  ? e("vxe-button", {
                      props: {
                        circle: !0,
                        icon: a.icon || r.icon.TOOLBAR_TOOLS_EXPORT,
                      },
                      attrs: { title: r.i18n("vxe.toolbar.export") },
                      on: { click: this.exportEvent },
                    })
                  : t(),
                this.print
                  ? e("vxe-button", {
                      props: {
                        circle: !0,
                        icon: this.printOpts.icon || r.icon.TOOLBAR_TOOLS_PRINT,
                      },
                      attrs: { title: r.i18n("vxe.toolbar.print") },
                      on: { click: this.printEvent },
                    })
                  : t(),
                h
                  ? e("vxe-button", {
                      props: {
                        circle: !0,
                        icon: this.isRefresh
                          ? c.iconLoading ||
                            r.icon.TOOLBAR_TOOLS_REFRESH_LOADING
                          : c.icon || r.icon.TOOLBAR_TOOLS_REFRESH,
                      },
                      attrs: { title: r.i18n("vxe.toolbar.refresh") },
                      on: { click: this.refreshEvent },
                    })
                  : t(),
                d && i
                  ? e("vxe-button", {
                      props: {
                        circle: !0,
                        icon: i.isMaximized()
                          ? u.iconOut || r.icon.TOOLBAR_TOOLS_ZOOM_OUT
                          : u.iconIn || r.icon.TOOLBAR_TOOLS_ZOOM_IN,
                      },
                      attrs: {
                        title: r.i18n(
                          `vxe.toolbar.zoom${i.isMaximized() ? "Out" : "In"}`
                        ),
                      },
                      on: { click: i.triggerZoomEvent },
                    })
                  : t(),
                p ? ho(e, this) : t(),
              ]),
            ]
          );
        },
        methods: {
          syncUpdate(e) {
            const t = e.collectColumn,
              i = e.$table;
            (this.$xetable = i), (this.columns = t);
          },
          fintTable() {
            const e = this.$parent.$children,
              t = e.indexOf(this);
            return n.a.find(
              e,
              (e, i) =>
                e &&
                e.loadData &&
                i > t &&
                "vxe-table" === e.$vnode.componentOptions.tag
            );
          },
          checkTable() {
            if (this.$xetable) return !0;
            g.error("vxe.error.barUnableLink");
          },
          showCustom() {
            (this.customStore.visible = !0), this.checkCustomStatus();
          },
          closeCustom() {
            const e = this.custom,
              t = this.customStore;
            t.visible &&
              ((t.visible = !1), e && !t.immediate && this.handleTableCustom());
          },
          confirmCustomEvent(e) {
            this.closeCustom(), this.emitCustomEvent("confirm", e);
          },
          customOpenEvent(e) {
            const t = this.customStore;
            this.checkTable() &&
              (t.visible ||
                (this.showCustom(), this.emitCustomEvent("open", e)));
          },
          customColseEvent(e) {
            const t = this.customStore;
            t.visible && (this.closeCustom(), this.emitCustomEvent("close", e));
          },
          resetCustomEvent(e) {
            const t = this.$xetable,
              i = this.columns,
              s = t.customOpts.checkMethod;
            n.a.eachTree(i, (e) => {
              (s && !s({ column: e })) ||
                ((e.visible = e.defaultVisible), (e.halfVisible = !1)),
                (e.resizeWidth = 0);
            }),
              t.saveCustomResizable(!0),
              this.closeCustom(),
              this.emitCustomEvent("reset", e);
          },
          emitCustomEvent(e, t) {
            const i = this.$xetable,
              s = this.$xegrid,
              n = s || i;
            n.$emit("custom", { type: e, $table: i, $grid: s, $event: t });
          },
          changeCustomOption(e) {
            const t = !e.visible;
            n.a.eachTree([e], (e) => {
              (e.visible = t), (e.halfVisible = !1);
            }),
              this.handleOptionCheck(e),
              this.custom &&
                this.customOpts.immediate &&
                this.handleTableCustom(),
              this.checkCustomStatus();
          },
          handleOptionCheck(e) {
            const t = n.a.findTree(this.columns, (t) => t === e);
            if (t && t.parent) {
              const e = t.parent;
              e.children &&
                e.children.length &&
                ((e.visible = e.children.every((e) => e.visible)),
                (e.halfVisible =
                  !e.visible &&
                  e.children.some((e) => e.visible || e.halfVisible)),
                this.handleOptionCheck(e));
            }
          },
          handleTableCustom() {
            const e = this.$xetable;
            e.handleCustom();
          },
          checkCustomStatus() {
            const e = this.$xetable,
              t = this.columns,
              i = e.customOpts.checkMethod;
            (this.customStore.isAll = t.every(
              (e) => (!!i && !i({ column: e })) || e.visible
            )),
              (this.customStore.isIndeterminate =
                !this.customStore.isAll &&
                t.some(
                  (e) =>
                    (!i || i({ column: e })) && (e.visible || e.halfVisible)
                ));
          },
          allCustomEvent() {
            const e = this.$xetable,
              t = this.columns,
              i = this.customStore,
              s = e.customOpts.checkMethod,
              o = !i.isAll;
            n.a.eachTree(t, (e) => {
              (s && !s({ column: e })) ||
                ((e.visible = o), (e.halfVisible = !1));
            }),
              (i.isAll = o),
              this.checkCustomStatus();
          },
          handleGlobalMousedownEvent(e) {
            A.getEventTargetNode(e, this.$refs.customWrapper).flag ||
              this.customColseEvent(e);
          },
          handleGlobalBlurEvent(e) {
            this.customColseEvent(e);
          },
          handleClickSettingEvent(e) {
            this.customStore.visible
              ? this.customColseEvent(e)
              : this.customOpenEvent(e);
          },
          handleMouseenterSettingEvent(e) {
            (this.customStore.activeBtn = !0), this.customOpenEvent(e);
          },
          handleMouseleaveSettingEvent(e) {
            const t = this.customStore;
            (t.activeBtn = !1),
              setTimeout(() => {
                t.activeBtn || t.activeWrapper || this.customColseEvent(e);
              }, 300);
          },
          handleWrapperMouseenterEvent(e) {
            (this.customStore.activeWrapper = !0), this.customOpenEvent(e);
          },
          handleWrapperMouseleaveEvent(e) {
            const t = this.customStore;
            (t.activeWrapper = !1),
              setTimeout(() => {
                t.activeBtn || t.activeWrapper || this.customColseEvent(e);
              }, 300);
          },
          refreshEvent() {
            const e = this.$xegrid,
              t = this.refreshOpts,
              i = this.isRefresh;
            if (!i)
              if (t.query) {
                this.isRefresh = !0;
                try {
                  Promise.resolve(t.query())
                    .catch((e) => e)
                    .then(() => {
                      this.isRefresh = !1;
                    });
                } catch (s) {
                  this.isRefresh = !1;
                }
              } else
                e &&
                  ((this.isRefresh = !0),
                  e
                    .commitProxy("reload")
                    .catch((e) => e)
                    .then(() => {
                      this.isRefresh = !1;
                    }));
          },
          btnEvent(e, t) {
            const i = this.$xegrid,
              s = this.$xetable,
              n = t.code;
            if (n)
              if (i) i.triggerToolbarBtnEvent(t, e);
              else {
                const o = Ke.commands.get(n),
                  r = { code: n, button: t, $xegrid: i, $table: s, $event: e };
                o && o.call(this, r, e), this.$emit("button-click", r);
              }
          },
          tolEvent(e, t) {
            const i = this.$xegrid,
              s = this.$xetable,
              n = t.code;
            if (n)
              if (i) i.triggerToolbarTolEvent(t, e);
              else {
                const o = Ke.commands.get(n),
                  r = { code: n, tool: t, $xegrid: i, $table: s, $event: e };
                o && o.call(this, r, e), this.$emit("tool-click", r);
              }
          },
          importEvent() {
            this.checkTable() && this.$xetable.openImport(this.importOpts);
          },
          exportEvent() {
            this.checkTable() && this.$xetable.openExport(this.exportOpts);
          },
          printEvent() {
            this.checkTable() && this.$xetable.openPrint(this.printOpts);
          },
        },
      };
      const uo = Object.assign(co, {
        install(e) {
          e.component(co.name, co);
        },
      });
      function po(e, t) {
        var i = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
          var s = Object.getOwnPropertySymbols(e);
          t &&
            (s = s.filter(function (t) {
              return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })),
            i.push.apply(i, s);
        }
        return i;
      }
      function fo(e) {
        for (var t = 1; t < arguments.length; t++) {
          var i = null != arguments[t] ? arguments[t] : {};
          t % 2
            ? po(i, !0).forEach(function (t) {
                Object(yt["a"])(e, t, i[t]);
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i))
            : po(i).forEach(function (t) {
                Object.defineProperty(
                  e,
                  t,
                  Object.getOwnPropertyDescriptor(i, t)
                );
              });
        }
        return e;
      }
      var mo = {
        name: "VxePager",
        mixins: [bt],
        props: {
          size: { type: String, default: () => r.pager.size || r.size },
          layouts: {
            type: Array,
            default: () =>
              r.pager.layouts || [
                "PrevJump",
                "PrevPage",
                "Jump",
                "PageCount",
                "NextPage",
                "NextJump",
                "Sizes",
                "Total",
              ],
          },
          currentPage: { type: Number, default: 1 },
          loading: Boolean,
          pageSize: { type: Number, default: () => r.pager.pageSize || 10 },
          total: { type: Number, default: 0 },
          pagerCount: { type: Number, default: () => r.pager.pagerCount || 7 },
          pageSizes: {
            type: Array,
            default: () => r.pager.pageSizes || [10, 15, 20, 50, 100],
          },
          align: { type: String, default: () => r.pager.align },
          border: { type: Boolean, default: () => r.pager.border },
          background: { type: Boolean, default: () => r.pager.background },
          perfect: { type: Boolean, default: () => r.pager.perfect },
          autoHidden: { type: Boolean, default: () => r.pager.autoHidden },
          transfer: { type: Boolean, default: () => r.pager.transfer },
          className: [String, Function],
          iconPrevPage: String,
          iconJumpPrev: String,
          iconJumpNext: String,
          iconNextPage: String,
          iconJumpMore: String,
        },
        inject: { $xegrid: { default: null } },
        computed: {
          isSizes() {
            return this.layouts.some((e) => "Sizes" === e);
          },
          pageCount() {
            return this.getPageCount(this.total, this.pageSize);
          },
          numList() {
            const e =
                this.pageCount > this.pagerCount
                  ? this.pagerCount - 2
                  : this.pagerCount,
              t = [];
            for (let i = 0; i < e; i++) t.push(i);
            return t;
          },
          offsetNumber() {
            return Math.floor((this.pagerCount - 2) / 2);
          },
          sizeList() {
            return this.pageSizes.map((e) => {
              return n.a.isNumber(e)
                ? { value: e, label: `${r.i18n("vxe.pager.pagesize", [e])}` }
                : fo({ value: "", label: "" }, e);
            });
          },
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.$xegrid,
            s = this.vSize,
            o = this.align,
            r = this.className,
            l = [];
          return (
            t.left &&
              l.push(
                e(
                  "span",
                  { class: "vxe-pager--left-wrapper" },
                  t.left.call(this, { $grid: i })
                )
              ),
            this.layouts.forEach((t) => {
              l.push(this[`render${t}`](e));
            }),
            t.right &&
              l.push(
                e(
                  "span",
                  { class: "vxe-pager--right-wrapper" },
                  t.right.call(this, { $grid: i })
                )
              ),
            e(
              "div",
              {
                class: [
                  "vxe-pager",
                  r ? (n.a.isFunction(r) ? r({ $pager: this }) : r) : "",
                  {
                    [`size--${s}`]: s,
                    [`align--${o}`]: o,
                    "is--border": this.border,
                    "is--background": this.background,
                    "is--perfect": this.perfect,
                    "is--hidden": this.autoHidden && 1 === this.pageCount,
                    "is--loading": this.loading,
                  },
                ],
              },
              [e("div", { class: "vxe-pager--wrapper" }, l)]
            )
          );
        },
        methods: {
          renderPrevPage(e) {
            return e(
              "button",
              {
                class: [
                  "vxe-pager--prev-btn",
                  { "is--disabled": this.currentPage <= 1 },
                ],
                attrs: { title: r.i18n("vxe.pager.prevPage") },
                on: { click: this.prevPage },
              },
              [
                e("i", {
                  class: [
                    "vxe-pager--btn-icon",
                    this.iconPrevPage || r.icon.PAGER_PREV_PAGE,
                  ],
                }),
              ]
            );
          },
          renderPrevJump(e, t) {
            return e(
              t || "button",
              {
                class: [
                  "vxe-pager--jump-prev",
                  { "is--fixed": !t, "is--disabled": this.currentPage <= 1 },
                ],
                attrs: { title: r.i18n("vxe.pager.prevJump") },
                on: { click: this.prevJump },
              },
              [
                t
                  ? e("i", {
                      class: [
                        "vxe-pager--jump-more-icon",
                        this.iconJumpMore || r.icon.PAGER_JUMP_MORE,
                      ],
                    })
                  : null,
                e("i", {
                  class: [
                    "vxe-pager--jump-icon",
                    this.iconJumpPrev || r.icon.PAGER_JUMP_PREV,
                  ],
                }),
              ]
            );
          },
          renderNumber(e) {
            return e(
              "span",
              { class: "vxe-pager--btn-wrapper" },
              this.renderPageBtn(e)
            );
          },
          renderJumpNumber(e) {
            return e(
              "span",
              { class: "vxe-pager--btn-wrapper" },
              this.renderPageBtn(e, !0)
            );
          },
          renderNextJump(e, t) {
            return e(
              t || "button",
              {
                class: [
                  "vxe-pager--jump-next",
                  {
                    "is--fixed": !t,
                    "is--disabled": this.currentPage >= this.pageCount,
                  },
                ],
                attrs: { title: r.i18n("vxe.pager.nextJump") },
                on: { click: this.nextJump },
              },
              [
                t
                  ? e("i", {
                      class: [
                        "vxe-pager--jump-more-icon",
                        this.iconJumpMore || r.icon.PAGER_JUMP_MORE,
                      ],
                    })
                  : null,
                e("i", {
                  class: [
                    "vxe-pager--jump-icon",
                    this.iconJumpNext || r.icon.PAGER_JUMP_NEXT,
                  ],
                }),
              ]
            );
          },
          renderNextPage(e) {
            return e(
              "button",
              {
                class: [
                  "vxe-pager--next-btn",
                  { "is--disabled": this.currentPage >= this.pageCount },
                ],
                attrs: { title: r.i18n("vxe.pager.nextPage") },
                on: { click: this.nextPage },
              },
              [
                e("i", {
                  class: [
                    "vxe-pager--btn-icon",
                    this.iconNextPage || r.icon.PAGER_NEXT_PAGE,
                  ],
                }),
              ]
            );
          },
          renderSizes(e) {
            return e("vxe-select", {
              class: "vxe-pager--sizes",
              props: {
                value: this.pageSize,
                placement: "top",
                transfer: this.transfer,
                options: this.sizeList,
              },
              on: {
                change: (e) => {
                  let t = e.value;
                  this.pageSizeEvent(t);
                },
              },
            });
          },
          renderFullJump(e) {
            return this.renderJump(e, !0);
          },
          renderJump(e, t) {
            return e("span", { class: "vxe-pager--jump" }, [
              t
                ? e(
                    "span",
                    { class: "vxe-pager--goto-text" },
                    r.i18n("vxe.pager.goto")
                  )
                : null,
              e("input", {
                class: "vxe-pager--goto",
                domProps: { value: this.currentPage },
                attrs: { type: "text", autocomplete: "off" },
                on: {
                  keydown: this.jumpKeydownEvent,
                  blur: this.triggerJumpEvent,
                },
              }),
              t
                ? e(
                    "span",
                    { class: "vxe-pager--classifier-text" },
                    r.i18n("vxe.pager.pageClassifier")
                  )
                : null,
            ]);
          },
          renderPageCount(e) {
            return e("span", { class: "vxe-pager--count" }, [
              e("span", { class: "vxe-pager--separator" }),
              e("span", this.pageCount),
            ]);
          },
          renderTotal(e) {
            return e(
              "span",
              { class: "vxe-pager--total" },
              r.i18n("vxe.pager.total", [this.total])
            );
          },
          renderPageBtn(e, t) {
            const i = this.numList,
              s = this.currentPage,
              n = this.pageCount,
              o = this.pagerCount,
              r = this.offsetNumber,
              l = [],
              a = n > o,
              h = a && s > r + 1,
              c = a && s < n - r;
            let d = 1;
            return (
              a &&
                (d =
                  s >= n - r
                    ? Math.max(n - i.length + 1, 1)
                    : Math.max(s - r, 1)),
              t &&
                h &&
                l.push(
                  e(
                    "button",
                    {
                      class: "vxe-pager--num-btn",
                      on: { click: () => this.jumpPage(1) },
                    },
                    1
                  ),
                  this.renderPrevJump(e, "span")
                ),
              i.forEach((t, i) => {
                const o = d + i;
                o <= n &&
                  l.push(
                    e(
                      "button",
                      {
                        class: [
                          "vxe-pager--num-btn",
                          { "is--active": s === o },
                        ],
                        on: { click: () => this.jumpPage(o) },
                        key: o,
                      },
                      o
                    )
                  );
              }),
              t &&
                c &&
                l.push(
                  this.renderNextJump(e, "button"),
                  e(
                    "button",
                    {
                      class: "vxe-pager--num-btn",
                      on: { click: () => this.jumpPage(n) },
                    },
                    n
                  )
                ),
              l
            );
          },
          getPageCount(e, t) {
            return Math.max(Math.ceil(e / t), 1);
          },
          prevPage() {
            const e = this.currentPage,
              t = this.pageCount;
            e > 1 && this.jumpPage(Math.min(t, Math.max(e - 1, 1)));
          },
          nextPage() {
            const e = this.currentPage,
              t = this.pageCount;
            e < t && this.jumpPage(Math.min(t, e + 1));
          },
          prevJump() {
            this.jumpPage(Math.max(this.currentPage - this.numList.length, 1));
          },
          nextJump() {
            this.jumpPage(
              Math.min(this.currentPage + this.numList.length, this.pageCount)
            );
          },
          jumpPage(e) {
            e !== this.currentPage &&
              (this.$emit("update:currentPage", e),
              this.$emit("page-change", {
                type: "current",
                pageSize: this.pageSize,
                currentPage: e,
              }));
          },
          pageSizeEvent(e) {
            this.changePageSize(e);
          },
          changePageSize(e) {
            e !== this.pageSize &&
              (this.$emit("update:pageSize", e),
              this.$emit("page-change", {
                type: "size",
                pageSize: e,
                currentPage: Math.min(
                  this.currentPage,
                  this.getPageCount(this.total, e)
                ),
              }));
          },
          jumpKeydownEvent(e) {
            13 === e.keyCode
              ? this.triggerJumpEvent(e)
              : 38 === e.keyCode
              ? (e.preventDefault(), this.nextPage())
              : 40 === e.keyCode && (e.preventDefault(), this.prevPage());
          },
          triggerJumpEvent(e) {
            const t = n.a.toNumber(e.target.value),
              i = t <= 0 ? 1 : t >= this.pageCount ? this.pageCount : t;
            (e.target.value = i), this.jumpPage(i);
          },
        },
      };
      const go = Object.assign(mo, {
        install(e) {
          e.component(mo.name, mo);
        },
      });
      const vo = Object.assign(Ji, {
        install(e) {
          e.component(Ji.name, Ji);
        },
      });
      var _o = {
        name: "VxeCheckboxGroup",
        props: {
          value: Array,
          disabled: Boolean,
          size: { type: String, default: () => r.checkbox.size || r.size },
        },
        provide() {
          return { $xecheckboxgroup: this };
        },
        computed: {
          vSize() {
            return this.size || this.$parent.size || this.$parent.vSize;
          },
        },
        render(e) {
          const t = this.$scopedSlots;
          return e(
            "div",
            { class: "vxe-checkbox-group" },
            t.default ? t.default.call(this, {}) : []
          );
        },
        methods: {
          handleChecked(e) {
            const t = e.checked,
              i = e.label,
              s = this.value || [],
              n = s.indexOf(i);
            t ? -1 === n && s.push(i) : s.splice(n, 1),
              this.$emit("input", s),
              this.$emit("change", Object.assign({ checklist: s }, e));
          },
        },
      };
      const bo = Object.assign(_o, {
        install(e) {
          e.component(_o.name, _o);
        },
      });
      const yo = Object.assign(ys, {
        install(e) {
          e.component(ys.name, ys);
        },
      });
      var xo = {
        name: "VxeRadioGroup",
        props: {
          value: [String, Number, Boolean],
          disabled: Boolean,
          size: { type: String, default: () => r.radio.size || r.size },
        },
        provide() {
          return { $xeradiogroup: this };
        },
        computed: {
          vSize() {
            return this.size || this.$parent.size || this.$parent.vSize;
          },
        },
        data() {
          return { name: n.a.uniqueId("xegroup_") };
        },
        render(e) {
          const t = this.$scopedSlots;
          return e(
            "div",
            { class: "vxe-radio-group" },
            t.default ? t.default.call(this, {}) : []
          );
        },
        methods: {
          handleChecked(e) {
            this.$emit("input", e.label), this.$emit("change", e);
          },
        },
      };
      const wo = Object.assign(xo, {
        install(e) {
          e.component(xo.name, xo);
        },
      });
      var So = {
        name: "VxeRadioButton",
        props: {
          value: [String, Number, Boolean],
          label: [String, Number, Boolean],
          title: [String, Number],
          content: [String, Number],
          disabled: Boolean,
          size: { type: String, default: () => r.radio.size || r.size },
        },
        inject: { $xeradiogroup: { default: null } },
        computed: {
          vSize() {
            return this.size || this.$parent.size || this.$parent.vSize;
          },
          isDisabled() {
            const e = this.$xeradiogroup;
            return this.disabled || (e && e.disabled);
          },
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.$xeradiogroup,
            s = this.isDisabled,
            n = this.title,
            o = this.vSize,
            r = this.value,
            l = this.label,
            a = this.content,
            h = {};
          return (
            n && (h.title = n),
            e(
              "label",
              {
                class: [
                  "vxe-radio",
                  "vxe-radio-button",
                  { [`size--${o}`]: o, "is--disabled": s },
                ],
                attrs: h,
              },
              [
                e("input", {
                  class: "vxe-radio--input",
                  attrs: {
                    type: "radio",
                    name: i ? i.name : null,
                    disabled: s,
                  },
                  domProps: { checked: i ? i.value === l : r === l },
                  on: { change: this.changeEvent },
                }),
                e(
                  "span",
                  { class: "vxe-radio--label" },
                  t.default ? t.default.call(this, {}) : [g.getFuncText(a)]
                ),
              ]
            )
          );
        },
        methods: {
          changeEvent(e) {
            const t = this.$xeradiogroup,
              i = this.isDisabled,
              s = this.label;
            if (!i) {
              const i = { label: s, $event: e };
              t
                ? t.handleChecked(i)
                : (this.$emit("input", s), this.$emit("change", i));
            }
          },
        },
      };
      const Eo = Object.assign(So, {
        install(e) {
          e.component(So.name, So);
        },
      });
      const ko = Object.assign(Ki, {
        install(e) {
          e.component(Ki.name, Ki);
        },
      });
      let Co;
      var To = {
        name: "VxeTextarea",
        mixins: [bt],
        model: { prop: "value", event: "modelValue" },
        props: {
          value: [String, Number],
          immediate: { type: Boolean, default: !0 },
          name: String,
          readonly: Boolean,
          disabled: Boolean,
          placeholder: String,
          maxlength: [String, Number],
          rows: { type: [String, Number], default: 2 },
          showWordCount: Boolean,
          autosize: [Boolean, Object],
          form: String,
          resize: { type: String, default: () => r.textarea.resize },
          className: String,
          size: { type: String, default: () => r.textarea.size || r.size },
        },
        data() {
          return { inputValue: this.value };
        },
        computed: {
          inputCount() {
            return n.a.getSize(this.inputValue);
          },
          isCountError() {
            return (
              this.maxlength && this.inputCount > n.a.toNumber(this.maxlength)
            );
          },
          defaultEvents() {
            const e = {};
            return (
              n.a.each(this.$listeners, (t, i) => {
                -1 === ["input", "change", "blur"].indexOf(i) &&
                  (e[i] = this.triggerEvent);
              }),
              (e.input = this.inputEvent),
              (e.change = this.changeEvent),
              (e.blur = this.blurEvent),
              e
            );
          },
          sizeOpts() {
            return Object.assign(
              { minRows: 1, maxRows: 10 },
              r.textarea.autosize,
              this.autosize
            );
          },
        },
        watch: {
          value(e) {
            (this.inputValue = e), this.updateAutoTxt();
          },
        },
        mounted() {
          const e = this.autosize;
          e && (this.updateAutoTxt(), this.handleResize());
        },
        render(e) {
          const t = this.className,
            i = this.defaultEvents,
            s = this.inputValue,
            n = this.vSize,
            o = this.name,
            r = this.form,
            l = this.resize,
            a = this.placeholder,
            h = this.readonly,
            c = this.disabled,
            d = this.maxlength,
            u = this.autosize,
            p = this.showWordCount,
            f = {
              name: o,
              form: r,
              placeholder: a,
              maxlength: d,
              readonly: h,
              disabled: c,
            };
          return (
            a && (f.placeholder = g.getFuncText(a)),
            e(
              "div",
              {
                class: [
                  "vxe-textarea",
                  t,
                  { [`size--${n}`]: n, "is--autosize": u, "is--disabled": c },
                ],
              },
              [
                e("textarea", {
                  ref: "textarea",
                  class: "vxe-textarea--inner",
                  domProps: { value: s },
                  attrs: f,
                  style: l ? { resize: l } : null,
                  on: i,
                }),
                p
                  ? e(
                      "span",
                      {
                        class: [
                          "vxe-textarea--count",
                          { "is--error": this.isCountError },
                        ],
                      },
                      `${this.inputCount}${d ? `/${d}` : ""}`
                    )
                  : null,
              ]
            )
          );
        },
        methods: {
          focus() {
            return this.$refs.textarea.focus(), this.$nextTick();
          },
          blur() {
            return this.$refs.textarea.blur(), this.$nextTick();
          },
          triggerEvent(e) {
            const t = this.inputValue;
            this.$emit(e.type, { value: t, $event: e });
          },
          emitUpdate(e, t) {
            (this.inputValue = e),
              this.$emit("modelValue", e),
              this.value !== e && this.$emit("change", { value: e, $event: t });
          },
          inputEvent(e) {
            const t = this.immediate,
              i = e.target.value;
            (this.inputValue = i),
              t && this.emitUpdate(i, e),
              this.handleResize(),
              this.triggerEvent(e);
          },
          changeEvent(e) {
            const t = this.immediate;
            t ? this.triggerEvent(e) : this.emitUpdate(this.inputValue, e);
          },
          blurEvent(e) {
            const t = this.inputValue,
              i = this.immediate;
            i || this.emitUpdate(t, e),
              this.$emit("blur", { value: t, $event: e });
          },
          updateAutoTxt() {
            const e = this.$refs,
              t = this.inputValue,
              i = this.size,
              s = this.autosize;
            if (s) {
              Co || (Co = document.createElement("div")),
                Co.parentNode || document.body.appendChild(Co);
              const s = e.textarea,
                n = getComputedStyle(s);
              (Co.className = [
                "vxe-textarea--autosize",
                i ? `size--${i}` : "",
              ].join(" ")),
                (Co.style.width = `${s.clientWidth}px`),
                (Co.style.padding = n.padding),
                (Co.innerHTML = ("" + (t || "　")).replace(/\n$/, "\n　"));
            }
          },
          handleResize() {
            this.autosize &&
              this.$nextTick(() => {
                const e = this.$refs,
                  t = this.sizeOpts,
                  i = t.minRows,
                  s = t.maxRows,
                  o = e.textarea,
                  r = Co.clientHeight,
                  l = getComputedStyle(o),
                  a = n.a.toNumber(l.lineHeight),
                  h = n.a.toNumber(l.paddingTop),
                  c = n.a.toNumber(l.paddingBottom),
                  d = n.a.toNumber(l.borderTopWidth),
                  u = n.a.toNumber(l.borderBottomWidth),
                  p = h + c + d + u,
                  f = (r - p) / a,
                  m = f && /[0-9]/.test(f) ? f : Math.floor(f) + 1;
                let g = m;
                m < i ? (g = i) : m > s && (g = s),
                  (o.style.height = `${g * a + p}px`);
              });
          },
        },
      };
      const Oo = Object.assign(To, {
        install(e) {
          e.component(To.name, To);
        },
      });
      var $o = {
        name: "VxeButton",
        mixins: [bt],
        props: {
          type: String,
          size: { type: String, default: () => r.button.size || r.size },
          name: [String, Number],
          content: String,
          placement: String,
          status: String,
          icon: String,
          round: Boolean,
          circle: Boolean,
          disabled: Boolean,
          loading: Boolean,
          destroyOnClose: Boolean,
          className: String,
          transfer: { type: Boolean, default: () => r.button.transfer },
        },
        data() {
          return {
            inited: !1,
            showPanel: !1,
            animatVisible: !1,
            panelIndex: 0,
            panelStyle: null,
            panelPlacement: null,
          };
        },
        computed: {
          isText() {
            return "text" === this.type;
          },
          isFormBtn() {
            return ["submit", "reset", "button"].indexOf(this.type) > -1;
          },
          btnType() {
            return this.isText ? this.type : "button";
          },
        },
        created() {
          M.on(this, "mousewheel", this.handleGlobalMousewheelEvent);
        },
        beforeDestroy() {
          const e = this.$refs.panel;
          e && e.parentNode && e.parentNode.removeChild(e);
        },
        destroyed() {
          M.off(this, "mousewheel");
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.$listeners,
            s = this.className,
            o = this.inited,
            l = this.type,
            a = this.destroyOnClose,
            h = this.isFormBtn,
            c = this.status,
            d = this.btnType,
            u = this.vSize,
            p = this.name,
            f = this.disabled,
            m = this.loading,
            g = this.showPanel,
            v = this.animatVisible,
            _ = this.panelPlacement,
            b = t.dropdowns;
          return b
            ? e(
                "div",
                {
                  class: [
                    "vxe-button--dropdown",
                    s,
                    { [`size--${u}`]: u, "is--active": g },
                  ],
                },
                [
                  e(
                    "button",
                    {
                      ref: "xBtn",
                      class: [
                        "vxe-button",
                        `type--${d}`,
                        {
                          [`size--${u}`]: u,
                          [`skin--${c}`]: c,
                          "is--round": this.round,
                          "is--circle": this.circle,
                          "is--disabled": f || m,
                          "is--loading": m,
                        },
                      ],
                      attrs: {
                        name: p,
                        type: h ? l : "button",
                        disabled: f || m,
                      },
                      on: Object.assign(
                        {
                          mouseenter: this.mouseenterTargetEvent,
                          mouseleave: this.mouseleaveEvent,
                        },
                        n.a.objectMap(
                          i,
                          (e, t) => (e) => this.$emit(t, { $event: e })
                        )
                      ),
                    },
                    this.renderContent(e).concat([
                      e("i", {
                        class: `vxe-button--dropdown-arrow ${r.icon.BUTTON_DROPDOWN}`,
                      }),
                    ])
                  ),
                  e(
                    "div",
                    {
                      ref: "panel",
                      class: [
                        "vxe-button--dropdown-panel",
                        {
                          [`size--${u}`]: u,
                          "animat--leave": v,
                          "animat--enter": g,
                        },
                      ],
                      attrs: { placement: _ },
                      style: this.panelStyle,
                    },
                    o
                      ? [
                          e(
                            "div",
                            {
                              class: "vxe-button--dropdown-wrapper",
                              on: {
                                mousedown: this.mousedownDropdownEvent,
                                click: this.clickDropdownEvent,
                                mouseenter: this.mouseenterEvent,
                                mouseleave: this.mouseleaveEvent,
                              },
                            },
                            a && !g ? [] : b.call(this, {}, e)
                          ),
                        ]
                      : null
                  ),
                ]
              )
            : e(
                "button",
                {
                  ref: "xBtn",
                  class: [
                    "vxe-button",
                    `type--${d}`,
                    s,
                    {
                      [`size--${u}`]: u,
                      [`skin--${c}`]: c,
                      "is--round": this.round,
                      "is--circle": this.circle,
                      "is--disabled": f || m,
                      "is--loading": m,
                    },
                  ],
                  attrs: { name: p, type: h ? l : "button", disabled: f || m },
                  on: n.a.objectMap(
                    i,
                    (e, t) => (e) => this.$emit(t, { $event: e })
                  ),
                },
                this.renderContent(e)
              );
        },
        methods: {
          renderContent(e) {
            const t = this.$scopedSlots,
              i = this.content,
              s = this.icon,
              n = this.loading,
              o = [];
            return (
              n
                ? o.push(
                    e("i", {
                      class: [
                        "vxe-button--loading-icon",
                        r.icon.BUTTON_LOADING,
                      ],
                    })
                  )
                : s && o.push(e("i", { class: ["vxe-button--icon", s] })),
              t.default
                ? o.push(
                    e(
                      "span",
                      { class: "vxe-button--content" },
                      t.default.call(this)
                    )
                  )
                : i &&
                  o.push(
                    e("span", { class: "vxe-button--content" }, [
                      g.getFuncText(i),
                    ])
                  ),
              o
            );
          },
          handleGlobalMousewheelEvent(e) {
            this.showPanel &&
              !A.getEventTargetNode(e, this.$refs.panel).flag &&
              this.closePanel();
          },
          updateZindex() {
            this.panelIndex < g.getLastZIndex() &&
              (this.panelIndex = g.nextZIndex());
          },
          mousedownDropdownEvent(e) {
            const t = 0 === e.button;
            t && e.stopPropagation();
          },
          clickDropdownEvent(e) {
            const t = e.currentTarget,
              i = this.$refs.panel,
              s = A.getEventTargetNode(e, t, "vxe-button"),
              n = s.flag,
              o = s.targetElem;
            n &&
              (i && (i.dataset.active = "N"),
              (this.showPanel = !1),
              setTimeout(() => {
                (i && "Y" === i.dataset.active) || (this.animatVisible = !1);
              }, 350),
              this.$emit("dropdown-click", {
                name: o.getAttribute("name"),
                $event: e,
              }));
          },
          mouseenterTargetEvent() {
            const e = this.$refs.panel;
            (e.dataset.active = "Y"),
              this.inited ||
                ((this.inited = !0),
                this.transfer && document.body.appendChild(e)),
              (this.showTime = setTimeout(() => {
                "Y" === e.dataset.active
                  ? this.mouseenterEvent()
                  : (this.animatVisible = !1);
              }, 250));
          },
          mouseenterEvent() {
            const e = this.$refs.panel;
            (e.dataset.active = "Y"),
              (this.animatVisible = !0),
              setTimeout(() => {
                "Y" === e.dataset.active &&
                  ((this.showPanel = !0),
                  this.updateZindex(),
                  this.updatePlacement(),
                  setTimeout(() => {
                    this.showPanel && this.updatePlacement();
                  }, 50));
              }, 20);
          },
          mouseleaveEvent() {
            this.closePanel();
          },
          closePanel() {
            const e = this.$refs.panel;
            clearTimeout(this.showTime),
              e
                ? ((e.dataset.active = "N"),
                  setTimeout(() => {
                    "Y" !== e.dataset.active &&
                      ((this.showPanel = !1),
                      setTimeout(() => {
                        "Y" !== e.dataset.active && (this.animatVisible = !1);
                      }, 350));
                  }, 100))
                : ((this.animatVisible = !1), (this.showPanel = !1));
          },
          updatePlacement() {
            return this.$nextTick().then(() => {
              const e = this.$refs,
                t = this.transfer,
                i = this.placement,
                s = this.panelIndex,
                n = e.xBtn,
                o = e.panel;
              if (o && n) {
                const e = n.offsetHeight,
                  r = n.offsetWidth,
                  l = o.offsetHeight,
                  a = o.offsetWidth,
                  h = 5,
                  c = { zIndex: s },
                  d = A.getAbsolutePos(n),
                  u = d.boundingTop,
                  p = d.boundingLeft,
                  f = d.visibleHeight,
                  m = d.visibleWidth;
                let g = "bottom";
                if (t) {
                  let t = p + r - a,
                    s = u + e;
                  "top" === i
                    ? ((g = "top"), (s = u - l))
                    : i ||
                      (s + l + h > f && ((g = "top"), (s = u - l)),
                      s < h && ((g = "bottom"), (s = u + e))),
                    t + a + h > m && (t -= t + a + h - m),
                    t < h && (t = h),
                    Object.assign(c, {
                      left: `${t}px`,
                      right: "auto",
                      top: `${s}px`,
                      minWidth: `${r}px`,
                    });
                } else
                  "top" === i
                    ? ((g = "top"), (c.bottom = `${e}px`))
                    : i ||
                      (u + e + l > f &&
                        u - e - l > h &&
                        ((g = "top"), (c.bottom = `${e}px`)));
                return (
                  (this.panelStyle = c),
                  (this.panelPlacement = g),
                  this.$nextTick()
                );
              }
            });
          },
          focus() {
            return this.$el.focus(), this.$nextTick();
          },
          blur() {
            return this.$el.blur(), this.$nextTick();
          },
        },
      };
      const Ro = Object.assign($o, {
        install(e) {
          e.component($o.name, $o);
        },
      });
      let Ao = null;
      function Lo(e) {
        const t = Object.assign({}, e, { transfer: !0 });
        return new Promise((e) => {
          if (t && t.id && wi.some((e) => e.id === t.id)) e("exist");
          else {
            const i = t.events || {};
            t.events = Object.assign({}, i, {
              hide(t) {
                i.hide && i.hide.call(this, t),
                  setTimeout(() => s.$destroy(), s.isMsg ? 500 : 100),
                  e(t.type);
              },
            });
            const s = new Ao({
              el: document.createElement("div"),
              propsData: t,
            });
            setTimeout(() => {
              s.isDestroy ? s.close() : s.open();
            });
          }
        });
      }
      function Do(e) {
        const t = arguments.length ? [Io(e)] : wi;
        return (
          t.forEach((e) => {
            e && ((e.isDestroy = !0), e.close("close"));
          }),
          Promise.resolve()
        );
      }
      function Io(e) {
        return n.a.find(wi, (t) => t.id === e);
      }
      const Mo = { get: Io, close: Do, open: Lo },
        Po = ["alert", "confirm", "message"];
      Po.forEach((e, t) => {
        const i =
          2 === t
            ? { mask: !1, lockView: !1, showHeader: !1 }
            : { showFooter: !0 };
        (i.type = e),
          (i.dblclickZoom = !1),
          1 === t && (i.status = "question"),
          (Mo[e] = function (s, o, r) {
            let l = {};
            return (
              n.a.isObject(s)
                ? (l = s)
                : (o && (l = 2 === t ? { status: o } : { title: o }),
                  (l.content = n.a.toString(s))),
              Lo(Object.assign({ type: e }, i, l, r))
            );
          });
      });
      const No = Object.assign(Ei, {
        install(e) {
          (Ke._modal = 1),
            e.component(Ei.name, Ei),
            (Ao = e.extend(Ei)),
            (Ke.modal = Mo),
            e.prototype.$vxe
              ? (e.prototype.$vxe.modal = Mo)
              : (e.prototype.$vxe = { modal: Mo });
        },
      });
      function Bo(e) {
        const t = e.$el,
          i = e.tipTarget,
          s = e.tipStore;
        if (i) {
          const e = A.getDomNode(),
            n = e.scrollTop,
            o = e.scrollLeft,
            r = e.visibleWidth,
            l = A.getAbsolutePos(i),
            a = l.top,
            h = l.left,
            c = 6,
            d = t.offsetHeight,
            u = t.offsetWidth;
          let p = a - d - c,
            f = Math.max(c, h + Math.floor((i.offsetWidth - u) / 2));
          f + u + c > o + r && (f = o + r - u - c),
            a - d < n + c &&
              ((s.placement = "bottom"), (p = a + i.offsetHeight + c)),
            (s.style.top = `${p}px`),
            (s.style.left = `${f}px`),
            (s.arrowStyle.left = `${h - f + i.offsetWidth / 2}px`);
        }
      }
      var Fo = {
        name: "VxeTooltip",
        mixins: [bt],
        props: {
          value: Boolean,
          size: { type: String, default: () => r.tooltip.size || r.size },
          trigger: { type: String, default: () => r.tooltip.trigger },
          skin: { type: String, default: () => r.tooltip.skin },
          content: [String, Number],
          zIndex: [String, Number],
          isArrow: { type: Boolean, default: !0 },
          enterable: Boolean,
          leaveDelay: { type: Number, default: r.tooltip.leaveDelay },
          leaveMethod: Function,
        },
        data() {
          return {
            isUpdate: !1,
            isHover: !1,
            visible: !1,
            message: "",
            tipTarget: null,
            tipZindex: 0,
            tipStore: { style: {}, placement: "", arrowStyle: null },
          };
        },
        watch: {
          content(e) {
            this.message = e;
          },
          value(e) {
            this.isUpdate || this[e ? "open" : "close"](), (this.isUpdate = !1);
          },
        },
        mounted() {
          const e = this.$el,
            t = this.trigger,
            i = this.content,
            s = this.value,
            o = e.parentNode;
          let r;
          (this.message = i),
            (this.tipZindex = g.nextZIndex()),
            n.a.arrayEach(e.children, (t, i) => {
              i > 1 && (o.insertBefore(t, e), r || (r = t));
            }),
            o.removeChild(e),
            (this.target = r),
            r &&
              ("hover" === t
                ? ((r.onmouseleave = this.targetMouseleaveEvent),
                  (r.onmouseenter = this.targetMouseenterEvent))
                : "click" === t && (r.onclick = this.clickEvent)),
            s && this.open();
        },
        beforeDestroy() {
          const e = this.$el,
            t = this.target,
            i = this.trigger,
            s = e.parentNode;
          s && s.removeChild(e),
            t &&
              ("hover" === i
                ? ((t.onmouseenter = null), (t.onmouseleave = null))
                : "click" === i && (t.onclick = null));
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.vSize,
            s = this.skin,
            n = this.message,
            o = this.isHover,
            r = this.isArrow,
            l = this.visible,
            a = this.tipStore,
            h = this.enterable;
          let c;
          return (
            h &&
              (c = {
                mouseenter: this.wrapperMouseenterEvent,
                mouseleave: this.wrapperMouseleaveEvent,
              }),
            e(
              "div",
              {
                class: [
                  "vxe-table--tooltip-wrapper",
                  `skin--${s}`,
                  {
                    [`size--${i}`]: i,
                    [`placement--${a.placement}`]: a.placement,
                    "is--enterable": h,
                    "is--visible": l,
                    "is--arrow": r,
                    "is--hover": o,
                  },
                ],
                style: a.style,
                ref: "tipWrapper",
                on: c,
              },
              [
                e(
                  "div",
                  { class: "vxe-table--tooltip-content" },
                  t.content ? t.content.call(this, {}) : n
                ),
                e("div", {
                  class: "vxe-table--tooltip-arrow",
                  style: a.arrowStyle,
                }),
              ].concat(t.default ? t.default.call(this, {}) : [])
            )
          );
        },
        methods: {
          open(e, t) {
            return this.toVisible(e || this.target, t);
          },
          close() {
            return (
              (this.tipTarget = null),
              Object.assign(this.tipStore, {
                style: {},
                placement: "",
                arrowStyle: null,
              }),
              this.update(!1),
              this.$nextTick()
            );
          },
          update(e) {
            e !== this.visible &&
              ((this.visible = e),
              (this.isUpdate = !0),
              this.$listeners.input && this.$emit("input", this.visible));
          },
          updateZindex() {
            this.tipZindex = window.$_theme.zindex();
          },
          toVisible(e, t) {
            if (((this.targetActive = !0), e)) {
              const i = this.$el,
                s = this.tipStore,
                n = this.zIndex,
                o = i.parentNode;
              return (
                o || document.body.appendChild(i),
                t && (this.message = t),
                (this.tipTarget = e),
                this.update(!0),
                this.updateZindex(),
                (s.placement = "top"),
                (s.style = {
                  width: "auto",
                  left: 0,
                  top: 0,
                  zIndex: n || this.tipZindex,
                }),
                (s.arrowStyle = { left: "50%" }),
                this.updatePlacement()
              );
            }
            return this.$nextTick();
          },
          updatePlacement() {
            return this.$nextTick().then(() => {
              const e = this.$el,
                t = this.tipTarget;
              if (t && e)
                return Bo(this), this.$nextTick().then(() => Bo(this));
            });
          },
          clickEvent() {
            this[this.visible ? "close" : "open"]();
          },
          targetMouseenterEvent() {
            this.open();
          },
          targetMouseleaveEvent() {
            const e = this.trigger,
              t = this.enterable,
              i = this.leaveDelay;
            (this.targetActive = !1),
              t && "hover" === e
                ? setTimeout(() => {
                    this.isHover || this.close();
                  }, i)
                : this.close();
          },
          wrapperMouseenterEvent() {
            this.isHover = !0;
          },
          wrapperMouseleaveEvent(e) {
            const t = this.leaveMethod,
              i = this.trigger,
              s = this.enterable,
              n = this.leaveDelay;
            (this.isHover = !1),
              (t && !1 === t({ $event: e })) ||
                (s &&
                  "hover" === i &&
                  setTimeout(() => {
                    this.targetActive || this.close();
                  }, n));
          },
        },
      };
      const Vo = Object.assign(Fo, {
        install(e) {
          (Ke._tooltip = 1), e.component(Fo.name, Fo);
        },
      });
      class zo {
        constructor(e, t) {
          if (
            (Object.assign(this, {
              id: n.a.uniqueId("item_"),
              title: t.title,
              field: t.field,
              span: t.span,
              align: t.align,
              titleAlign: t.titleAlign,
              titleWidth: t.titleWidth,
              titlePrefix: t.titlePrefix,
              titleSuffix: t.titleSuffix,
              titleOverflow: t.titleOverflow,
              resetValue: t.resetValue,
              visible: t.visible,
              visibleMethod: t.visibleMethod,
              folding: t.folding,
              collapseNode: t.collapseNode,
              className: t.className,
              itemRender: t.itemRender,
              showError: !1,
              errRule: null,
              slots: t.slots,
              children: [],
            }),
            "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV)
          ) {
            const e = t.itemRender ? Ke.renderer.get(t.itemRender.name) : null;
            e &&
              !e.renderItemContent &&
              e.renderItem &&
              g.warn("vxe.error.delProp", [
                "item-render.renderItem",
                "item-render.renderItemContent",
              ]);
          }
        }
        update(e, t) {
          this[e] = t;
        }
      }
      function jo(e) {
        return e instanceof zo;
      }
      function Ho(e, t, i) {
        return jo(t) ? t : new zo(e, t, i);
      }
      function Uo(e, t) {
        return Ho(e, t);
      }
      function Wo(e) {
        const t = e.$xeform,
          i = e.itemConfig,
          s = n.a.findTree(t.staticItems, (e) => e === i);
        s && s.items.splice(s.index, 1);
      }
      function Go(e) {
        const t = e.$el,
          i = e.$xeform,
          s = e.xeformgather,
          n = e.itemConfig,
          o = s ? s.itemConfig : null;
        (n.slots = e.$scopedSlots),
          o
            ? (o.children || (o.children = []),
              o.children.splice([].indexOf.call(s.$el.children, t), 0, n))
            : i.staticItems.splice(
                [].indexOf.call(i.$refs.hideItem.children, t),
                0,
                n
              );
      }
      function Zo(e, t) {
        var i = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
          var s = Object.getOwnPropertySymbols(e);
          t &&
            (s = s.filter(function (t) {
              return Object.getOwnPropertyDescriptor(e, t).enumerable;
            })),
            i.push.apply(i, s);
        }
        return i;
      }
      function Yo(e) {
        for (var t = 1; t < arguments.length; t++) {
          var i = null != arguments[t] ? arguments[t] : {};
          t % 2
            ? Zo(i, !0).forEach(function (t) {
                Object(yt["a"])(e, t, i[t]);
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(i))
            : Zo(i).forEach(function (t) {
                Object.defineProperty(
                  e,
                  t,
                  Object.getOwnPropertyDescriptor(i, t)
                );
              });
        }
        return e;
      }
      class qo {
        constructor(e) {
          Object.assign(this, {
            $options: e,
            required: e.required,
            min: e.min,
            max: e.min,
            type: e.type,
            pattern: e.pattern,
            validator: e.validator,
            trigger: e.trigger,
            maxWidth: e.maxWidth,
          });
        }
        get message() {
          return g.getFuncText(this.$options.message);
        }
      }
      function Xo(e, t) {
        const i = e.type,
          s = e.min,
          o = e.max,
          r = e.pattern,
          l = "number" === i,
          a = l ? n.a.toNumber(t) : n.a.getSize(t);
        return (
          !(!l || !isNaN(t)) ||
          (!n.a.eqNull(s) && a < n.a.toNumber(s)) ||
          (!n.a.eqNull(o) && a > n.a.toNumber(o)) ||
          !(!r || (n.a.isRegExp(r) ? r : new RegExp(r)).test(t))
        );
      }
      function Ko(e, t) {
        return n.a.isArray(e) && (t = []), t;
      }
      function Jo(e, t, i, s) {
        if (t) {
          const o = e.$scopedSlots;
          if ((n.a.isString(t) && (t = o[t] || null), n.a.isFunction(t)))
            return t.call(e, i, s);
        }
        return [];
      }
      function Qo(e, t) {
        return e("span", { class: "vxe-form--item-title-prefix" }, [
          e("i", { class: t.icon || r.icon.FORM_PREFIX }),
        ]);
      }
      function er(e, t) {
        return e("span", { class: "vxe-form--item-title-suffix" }, [
          e("i", { class: t.icon || r.icon.FORM_SUFFIX }),
        ]);
      }
      function tr(e, t, i) {
        const s = t.data,
          n = i.slots,
          o = i.field,
          r = i.itemRender,
          l = i.titlePrefix,
          a = i.titleSuffix,
          h = p(r) ? Ke.renderer.get(r.name) : null,
          c = { data: s, property: o, item: i, $form: t },
          d = [];
        return (
          l &&
            d.push(
              l.message
                ? e(
                    "vxe-tooltip",
                    {
                      props: {
                        content: g.getFuncText(l.message),
                        enterable: l.enterable,
                        skin: l.skin,
                      },
                    },
                    [Qo(e, l)]
                  )
                : Qo(e, l)
            ),
          d.push(
            e(
              "span",
              { class: "vxe-form--item-title-label" },
              h && h.renderItemTitle
                ? h.renderItemTitle(r, c)
                : n && n.title
                ? Jo(t, n.title, c, e)
                : g.getFuncText(i.title)
            )
          ),
          a &&
            d.push(
              a.message
                ? e(
                    "vxe-tooltip",
                    {
                      props: {
                        content: g.getFuncText(a.message),
                        enterable: a.enterable,
                        skin: a.skin,
                      },
                    },
                    [er(e, a)]
                  )
                : er(e, a)
            ),
          d
        );
      }
      function ir(e, t, i) {
        const s = t._e,
          o = t.rules,
          l = t.data,
          a = t.collapseAll,
          h = t.validOpts,
          c = t.titleOverflow;
        return i.map((i, d) => {
          const u = i.slots,
            f = i.title,
            m = i.folding,
            v = i.visible,
            _ = i.visibleMethod,
            b = i.field,
            y = i.collapseNode,
            x = i.itemRender,
            w = i.showError,
            S = i.errRule,
            E = i.className,
            k = i.titleOverflow,
            C = i.children,
            T = p(x) ? Ke.renderer.get(x.name) : null,
            O = i.span || t.span,
            $ = i.align || t.align,
            R = i.titleAlign || t.titleAlign,
            A = i.titleWidth || t.titleWidth;
          let L = _;
          const D = n.a.isUndefined(k) || n.a.isNull(k) ? c : k,
            I = "ellipsis" === D,
            M = "title" === D,
            P = !0 === D || "tooltip" === D,
            N = M || P || I,
            B = { data: l, property: b, item: i, $form: t };
          let F;
          if (!1 === v) return s();
          const V = C && C.length > 0;
          if (V) {
            const o = ir(e, t, i.children);
            return o.length
              ? e(
                  "div",
                  {
                    class: [
                      "vxe-form--gather vxe-row",
                      i.id,
                      O ? `vxe-col--${O} is--span` : "",
                      E ? (n.a.isFunction(E) ? E(B) : E) : "",
                    ],
                  },
                  o
                )
              : s();
          }
          if (
            (!L && T && T.itemVisibleMethod && (L = T.itemVisibleMethod), o)
          ) {
            const e = o[b];
            e && (F = e.some((e) => e.required));
          }
          let z = [];
          u && u.default
            ? (z = Jo(t, u.default, B, e))
            : T && T.renderItemContent
            ? (z = T.renderItemContent.call(t, e, x, B))
            : T && T.renderItem
            ? (z = T.renderItem.call(t, e, x, B))
            : b && (z = [`${n.a.get(l, b)}`]);
          const j = P
            ? {
                mouseenter(e) {
                  t.triggerHeaderHelpEvent(e, B);
                },
                mouseleave: t.handleTargetLeaveEvent,
              }
            : {};
          return e(
            "div",
            {
              class: [
                "vxe-form--item",
                i.id,
                O ? `vxe-col--${O} is--span` : null,
                E ? (n.a.isFunction(E) ? E(B) : E) : "",
                {
                  "is--title": f,
                  "is--required": F,
                  "is--hidden": m && a,
                  "is--active": !L || L(B),
                  "is--error": w,
                },
              ],
              key: d,
            },
            [
              e("div", { class: "vxe-form--item-inner" }, [
                f || (u && u.title)
                  ? e(
                      "div",
                      {
                        class: [
                          "vxe-form--item-title",
                          R ? `align--${R}` : null,
                          { "is--ellipsis": N },
                        ],
                        style: A ? { width: isNaN(A) ? A : `${A}px` } : null,
                        attrs: { title: M ? g.getFuncText(f) : null },
                        on: j,
                      },
                      tr(e, t, i)
                    )
                  : null,
                e(
                  "div",
                  {
                    class: ["vxe-form--item-content", $ ? `align--${$}` : null],
                  },
                  z.concat([
                    y
                      ? e(
                          "div",
                          {
                            class: "vxe-form--item-trigger-node",
                            on: { click: t.toggleCollapseEvent },
                          },
                          [
                            e(
                              "span",
                              { class: "vxe-form--item-trigger-text" },
                              a
                                ? r.i18n("vxe.form.unfolding")
                                : r.i18n("vxe.form.folding")
                            ),
                            e("i", {
                              class: [
                                "vxe-form--item-trigger-icon",
                                a ? r.icon.FORM_FOLDING : r.icon.FORM_UNFOLDING,
                              ],
                            }),
                          ]
                        )
                      : null,
                    S && h.showMessage
                      ? e(
                          "div",
                          {
                            class: "vxe-form--item-valid",
                            style: S.maxWidth
                              ? { width: `${S.maxWidth}px` }
                              : null,
                          },
                          S.message
                        )
                      : null,
                  ])
                ),
              ]),
            ]
          );
        });
      }
      var sr = {
        name: "VxeForm",
        mixins: [bt],
        props: {
          loading: Boolean,
          data: Object,
          size: { type: String, default: () => r.form.size || r.size },
          span: [String, Number],
          align: { type: String, default: () => r.form.align },
          titleAlign: { type: String, default: () => r.form.titleAlign },
          titleWidth: [String, Number],
          titleColon: { type: Boolean, default: () => r.form.titleColon },
          titleAsterisk: { type: Boolean, default: () => r.form.titleAsterisk },
          titleOverflow: { type: [Boolean, String], default: null },
          className: [String, Function],
          items: Array,
          rules: Object,
          preventSubmit: { type: Boolean, default: () => r.form.preventSubmit },
          validConfig: Object,
        },
        data() {
          return {
            collapseAll: !0,
            staticItems: [],
            formItems: [],
            tooltipTimeout: null,
            tooltipActive: !1,
            tooltipStore: { item: null, visible: !1 },
          };
        },
        provide() {
          return { $xeform: this };
        },
        computed: {
          validOpts() {
            return Object.assign({}, r.form.validConfig, this.validConfig);
          },
          tooltipOpts() {
            const e = Object.assign(
              { leaveDelay: 300 },
              r.form.tooltipConfig,
              this.tooltipConfig
            );
            return (
              e.enterable && (e.leaveMethod = this.handleTooltipLeaveMethod), e
            );
          },
        },
        created() {
          this.$nextTick(() => {
            const e = this.items;
            e && this.loadItem(e);
          });
        },
        watch: {
          staticItems(e) {
            this.formItems = e;
          },
          items(e) {
            this.loadItem(e);
          },
        },
        render(e) {
          const t = this._e,
            i = this.loading,
            s = this.className,
            o = this.data,
            r = this.vSize,
            l = this.tooltipOpts,
            a = this.formItems,
            h = Ke._tooltip;
          return e(
            "form",
            {
              class: [
                "vxe-form",
                s
                  ? n.a.isFunction(s)
                    ? s({ items: a, data: o, $form: this })
                    : s
                  : "",
                {
                  [`size--${r}`]: r,
                  "is--colon": this.titleColon,
                  "is--asterisk": this.titleAsterisk,
                  "is--loading": i,
                },
              ],
              on: { submit: this.submitEvent, reset: this.resetEvent },
            },
            [
              e("div", { class: "vxe-form--wrapper vxe-row" }, ir(e, this, a)),
              e(
                "div",
                { class: "vxe-form-slots", ref: "hideItem" },
                this.$slots.default
              ),
              e("div", { class: ["vxe-loading", { "is--visible": i }] }, [
                e("div", { class: "vxe-loading--spinner" }),
              ]),
              h ? e("vxe-tooltip", Yo({ ref: "tooltip" }, l)) : t(),
            ]
          );
        },
        methods: {
          loadItem(e) {
            if (
              "development" ===
              Object({ NODE_ENV: "production", BASE_URL: "" })
                .VUE_APP_VXE_TABLE_ENV
            ) {
              const t = this.$scopedSlots;
              e.forEach((e) => {
                e.slots &&
                  n.a.each(e.slots, (e) => {
                    n.a.isFunction(e) ||
                      t[e] ||
                      g.error("vxe.error.notSlot", [e]);
                  });
              });
            }
            return (
              (this.staticItems = n.a.mapTree(e, (e) => Uo(this, e), {
                children: "children",
              })),
              this.$nextTick()
            );
          },
          getItems() {
            const e = [];
            return (
              n.a.eachTree(
                this.formItems,
                (t) => {
                  e.push(t);
                },
                { children: "children" }
              ),
              e
            );
          },
          toggleCollapse() {
            return (this.collapseAll = !this.collapseAll), this.$nextTick();
          },
          toggleCollapseEvent(e) {
            this.toggleCollapse(),
              this.$emit(
                "toggle-collapse",
                {
                  collapse: !this.collapseAll,
                  data: this.data,
                  $form: this,
                  $event: e,
                },
                e
              );
          },
          submitEvent(e) {
            e.preventDefault(),
              this.preventSubmit ||
                this.beginValidate()
                  .then(() => {
                    this.$emit("submit", {
                      data: this.data,
                      $form: this,
                      $event: e,
                    });
                  })
                  .catch((t) => {
                    this.$emit("submit-invalid", {
                      data: this.data,
                      errMap: t,
                      $form: this,
                      $event: e,
                    });
                  });
          },
          reset() {
            const e = this.data;
            if (e) {
              const t = this.getItems();
              t.forEach((t) => {
                const i = t.field,
                  s = t.resetValue,
                  o = t.itemRender;
                if (p(o)) {
                  const r = Ke.renderer.get(o.name);
                  r && r.itemResetMethod
                    ? r.itemResetMethod({
                        data: e,
                        property: i,
                        item: t,
                        $form: this,
                      })
                    : i &&
                      n.a.set(e, i, null === s ? Ko(n.a.get(e, i), void 0) : s);
                }
              });
            }
            return this.clearValidate();
          },
          resetEvent(e) {
            e.preventDefault(),
              this.reset(),
              this.$emit("reset", { data: this.data, $form: this, $event: e });
          },
          handleTooltipLeaveMethod() {
            const e = this.tooltipOpts;
            return (
              setTimeout(() => {
                this.tooltipActive || this.closeTooltip();
              }, e.leaveDelay),
              !1
            );
          },
          closeTooltip() {
            const e = this.tooltipStore,
              t = this.$refs.tooltip;
            return (
              e.visible &&
                (Object.assign(e, { item: null, visible: !1 }), t && t.close()),
              this.$nextTick()
            );
          },
          triggerHeaderHelpEvent(e, t) {
            const i = t.item,
              s = this.tooltipStore,
              n = this.$refs.tooltip,
              o = e.currentTarget,
              r = (o.textContent || "").trim(),
              l = o.scrollWidth > o.clientWidth;
            clearTimeout(this.tooltipTimeout),
              (this.tooltipActive = !0),
              this.closeTooltip(),
              r &&
                l &&
                (Object.assign(s, { item: i, visible: !0 }), n && n.open(o, r));
          },
          handleTargetLeaveEvent() {
            const e = this.tooltipOpts;
            (this.tooltipActive = !1),
              e.enterable
                ? (this.tooltipTimeout = setTimeout(() => {
                    const e = this.$refs.tooltip;
                    e && !e.isHover && this.closeTooltip();
                  }, e.leaveDelay))
                : this.closeTooltip();
          },
          clearValidate(e) {
            const t = this.getItems();
            if (e) {
              const i = t.find((t) => t.field === e);
              i && (i.showError = !1);
            } else
              t.forEach((e) => {
                e.showError = !1;
              });
            return this.$nextTick();
          },
          validate(e) {
            return this.beginValidate("", e);
          },
          beginValidate(e, t) {
            const i = this.data,
              s = this.rules,
              n = this.validOpts,
              o = {},
              r = [],
              l = [],
              a = this.getItems();
            return (
              this.clearValidate(),
              clearTimeout(this.showErrTime),
              i && s
                ? (a.forEach((t) => {
                    const s = t.field;
                    s &&
                      l.push(
                        this.validItemRules(e || "all", s)
                          .then(() => {
                            t.errRule = null;
                          })
                          .catch((e) => {
                            let n = e.rule,
                              l = e.rules;
                            const a = {
                              rule: n,
                              rules: l,
                              data: i,
                              property: s,
                              $form: this,
                            };
                            return (
                              o[s] || (o[s] = []),
                              o[s].push(a),
                              r.push(s),
                              (t.errRule = n),
                              Promise.reject(a)
                            );
                          })
                      );
                  }),
                  Promise.all(l)
                    .then(() => {
                      t && t();
                    })
                    .catch(() => {
                      return new Promise((e, i) => {
                        (this.showErrTime = setTimeout(() => {
                          a.forEach((e) => {
                            e.errRule && (e.showError = !0);
                          });
                        }, 20)),
                          n.autoPos &&
                            this.$nextTick(() => {
                              this.handleFocus(r);
                            }),
                          t ? (t(o), e()) : i(o);
                      });
                    }))
                : (t && t(), Promise.resolve())
            );
          },
          validItemRules(e, t, i) {
            const s = this.data,
              o = this.rules,
              r = [],
              l = [];
            if (t && o) {
              const a = n.a.get(o, t);
              if (a) {
                const o = n.a.isUndefined(i) ? n.a.get(s, t) : i;
                a.forEach((i) => {
                  const h = i.type,
                    c = i.trigger,
                    d = i.required;
                  if ("all" === e || !c || e === i.trigger)
                    if (n.a.isFunction(i.validator)) {
                      const e = i.validator({
                        itemValue: o,
                        rule: i,
                        rules: a,
                        data: s,
                        property: t,
                        $form: this,
                      });
                      e &&
                        (n.a.isError(e)
                          ? r.push(
                              new qo({
                                type: "custom",
                                trigger: c,
                                message: e.message,
                                rule: new qo(i),
                              })
                            )
                          : e.catch &&
                            l.push(
                              e.catch((e) => {
                                r.push(
                                  new qo({
                                    type: "custom",
                                    trigger: c,
                                    message: e ? e.message : i.message,
                                    rule: new qo(i),
                                  })
                                );
                              })
                            ));
                    } else {
                      const e = "array" === h,
                        t = e ? !n.a.isArray(o) || !o.length : m(o);
                      (d ? t || Xo(i, o) : !t && Xo(i, o)) && r.push(new qo(i));
                    }
                });
              }
            }
            return Promise.all(l).then(() => {
              if (r.length) {
                const e = { rules: r, rule: r[0] };
                return Promise.reject(e);
              }
            });
          },
          handleFocus(e) {
            const t = this.$el,
              i = this.getItems();
            e.some((e) => {
              const s = i.find((t) => t.field === e);
              if (s && p(s.itemRender)) {
                const e = s.itemRender,
                  i = Ke.renderer.get(e.name);
                let n;
                if (
                  (e.autofocus &&
                    (n = t.querySelector(`.${s.id} ${e.autofocus}`)),
                  !n &&
                    i &&
                    i.autofocus &&
                    (n = t.querySelector(`.${s.id} ${i.autofocus}`)),
                  n)
                ) {
                  if ((n.focus(), b.msie)) {
                    const e = n.createTextRange();
                    e.collapse(!1), e.select();
                  }
                  return !0;
                }
              }
            });
          },
          updateStatus(e, t) {
            const i = e.property;
            i &&
              this.validItemRules("change", i, t)
                .then(() => {
                  this.clearValidate(i);
                })
                .catch((e) => {
                  let t = e.rule;
                  const s = this.getItems(),
                    n = s.find((e) => e.field === i);
                  n && ((n.showError = !0), (n.errRule = t));
                });
          },
        },
      };
      const nr = Object.assign(sr, {
        install(e) {
          e.component(sr.name, sr);
        },
      });
      const or = {
          title: String,
          field: String,
          size: String,
          span: [String, Number],
          align: String,
          titleAlign: String,
          titleWidth: [String, Number],
          className: [String, Function],
          titleOverflow: { type: [Boolean, String], default: null },
          titlePrefix: Object,
          titleSuffix: Object,
          resetValue: { default: null },
          visible: { type: Boolean, default: null },
          visibleMethod: Function,
          folding: Boolean,
          collapseNode: Boolean,
          itemRender: Object,
        },
        rr = {};
      Object.keys(or).forEach((e) => {
        rr[e] = function (t) {
          this.itemConfig.update(e, t);
        };
      });
      var lr = {
        name: "VxeFormItem",
        props: or,
        inject: { $xeform: { default: null }, xeformgather: { default: null } },
        watch: rr,
        mounted() {
          Go(this);
        },
        created() {
          this.itemConfig = Uo(this.$xeform, this);
        },
        destroyed() {
          Wo(this);
        },
        render(e) {
          return e("div");
        },
      };
      const ar = Object.assign(lr, {
        install(e) {
          e.component(lr.name, lr);
        },
      });
      var hr = {
        name: "VxeFormGather",
        extends: lr,
        provide() {
          return { xeformgather: this };
        },
        render(e) {
          return e("div", this.$slots.default);
        },
      };
      const cr = Object.assign(hr, {
        install(e) {
          e.component(hr.name, hr);
        },
      });
      const dr = {
          label: { type: [String, Number, Boolean], default: "" },
          visible: { type: Boolean, default: null },
          className: [String, Function],
          disabled: Boolean,
        },
        ur = {};
      Object.keys(dr).forEach((e) => {
        ur[e] = function (t) {
          this.optionConfig.update(e, t);
        };
      });
      var pr = {
        name: "VxeOptgroup",
        props: dr,
        provide() {
          return { $xeoptgroup: this };
        },
        inject: { $xeselect: { default: null } },
        computed: {
          vSize() {
            return this.size || this.$parent.size || this.$parent.vSize;
          },
        },
        watch: ur,
        mounted() {
          ms(this);
        },
        created() {
          this.optionConfig = ps(this.$xeselect, this);
        },
        destroyed() {
          fs(this);
        },
        render(e) {
          return e("div", this.$slots.default);
        },
      };
      const fr = Object.assign(hs, {
        Option: _s,
        Optgroup: pr,
        install(e) {
          e.component(hs.name, hs),
            e.component(_s.name, _s),
            e.component(pr.name, pr);
        },
      });
      const mr = Object.assign(pr, {
        install(e) {
          e.component(pr.name, pr);
        },
      });
      const gr = Object.assign(_s, {
        install(e) {
          e.component(_s.name, _s);
        },
      });
      var vr = {
        name: "VxeSwitch",
        mixins: [bt],
        props: {
          value: [String, Number, Boolean],
          disabled: Boolean,
          className: String,
          size: { type: String, default: () => r.switch.size || r.size },
          openLabel: String,
          closeLabel: String,
          openValue: { type: [String, Number, Boolean], default: !0 },
          closeValue: { type: [String, Number, Boolean], default: !1 },
          openIcon: String,
          closeIcon: String,
        },
        data() {
          return { isActivated: !1, hasAnimat: !1, offsetLeft: 0 };
        },
        computed: {
          isChecked() {
            return this.value === this.openValue;
          },
          onShowLabel() {
            return g.getFuncText(this.openLabel);
          },
          offShowLabel() {
            return g.getFuncText(this.closeLabel);
          },
          styles() {
            return b.msie && this.isChecked
              ? { left: `${this.offsetLeft}px` }
              : null;
          },
        },
        created() {
          b.msie && this.$nextTick(() => this.updateStyle());
        },
        render(e) {
          const t = this.isChecked,
            i = this.vSize,
            s = this.className,
            n = this.disabled,
            o = this.openIcon,
            r = this.closeIcon;
          return e(
            "div",
            {
              class: [
                "vxe-switch",
                s,
                t ? "is--on" : "is--off",
                {
                  [`size--${i}`]: i,
                  "is--disabled": n,
                  "is--animat": this.hasAnimat,
                },
              ],
            },
            [
              e(
                "button",
                {
                  ref: "btn",
                  class: "vxe-switch--button",
                  attrs: { type: "button", disabled: n },
                  on: {
                    click: this.clickEvent,
                    focus: this.focusEvent,
                    blur: this.blurEvent,
                  },
                },
                [
                  e(
                    "span",
                    { class: "vxe-switch--label vxe-switch--label-on" },
                    [
                      o
                        ? e("i", { class: ["vxe-switch--label-icon", o] })
                        : null,
                      this.onShowLabel,
                    ]
                  ),
                  e(
                    "span",
                    { class: "vxe-switch--label vxe-switch--label-off" },
                    [
                      r
                        ? e("i", { class: ["vxe-switch--label-icon", r] })
                        : null,
                      this.offShowLabel,
                    ]
                  ),
                  e("span", { class: "vxe-switch--icon", style: this.styles }),
                ]
              ),
            ]
          );
        },
        methods: {
          updateStyle() {
            (this.hasAnimat = !0),
              (this.offsetLeft = this.$refs.btn.offsetWidth);
          },
          clickEvent(e) {
            if (!this.disabled) {
              clearTimeout(this.activeTimeout);
              const t = this.isChecked ? this.closeValue : this.openValue;
              (this.hasAnimat = !0),
                b.msie && this.updateStyle(),
                this.$emit("input", t),
                this.$emit("change", { value: t, $event: e }),
                (this.activeTimeout = setTimeout(() => {
                  this.hasAnimat = !1;
                }, 400));
            }
          },
          focusEvent(e) {
            (this.isActivated = !0),
              this.$emit("focus", { value: this.value, $event: e });
          },
          blurEvent(e) {
            (this.isActivated = !1),
              this.$emit("blur", { value: this.value, $event: e });
          },
        },
      };
      const _r = Object.assign(vr, {
        install(e) {
          e.component(vr.name, vr);
        },
      });
      var br = {
        name: "VxeList",
        mixins: [bt],
        props: {
          data: Array,
          height: [Number, String],
          maxHeight: [Number, String],
          loading: Boolean,
          className: [String, Function],
          size: { type: String, default: () => r.list.size || r.size },
          autoResize: { type: Boolean, default: () => r.list.autoResize },
          syncResize: [Boolean, String, Number],
          scrollY: Object,
        },
        data() {
          return {
            scrollYLoad: !1,
            bodyHeight: 0,
            topSpaceHeight: 0,
            items: [],
          };
        },
        computed: {
          sYOpts() {
            return Object.assign({}, r.list.scrollY, this.scrollY);
          },
          styles() {
            const e = this.height,
              t = this.maxHeight,
              i = {};
            return (
              e
                ? (i.height = isNaN(e) ? e : `${e}px`)
                : t &&
                  ((i.height = "auto"),
                  (i.maxHeight = isNaN(t) ? t : `${t}px`)),
              i
            );
          },
        },
        watch: {
          data(e) {
            this.loadData(e);
          },
          syncResize(e) {
            e &&
              (this.recalculate(),
              this.$nextTick(() => setTimeout(() => this.recalculate())));
          },
        },
        created() {
          Object.assign(this, {
            fullData: [],
            lastScrollLeft: 0,
            lastScrollTop: 0,
            scrollYStore: { startIndex: 0, endIndex: 0, visibleSize: 0 },
          }),
            this.loadData(this.data),
            M.on(this, "resize", this.handleGlobalResizeEvent);
        },
        mounted() {
          if (this.autoResize) {
            const e = j(() => this.recalculate());
            e.observe(this.$el), (this.$resize = e);
          }
        },
        beforeDestroy() {
          this.$resize && this.$resize.disconnect();
        },
        destroyed() {
          M.off(this, "resize");
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.styles,
            s = this.bodyHeight,
            o = this.topSpaceHeight,
            r = this.items,
            l = this.className,
            a = this.loading;
          return e(
            "div",
            {
              class: [
                "vxe-list",
                l ? (n.a.isFunction(l) ? l({ $list: this }) : l) : "",
                { "is--loading": a },
              ],
            },
            [
              e(
                "div",
                {
                  ref: "virtualWrapper",
                  class: "vxe-list--virtual-wrapper",
                  style: i,
                  on: { scroll: this.scrollEvent },
                },
                [
                  e("div", {
                    ref: "ySpace",
                    class: "vxe-list--y-space",
                    style: { height: s ? `${s}px` : "" },
                  }),
                  e(
                    "div",
                    {
                      ref: "virtualBody",
                      class: "vxe-list--body",
                      style: { marginTop: o ? `${o}px` : "" },
                    },
                    t.default
                      ? t.default.call(this, { items: r, $list: this }, e)
                      : []
                  ),
                ]
              ),
              e(
                "div",
                {
                  class: [
                    "vxe-list--loading vxe-loading",
                    { "is--visible": a },
                  ],
                },
                [e("div", { class: "vxe-loading--spinner" })]
              ),
            ]
          );
        },
        methods: {
          getParentElem() {
            return this.$el.parentNode;
          },
          loadData(e) {
            const t = this.sYOpts,
              i = this.scrollYStore,
              s = e || [];
            return (
              (i.startIndex = 0),
              (i.visibleIndex = 0),
              (this.fullData = s),
              (this.scrollYLoad = t.enabled && t.gt > -1 && t.gt <= s.length),
              this.handleData(),
              this.computeScrollLoad().then(() => {
                this.refreshScroll();
              })
            );
          },
          reloadData(e) {
            return this.clearScroll(), this.loadData(e);
          },
          handleData() {
            const e = this.fullData,
              t = this.scrollYLoad,
              i = this.scrollYStore;
            return (
              (this.items = t ? e.slice(i.startIndex, i.endIndex) : e.slice(0)),
              this.$nextTick()
            );
          },
          recalculate() {
            const e = this.$el;
            return e.clientWidth && e.clientHeight
              ? this.computeScrollLoad()
              : Promise.resolve();
          },
          clearScroll() {
            const e = this.$refs.virtualWrapper;
            return e && (e.scrollTop = 0), this.$nextTick();
          },
          refreshScroll() {
            const e = this.lastScrollLeft,
              t = this.lastScrollTop;
            return this.clearScroll().then(() => {
              if (e || t)
                return (
                  (this.lastScrollLeft = 0),
                  (this.lastScrollTop = 0),
                  this.scrollTo(e, t)
                );
            });
          },
          scrollTo(e, t) {
            const i = this.$refs.virtualWrapper;
            return (
              n.a.isNumber(e) && (i.scrollLeft = e),
              n.a.isNumber(t) && (i.scrollTop = t),
              this.scrollYLoad
                ? new Promise((e) => setTimeout(() => e(this.$nextTick()), 50))
                : this.$nextTick()
            );
          },
          computeScrollLoad() {
            return this.$nextTick().then(() => {
              const e = this.$refs,
                t = this.sYOpts,
                i = this.scrollYLoad,
                s = this.scrollYStore,
                o = e.virtualWrapper,
                r = e.virtualBody;
              let l,
                a = 0;
              if (
                (r &&
                  (t.sItem && (l = r.querySelector(t.sItem)),
                  l || (l = r.children[0])),
                l && (a = l.offsetHeight),
                (a = Math.max(20, a)),
                (s.rowHeight = a),
                i)
              ) {
                const e = Math.max(8, Math.ceil(o.clientHeight / a)),
                  i = t.oSize
                    ? n.a.toNumber(t.oSize)
                    : b.msie
                    ? 20
                    : b.edge
                    ? 10
                    : 0;
                (s.offsetSize = i),
                  (s.visibleSize = e),
                  (s.endIndex = Math.max(s.startIndex, e + i, s.endIndex)),
                  this.updateYData();
              } else this.updateYSpace();
              this.rowHeight = a;
            });
          },
          scrollEvent(e) {
            const t = e.target,
              i = t.scrollTop,
              s = t.scrollLeft,
              n = s !== this.lastScrollLeft,
              o = i !== this.lastScrollTop;
            (this.lastScrollTop = i),
              (this.lastScrollLeft = s),
              this.scrollYLoad && this.loadYData(e),
              this.$emit("scroll", {
                scrollLeft: s,
                scrollTop: i,
                isX: n,
                isY: o,
                $event: e,
              });
          },
          loadYData(e) {
            const t = this.scrollYStore,
              i = t.startIndex,
              s = t.endIndex,
              n = t.visibleSize,
              o = t.offsetSize,
              r = t.rowHeight,
              l = e.target,
              a = l.scrollTop,
              h = Math.floor(a / r),
              c = Math.max(0, h - 1 - o),
              d = h + n + o;
            (h <= i || h >= s - n - 1) &&
              ((i === c && s === d) ||
                ((t.startIndex = c), (t.endIndex = d), this.updateYData()));
          },
          updateYData() {
            this.handleData(), this.updateYSpace();
          },
          updateYSpace() {
            const e = this.scrollYStore,
              t = this.scrollYLoad,
              i = this.fullData;
            (this.bodyHeight = t ? i.length * e.rowHeight : 0),
              (this.topSpaceHeight = t
                ? Math.max(e.startIndex * e.rowHeight, 0)
                : 0);
          },
          handleGlobalResizeEvent() {
            this.recalculate();
          },
        },
      };
      const yr = Object.assign(br, {
        install(e) {
          e.component(br.name, br);
        },
      });
      var xr = {
        name: "VxePulldown",
        mixins: [bt],
        props: {
          disabled: Boolean,
          placement: String,
          size: { type: String, default: () => r.size },
          destroyOnClose: Boolean,
          transfer: Boolean,
        },
        data() {
          return {
            inited: !1,
            panelIndex: 0,
            panelStyle: null,
            panelPlacement: null,
            currentValue: null,
            visiblePanel: !1,
            animatVisible: !1,
            isActivated: !1,
          };
        },
        created() {
          M.on(this, "mousewheel", this.handleGlobalMousewheelEvent),
            M.on(this, "mousedown", this.handleGlobalMousedownEvent),
            M.on(this, "blur", this.handleGlobalBlurEvent);
        },
        beforeDestroy() {
          const e = this.$refs.panel;
          e && e.parentNode && e.parentNode.removeChild(e);
        },
        destroyed() {
          M.off(this, "mousewheel"),
            M.off(this, "mousedown"),
            M.off(this, "blur");
        },
        render(e) {
          const t = this.$scopedSlots,
            i = this.inited,
            s = this.vSize,
            n = this.destroyOnClose,
            o = this.transfer,
            r = this.isActivated,
            l = this.disabled,
            a = this.animatVisible,
            h = this.visiblePanel,
            c = this.panelStyle,
            d = this.panelPlacement,
            u = t.default,
            p = t.dropdown;
          return e(
            "div",
            {
              class: [
                "vxe-pulldown",
                {
                  [`size--${s}`]: s,
                  "is--visivle": h,
                  "is--disabled": l,
                  "is--active": r,
                },
              ],
            },
            [
              e(
                "div",
                { ref: "content", class: "vxe-pulldown--content" },
                u ? u.call(this, { $pulldown: this }, e) : []
              ),
              e(
                "div",
                {
                  ref: "panel",
                  class: [
                    "vxe-table--ignore-clear vxe-pulldown--panel",
                    {
                      [`size--${s}`]: s,
                      "is--transfer": o,
                      "animat--leave": a,
                      "animat--enter": h,
                    },
                  ],
                  attrs: { placement: d },
                  style: c,
                },
                p
                  ? [
                      e(
                        "div",
                        { class: "vxe-pulldown--wrapper" },
                        !i || (n && !h && !a)
                          ? []
                          : p.call(this, { $pulldown: this }, e)
                      ),
                    ]
                  : []
              ),
            ]
          );
        },
        methods: {
          handleGlobalMousewheelEvent(e) {
            const t = this.$refs,
              i = this.disabled,
              s = this.visiblePanel;
            i ||
              (s &&
                (A.getEventTargetNode(e, t.panel).flag
                  ? this.updatePlacement()
                  : (this.hidePanel(),
                    this.$emit("hide-panel", { $event: e }))));
          },
          handleGlobalMousedownEvent(e) {
            const t = this.$refs,
              i = this.$el,
              s = this.disabled,
              n = this.visiblePanel;
            s ||
              ((this.isActivated =
                A.getEventTargetNode(e, i).flag ||
                A.getEventTargetNode(e, t.panel).flag),
              n &&
                !this.isActivated &&
                (this.hidePanel(), this.$emit("hide-panel", { $event: e })));
          },
          handleGlobalBlurEvent(e) {
            this.visiblePanel &&
              ((this.isActivated = !1),
              this.hidePanel(),
              this.$emit("hide-panel", { $event: e }));
          },
          updateZindex() {
            this.panelIndex < g.getLastZIndex() &&
              (this.panelIndex = g.nextZIndex());
          },
          isPanelVisible() {
            return this.visiblePanel;
          },
          togglePanel() {
            return this.visiblePanel ? this.hidePanel() : this.showPanel();
          },
          showPanel() {
            return (
              this.inited ||
                ((this.inited = !0),
                this.transfer && document.body.appendChild(this.$refs.panel)),
              new Promise((e) => {
                this.disabled
                  ? e(this.$nextTick())
                  : (clearTimeout(this.hidePanelTimeout),
                    (this.isActivated = !0),
                    (this.animatVisible = !0),
                    setTimeout(() => {
                      (this.visiblePanel = !0),
                        this.updatePlacement(),
                        setTimeout(() => {
                          e(this.updatePlacement());
                        }, 40);
                    }, 10),
                    this.updateZindex());
              })
            );
          },
          hidePanel() {
            return (
              (this.visiblePanel = !1),
              new Promise((e) => {
                this.animatVisible
                  ? (this.hidePanelTimeout = setTimeout(() => {
                      (this.animatVisible = !1), e(this.$nextTick());
                    }, 350))
                  : e(this.$nextTick());
              })
            );
          },
          updatePlacement() {
            return this.$nextTick().then(() => {
              const e = this.$refs,
                t = this.transfer,
                i = this.placement,
                s = this.panelIndex,
                n = this.visiblePanel;
              if (n) {
                const n = e.panel,
                  o = e.content;
                if (n && o) {
                  const e = o.offsetHeight,
                    r = o.offsetWidth,
                    l = n.offsetHeight,
                    a = n.offsetWidth,
                    h = 5,
                    c = { zIndex: s },
                    d = A.getAbsolutePos(o),
                    u = d.boundingTop,
                    p = d.boundingLeft,
                    f = d.visibleHeight,
                    m = d.visibleWidth;
                  let g = "bottom";
                  if (t) {
                    let t = p,
                      s = u + e;
                    "top" === i
                      ? ((g = "top"), (s = u - l))
                      : i ||
                        (s + l + h > f && ((g = "top"), (s = u - l)),
                        s < h && ((g = "bottom"), (s = u + e))),
                      t + a + h > m && (t -= t + a + h - m),
                      t < h && (t = h),
                      Object.assign(c, {
                        left: `${t}px`,
                        top: `${s}px`,
                        minWidth: `${r}px`,
                      });
                  } else
                    "top" === i
                      ? ((g = "top"), (c.bottom = `${e}px`))
                      : i ||
                        (u + e + l > f &&
                          u - e - l > h &&
                          ((g = "top"), (c.bottom = `${e}px`)));
                  (this.panelStyle = c), (this.panelPlacement = g);
                }
              }
              return this.$nextTick();
            });
          },
        },
      };
      const wr = Object.assign(xr, {
        install(e) {
          e.component(xr.name, xr);
        },
      });
      const Sr = [
        Bn,
        jn,
        Je,
        mi,
        _i,
        yi,
        kn,
        $n,
        Dn,
        Gn,
        Yn,
        oo,
        uo,
        go,
        vo,
        bo,
        yo,
        wo,
        Eo,
        ko,
        Oo,
        Ro,
        No,
        Vo,
        nr,
        ar,
        cr,
        fr,
        mr,
        gr,
        _r,
        yr,
        wr,
        di,
      ];
      function Er(e, t) {
        n.a.isPlainObject(t) && Xe.setup(t), Sr.map((t) => t.install(e));
      }
      Xe.setup({ i18n: (e) => "" }),
        (Xe.install = Er),
        "undefined" !== typeof window &&
          window.Vue &&
          window.Vue.use &&
          window.Vue.use(Xe);
      t["a"] = Xe;
    },
    "68cf": function (e, t, i) {
      e.exports = {
        "error-icon": "Alert_error-icon_2Z2s3",
        "warn-icon": "Alert_warn-icon_KEl3B",
        "success-icon": "Alert_success-icon_2VlAc",
        "comfirm-icon": "Alert_comfirm-icon_13VxH",
        container: "Alert_container_1ZxQI",
        msgtxt: "Alert_msgtxt_3Fow8",
        btnbar: "Alert_btnbar_2INvy",
        modal: "Alert_modal_Dp4qA",
      };
    },
    "6b1a": function (e, t, i) {
      e.exports = {
        container: "List_container_14wSY",
        border: "List_border_29s5f",
        ul: "List_ul_3R8Um",
        item: "List_item_3dVHo",
        wxImg: "List_wxImg_1bFpa",
        icon_url: "List_icon_url_9rTiE",
        icon_css: "List_icon_css_3uyGm",
        btn_close: "List_btn_close_3mmWF",
        disabled: "List_disabled__3ehA",
      };
    },
    "6c89": function (e, t, i) {
      "use strict";
      (function (e, t) {
        i("28a5"),
          i("3846"),
          i("d263"),
          i("3b2b"),
          i("4917"),
          i("a481"),
          i("ac6a"),
          i("ee1d"),
          i("6b54");
        !(function (e, s) {
          "object" == typeof exports && "object" == typeof t
            ? (t.exports = s())
            : "function" == typeof define && i("3c35")
            ? define([], s)
            : "object" == typeof exports
            ? (exports.flvjs = s())
            : (e.flvjs = s());
        })(self, function () {
          return (function () {
            var t = {
                264: function (t, i, s) {
                  /*!
                   * @overview es6-promise - a tiny implementation of Promises/A+.
                   * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
                   * @license   Licensed under MIT license
                   *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
                   * @version   v4.2.8+1e68dce6
                   */
                  t.exports = (function () {
                    function t(e) {
                      var t = typeof e;
                      return null !== e && ("object" === t || "function" === t);
                    }
                    function i(e) {
                      return "function" == typeof e;
                    }
                    var n = Array.isArray
                        ? Array.isArray
                        : function (e) {
                            return (
                              "[object Array]" ===
                              Object.prototype.toString.call(e)
                            );
                          },
                      o = 0,
                      r = void 0,
                      l = void 0,
                      a = function (e, t) {
                        (x[o] = e),
                          (x[o + 1] = t),
                          2 === (o += 2) && (l ? l(w) : E());
                      };
                    function h(e) {
                      l = e;
                    }
                    function c(e) {
                      a = e;
                    }
                    var d = "undefined" != typeof window ? window : void 0,
                      u = d || {},
                      p = u.MutationObserver || u.WebKitMutationObserver,
                      f =
                        "undefined" == typeof self &&
                        "undefined" != typeof e &&
                        "[object process]" === {}.toString.call(e),
                      m =
                        "undefined" != typeof Uint8ClampedArray &&
                        "undefined" != typeof importScripts &&
                        "undefined" != typeof MessageChannel;
                    function g() {
                      return function () {
                        return e.nextTick(w);
                      };
                    }
                    function v() {
                      return void 0 !== r
                        ? function () {
                            r(w);
                          }
                        : y();
                    }
                    function _() {
                      var e = 0,
                        t = new p(w),
                        i = document.createTextNode("");
                      return (
                        t.observe(i, { characterData: !0 }),
                        function () {
                          i.data = e = ++e % 2;
                        }
                      );
                    }
                    function b() {
                      var e = new MessageChannel();
                      return (
                        (e.port1.onmessage = w),
                        function () {
                          return e.port2.postMessage(0);
                        }
                      );
                    }
                    function y() {
                      var e = setTimeout;
                      return function () {
                        return e(w, 1);
                      };
                    }
                    var x = new Array(1e3);
                    function w() {
                      for (var e = 0; e < o; e += 2)
                        (0, x[e])(x[e + 1]),
                          (x[e] = void 0),
                          (x[e + 1] = void 0);
                      o = 0;
                    }
                    function S() {
                      try {
                        var e = Function("return this")().require("vertx");
                        return (r = e.runOnLoop || e.runOnContext), v();
                      } catch (e) {
                        return y();
                      }
                    }
                    var E = void 0;
                    function k(e, t) {
                      var i = this,
                        s = new this.constructor(O);
                      void 0 === s[T] && Y(s);
                      var n = i._state;
                      if (n) {
                        var o = arguments[n - 1];
                        a(function () {
                          return U(n, s, o, i._result);
                        });
                      } else j(i, s, e, t);
                      return s;
                    }
                    function C(e) {
                      var t = this;
                      if (e && "object" == typeof e && e.constructor === t)
                        return e;
                      var i = new t(O);
                      return B(i, e), i;
                    }
                    E = f ? g() : p ? _() : m ? b() : void 0 === d ? S() : y();
                    var T = Math.random().toString(36).substring(2);
                    function O() {}
                    var $ = void 0,
                      R = 1,
                      A = 2;
                    function L() {
                      return new TypeError(
                        "You cannot resolve a promise with itself"
                      );
                    }
                    function D() {
                      return new TypeError(
                        "A promises callback cannot return that same promise."
                      );
                    }
                    function I(e, t, i, s) {
                      try {
                        e.call(t, i, s);
                      } catch (e) {
                        return e;
                      }
                    }
                    function M(e, t, i) {
                      a(function (e) {
                        var s = !1,
                          n = I(
                            i,
                            t,
                            function (i) {
                              s || ((s = !0), t !== i ? B(e, i) : V(e, i));
                            },
                            function (t) {
                              s || ((s = !0), z(e, t));
                            },
                            "Settle: " + (e._label || " unknown promise")
                          );
                        !s && n && ((s = !0), z(e, n));
                      }, e);
                    }
                    function P(e, t) {
                      t._state === R
                        ? V(e, t._result)
                        : t._state === A
                        ? z(e, t._result)
                        : j(
                            t,
                            void 0,
                            function (t) {
                              return B(e, t);
                            },
                            function (t) {
                              return z(e, t);
                            }
                          );
                    }
                    function N(e, t, s) {
                      t.constructor === e.constructor &&
                      s === k &&
                      t.constructor.resolve === C
                        ? P(e, t)
                        : void 0 === s
                        ? V(e, t)
                        : i(s)
                        ? M(e, t, s)
                        : V(e, t);
                    }
                    function B(e, i) {
                      if (e === i) z(e, L());
                      else if (t(i)) {
                        var s = void 0;
                        try {
                          s = i.then;
                        } catch (t) {
                          return void z(e, t);
                        }
                        N(e, i, s);
                      } else V(e, i);
                    }
                    function F(e) {
                      e._onerror && e._onerror(e._result), H(e);
                    }
                    function V(e, t) {
                      e._state === $ &&
                        ((e._result = t),
                        (e._state = R),
                        0 !== e._subscribers.length && a(H, e));
                    }
                    function z(e, t) {
                      e._state === $ &&
                        ((e._state = A), (e._result = t), a(F, e));
                    }
                    function j(e, t, i, s) {
                      var n = e._subscribers,
                        o = n.length;
                      (e._onerror = null),
                        (n[o] = t),
                        (n[o + R] = i),
                        (n[o + A] = s),
                        0 === o && e._state && a(H, e);
                    }
                    function H(e) {
                      var t = e._subscribers,
                        i = e._state;
                      if (0 !== t.length) {
                        for (
                          var s = void 0, n = void 0, o = e._result, r = 0;
                          r < t.length;
                          r += 3
                        )
                          (s = t[r]), (n = t[r + i]), s ? U(i, s, n, o) : n(o);
                        e._subscribers.length = 0;
                      }
                    }
                    function U(e, t, s, n) {
                      var o = i(s),
                        r = void 0,
                        l = void 0,
                        a = !0;
                      if (o) {
                        try {
                          r = s(n);
                        } catch (e) {
                          (a = !1), (l = e);
                        }
                        if (t === r) return void z(t, D());
                      } else r = n;
                      t._state !== $ ||
                        (o && a
                          ? B(t, r)
                          : !1 === a
                          ? z(t, l)
                          : e === R
                          ? V(t, r)
                          : e === A && z(t, r));
                    }
                    function W(e, t) {
                      try {
                        t(
                          function (t) {
                            B(e, t);
                          },
                          function (t) {
                            z(e, t);
                          }
                        );
                      } catch (t) {
                        z(e, t);
                      }
                    }
                    var G = 0;
                    function Z() {
                      return G++;
                    }
                    function Y(e) {
                      (e[T] = G++),
                        (e._state = void 0),
                        (e._result = void 0),
                        (e._subscribers = []);
                    }
                    function q() {
                      return new Error(
                        "Array Methods must be provided an Array"
                      );
                    }
                    var X = (function () {
                      function e(e, t) {
                        (this._instanceConstructor = e),
                          (this.promise = new e(O)),
                          this.promise[T] || Y(this.promise),
                          n(t)
                            ? ((this.length = t.length),
                              (this._remaining = t.length),
                              (this._result = new Array(this.length)),
                              0 === this.length
                                ? V(this.promise, this._result)
                                : ((this.length = this.length || 0),
                                  this._enumerate(t),
                                  0 === this._remaining &&
                                    V(this.promise, this._result)))
                            : z(this.promise, q());
                      }
                      return (
                        (e.prototype._enumerate = function (e) {
                          for (
                            var t = 0;
                            this._state === $ && t < e.length;
                            t++
                          )
                            this._eachEntry(e[t], t);
                        }),
                        (e.prototype._eachEntry = function (e, t) {
                          var i = this._instanceConstructor,
                            s = i.resolve;
                          if (s === C) {
                            var n = void 0,
                              o = void 0,
                              r = !1;
                            try {
                              n = e.then;
                            } catch (e) {
                              (r = !0), (o = e);
                            }
                            if (n === k && e._state !== $)
                              this._settledAt(e._state, t, e._result);
                            else if ("function" != typeof n)
                              this._remaining--, (this._result[t] = e);
                            else if (i === ie) {
                              var l = new i(O);
                              r ? z(l, o) : N(l, e, n),
                                this._willSettleAt(l, t);
                            } else
                              this._willSettleAt(
                                new i(function (t) {
                                  return t(e);
                                }),
                                t
                              );
                          } else this._willSettleAt(s(e), t);
                        }),
                        (e.prototype._settledAt = function (e, t, i) {
                          var s = this.promise;
                          s._state === $ &&
                            (this._remaining--,
                            e === A ? z(s, i) : (this._result[t] = i)),
                            0 === this._remaining && V(s, this._result);
                        }),
                        (e.prototype._willSettleAt = function (e, t) {
                          var i = this;
                          j(
                            e,
                            void 0,
                            function (e) {
                              return i._settledAt(R, t, e);
                            },
                            function (e) {
                              return i._settledAt(A, t, e);
                            }
                          );
                        }),
                        e
                      );
                    })();
                    function K(e) {
                      return new X(this, e).promise;
                    }
                    function J(e) {
                      var t = this;
                      return n(e)
                        ? new t(function (i, s) {
                            for (var n = e.length, o = 0; o < n; o++)
                              t.resolve(e[o]).then(i, s);
                          })
                        : new t(function (e, t) {
                            return t(
                              new TypeError("You must pass an array to race.")
                            );
                          });
                    }
                    function Q(e) {
                      var t = new this(O);
                      return z(t, e), t;
                    }
                    function ee() {
                      throw new TypeError(
                        "You must pass a resolver function as the first argument to the promise constructor"
                      );
                    }
                    function te() {
                      throw new TypeError(
                        "Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
                      );
                    }
                    var ie = (function () {
                      function e(t) {
                        (this[T] = Z()),
                          (this._result = this._state = void 0),
                          (this._subscribers = []),
                          O !== t &&
                            ("function" != typeof t && ee(),
                            this instanceof e ? W(this, t) : te());
                      }
                      return (
                        (e.prototype.catch = function (e) {
                          return this.then(null, e);
                        }),
                        (e.prototype.finally = function (e) {
                          var t = this,
                            s = t.constructor;
                          return i(e)
                            ? t.then(
                                function (t) {
                                  return s.resolve(e()).then(function () {
                                    return t;
                                  });
                                },
                                function (t) {
                                  return s.resolve(e()).then(function () {
                                    throw t;
                                  });
                                }
                              )
                            : t.then(e, e);
                        }),
                        e
                      );
                    })();
                    function se() {
                      var e = void 0;
                      if (void 0 !== s.g) e = s.g;
                      else if ("undefined" != typeof self) e = self;
                      else
                        try {
                          e = Function("return this")();
                        } catch (e) {
                          throw new Error(
                            "polyfill failed because global object is unavailable in this environment"
                          );
                        }
                      var t = e.Promise;
                      if (t) {
                        var i = null;
                        try {
                          i = Object.prototype.toString.call(t.resolve());
                        } catch (e) {}
                        if ("[object Promise]" === i && !t.cast) return;
                      }
                      e.Promise = ie;
                    }
                    return (
                      (ie.prototype.then = k),
                      (ie.all = K),
                      (ie.race = J),
                      (ie.resolve = C),
                      (ie.reject = Q),
                      (ie._setScheduler = h),
                      (ie._setAsap = c),
                      (ie._asap = a),
                      (ie.polyfill = se),
                      (ie.Promise = ie),
                      ie
                    );
                  })();
                },
                716: function (e) {
                  var t,
                    i = "object" == typeof Reflect ? Reflect : null,
                    s =
                      i && "function" == typeof i.apply
                        ? i.apply
                        : function (e, t, i) {
                            return Function.prototype.apply.call(e, t, i);
                          };
                  t =
                    i && "function" == typeof i.ownKeys
                      ? i.ownKeys
                      : Object.getOwnPropertySymbols
                      ? function (e) {
                          return Object.getOwnPropertyNames(e).concat(
                            Object.getOwnPropertySymbols(e)
                          );
                        }
                      : function (e) {
                          return Object.getOwnPropertyNames(e);
                        };
                  var n =
                    Number.isNaN ||
                    function (e) {
                      return e != e;
                    };
                  function o() {
                    o.init.call(this);
                  }
                  (e.exports = o),
                    (e.exports.once = function (e, t) {
                      return new Promise(function (i, s) {
                        function n(i) {
                          e.removeListener(t, o), s(i);
                        }
                        function o() {
                          "function" == typeof e.removeListener &&
                            e.removeListener("error", n),
                            i([].slice.call(arguments));
                        }
                        m(e, t, o, { once: !0 }),
                          "error" !== t &&
                            (function (e, t, i) {
                              "function" == typeof e.on && m(e, "error", t, i);
                            })(e, n, { once: !0 });
                      });
                    }),
                    (o.EventEmitter = o),
                    (o.prototype._events = void 0),
                    (o.prototype._eventsCount = 0),
                    (o.prototype._maxListeners = void 0);
                  var r = 10;
                  function l(e) {
                    if ("function" != typeof e)
                      throw new TypeError(
                        'The "listener" argument must be of type Function. Received type ' +
                          typeof e
                      );
                  }
                  function a(e) {
                    return void 0 === e._maxListeners
                      ? o.defaultMaxListeners
                      : e._maxListeners;
                  }
                  function h(e, t, i, s) {
                    var n, o, r, h;
                    if (
                      (l(i),
                      void 0 === (o = e._events)
                        ? ((o = e._events = Object.create(null)),
                          (e._eventsCount = 0))
                        : (void 0 !== o.newListener &&
                            (e.emit(
                              "newListener",
                              t,
                              i.listener ? i.listener : i
                            ),
                            (o = e._events)),
                          (r = o[t])),
                      void 0 === r)
                    )
                      (r = o[t] = i), ++e._eventsCount;
                    else if (
                      ("function" == typeof r
                        ? (r = o[t] = s ? [i, r] : [r, i])
                        : s
                        ? r.unshift(i)
                        : r.push(i),
                      (n = a(e)) > 0 && r.length > n && !r.warned)
                    ) {
                      r.warned = !0;
                      var c = new Error(
                        "Possible EventEmitter memory leak detected. " +
                          r.length +
                          " " +
                          String(t) +
                          " listeners added. Use emitter.setMaxListeners() to increase limit"
                      );
                      (c.name = "MaxListenersExceededWarning"),
                        (c.emitter = e),
                        (c.type = t),
                        (c.count = r.length),
                        (h = c),
                        console && console.warn && console.warn(h);
                    }
                    return e;
                  }
                  function c() {
                    if (!this.fired)
                      return (
                        this.target.removeListener(this.type, this.wrapFn),
                        (this.fired = !0),
                        0 === arguments.length
                          ? this.listener.call(this.target)
                          : this.listener.apply(this.target, arguments)
                      );
                  }
                  function d(e, t, i) {
                    var s = {
                        fired: !1,
                        wrapFn: void 0,
                        target: e,
                        type: t,
                        listener: i,
                      },
                      n = c.bind(s);
                    return (n.listener = i), (s.wrapFn = n), n;
                  }
                  function u(e, t, i) {
                    var s = e._events;
                    if (void 0 === s) return [];
                    var n = s[t];
                    return void 0 === n
                      ? []
                      : "function" == typeof n
                      ? i
                        ? [n.listener || n]
                        : [n]
                      : i
                      ? (function (e) {
                          for (
                            var t = new Array(e.length), i = 0;
                            i < t.length;
                            ++i
                          )
                            t[i] = e[i].listener || e[i];
                          return t;
                        })(n)
                      : f(n, n.length);
                  }
                  function p(e) {
                    var t = this._events;
                    if (void 0 !== t) {
                      var i = t[e];
                      if ("function" == typeof i) return 1;
                      if (void 0 !== i) return i.length;
                    }
                    return 0;
                  }
                  function f(e, t) {
                    for (var i = new Array(t), s = 0; s < t; ++s) i[s] = e[s];
                    return i;
                  }
                  function m(e, t, i, s) {
                    if ("function" == typeof e.on)
                      s.once ? e.once(t, i) : e.on(t, i);
                    else {
                      if ("function" != typeof e.addEventListener)
                        throw new TypeError(
                          'The "emitter" argument must be of type EventEmitter. Received type ' +
                            typeof e
                        );
                      e.addEventListener(t, function n(o) {
                        s.once && e.removeEventListener(t, n), i(o);
                      });
                    }
                  }
                  Object.defineProperty(o, "defaultMaxListeners", {
                    enumerable: !0,
                    get: function () {
                      return r;
                    },
                    set: function (e) {
                      if ("number" != typeof e || e < 0 || n(e))
                        throw new RangeError(
                          'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
                            e +
                            "."
                        );
                      r = e;
                    },
                  }),
                    (o.init = function () {
                      (void 0 !== this._events &&
                        this._events !== Object.getPrototypeOf(this)._events) ||
                        ((this._events = Object.create(null)),
                        (this._eventsCount = 0)),
                        (this._maxListeners = this._maxListeners || void 0);
                    }),
                    (o.prototype.setMaxListeners = function (e) {
                      if ("number" != typeof e || e < 0 || n(e))
                        throw new RangeError(
                          'The value of "n" is out of range. It must be a non-negative number. Received ' +
                            e +
                            "."
                        );
                      return (this._maxListeners = e), this;
                    }),
                    (o.prototype.getMaxListeners = function () {
                      return a(this);
                    }),
                    (o.prototype.emit = function (e) {
                      for (var t = [], i = 1; i < arguments.length; i++)
                        t.push(arguments[i]);
                      var n = "error" === e,
                        o = this._events;
                      if (void 0 !== o) n = n && void 0 === o.error;
                      else if (!n) return !1;
                      if (n) {
                        var r;
                        if ((t.length > 0 && (r = t[0]), r instanceof Error))
                          throw r;
                        var l = new Error(
                          "Unhandled error." + (r ? " (" + r.message + ")" : "")
                        );
                        throw ((l.context = r), l);
                      }
                      var a = o[e];
                      if (void 0 === a) return !1;
                      if ("function" == typeof a) s(a, this, t);
                      else {
                        var h = a.length,
                          c = f(a, h);
                        for (i = 0; i < h; ++i) s(c[i], this, t);
                      }
                      return !0;
                    }),
                    (o.prototype.addListener = function (e, t) {
                      return h(this, e, t, !1);
                    }),
                    (o.prototype.on = o.prototype.addListener),
                    (o.prototype.prependListener = function (e, t) {
                      return h(this, e, t, !0);
                    }),
                    (o.prototype.once = function (e, t) {
                      return l(t), this.on(e, d(this, e, t)), this;
                    }),
                    (o.prototype.prependOnceListener = function (e, t) {
                      return l(t), this.prependListener(e, d(this, e, t)), this;
                    }),
                    (o.prototype.removeListener = function (e, t) {
                      var i, s, n, o, r;
                      if ((l(t), void 0 === (s = this._events))) return this;
                      if (void 0 === (i = s[e])) return this;
                      if (i === t || i.listener === t)
                        0 == --this._eventsCount
                          ? (this._events = Object.create(null))
                          : (delete s[e],
                            s.removeListener &&
                              this.emit("removeListener", e, i.listener || t));
                      else if ("function" != typeof i) {
                        for (n = -1, o = i.length - 1; o >= 0; o--)
                          if (i[o] === t || i[o].listener === t) {
                            (r = i[o].listener), (n = o);
                            break;
                          }
                        if (n < 0) return this;
                        0 === n
                          ? i.shift()
                          : (function (e, t) {
                              for (; t + 1 < e.length; t++) e[t] = e[t + 1];
                              e.pop();
                            })(i, n),
                          1 === i.length && (s[e] = i[0]),
                          void 0 !== s.removeListener &&
                            this.emit("removeListener", e, r || t);
                      }
                      return this;
                    }),
                    (o.prototype.off = o.prototype.removeListener),
                    (o.prototype.removeAllListeners = function (e) {
                      var t, i, s;
                      if (void 0 === (i = this._events)) return this;
                      if (void 0 === i.removeListener)
                        return (
                          0 === arguments.length
                            ? ((this._events = Object.create(null)),
                              (this._eventsCount = 0))
                            : void 0 !== i[e] &&
                              (0 == --this._eventsCount
                                ? (this._events = Object.create(null))
                                : delete i[e]),
                          this
                        );
                      if (0 === arguments.length) {
                        var n,
                          o = Object.keys(i);
                        for (s = 0; s < o.length; ++s)
                          "removeListener" !== (n = o[s]) &&
                            this.removeAllListeners(n);
                        return (
                          this.removeAllListeners("removeListener"),
                          (this._events = Object.create(null)),
                          (this._eventsCount = 0),
                          this
                        );
                      }
                      if ("function" == typeof (t = i[e]))
                        this.removeListener(e, t);
                      else if (void 0 !== t)
                        for (s = t.length - 1; s >= 0; s--)
                          this.removeListener(e, t[s]);
                      return this;
                    }),
                    (o.prototype.listeners = function (e) {
                      return u(this, e, !0);
                    }),
                    (o.prototype.rawListeners = function (e) {
                      return u(this, e, !1);
                    }),
                    (o.listenerCount = function (e, t) {
                      return "function" == typeof e.listenerCount
                        ? e.listenerCount(t)
                        : p.call(e, t);
                    }),
                    (o.prototype.listenerCount = p),
                    (o.prototype.eventNames = function () {
                      return this._eventsCount > 0 ? t(this._events) : [];
                    });
                },
                397: function (e, t, i) {
                  function s(e) {
                    var t = {};
                    function i(s) {
                      if (t[s]) return t[s].exports;
                      var n = (t[s] = { i: s, l: !1, exports: {} });
                      return (
                        e[s].call(n.exports, n, n.exports, i),
                        (n.l = !0),
                        n.exports
                      );
                    }
                    (i.m = e),
                      (i.c = t),
                      (i.i = function (e) {
                        return e;
                      }),
                      (i.d = function (e, t, s) {
                        i.o(e, t) ||
                          Object.defineProperty(e, t, {
                            configurable: !1,
                            enumerable: !0,
                            get: s,
                          });
                      }),
                      (i.r = function (e) {
                        Object.defineProperty(e, "__esModule", { value: !0 });
                      }),
                      (i.n = function (e) {
                        var t =
                          e && e.__esModule
                            ? function () {
                                return e.default;
                              }
                            : function () {
                                return e;
                              };
                        return i.d(t, "a", t), t;
                      }),
                      (i.o = function (e, t) {
                        return Object.prototype.hasOwnProperty.call(e, t);
                      }),
                      (i.p = "/"),
                      (i.oe = function (e) {
                        throw (console.error(e), e);
                      });
                    var s = i((i.s = ENTRY_MODULE));
                    return s.default || s;
                  }
                  var n = "[\\.|\\-|\\+|\\w|/|@]+",
                    o =
                      "\\(\\s*(/\\*.*?\\*/)?\\s*.*?([\\.|\\-|\\+|\\w|/|@]+).*?\\)";
                  function r(e) {
                    return (e + "").replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
                  }
                  function l(e, t, s) {
                    var l = {};
                    l[s] = [];
                    var a = t.toString(),
                      h = a.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/);
                    if (!h) return l;
                    for (
                      var c,
                        d = h[1],
                        u = new RegExp("(\\\\n|\\W)" + r(d) + o, "g");
                      (c = u.exec(a));

                    )
                      "dll-reference" !== c[3] && l[s].push(c[3]);
                    for (
                      u = new RegExp(
                        "\\(" +
                          r(d) +
                          '\\("(dll-reference\\s(' +
                          n +
                          '))"\\)\\)' +
                          o,
                        "g"
                      );
                      (c = u.exec(a));

                    )
                      e[c[2]] || (l[s].push(c[1]), (e[c[2]] = i(c[1]).m)),
                        (l[c[2]] = l[c[2]] || []),
                        l[c[2]].push(c[4]);
                    for (var p, f = Object.keys(l), m = 0; m < f.length; m++)
                      for (var g = 0; g < l[f[m]].length; g++)
                        (p = l[f[m]][g]),
                          isNaN(1 * p) || (l[f[m]][g] = 1 * l[f[m]][g]);
                    return l;
                  }
                  function a(e) {
                    return Object.keys(e).reduce(function (t, i) {
                      return t || e[i].length > 0;
                    }, !1);
                  }
                  e.exports = function (e, t) {
                    t = t || {};
                    var n = { main: i.m },
                      o = t.all
                        ? { main: Object.keys(n.main) }
                        : (function (e, t) {
                            for (
                              var i = { main: [t] },
                                s = { main: [] },
                                n = { main: {} };
                              a(i);

                            )
                              for (
                                var o = Object.keys(i), r = 0;
                                r < o.length;
                                r++
                              ) {
                                var h = o[r],
                                  c = i[h].pop();
                                if (
                                  ((n[h] = n[h] || {}), !n[h][c] && e[h][c])
                                ) {
                                  (n[h][c] = !0),
                                    (s[h] = s[h] || []),
                                    s[h].push(c);
                                  for (
                                    var d = l(e, e[h][c], h),
                                      u = Object.keys(d),
                                      p = 0;
                                    p < u.length;
                                    p++
                                  )
                                    (i[u[p]] = i[u[p]] || []),
                                      (i[u[p]] = i[u[p]].concat(d[u[p]]));
                                }
                              }
                            return s;
                          })(n, e),
                      r = "";
                    Object.keys(o)
                      .filter(function (e) {
                        return "main" !== e;
                      })
                      .forEach(function (e) {
                        for (var t = 0; o[e][t]; ) t++;
                        o[e].push(t),
                          (n[e][t] =
                            "(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })"),
                          (r =
                            r +
                            "var " +
                            e +
                            " = (" +
                            s
                              .toString()
                              .replace("ENTRY_MODULE", JSON.stringify(t)) +
                            ")({" +
                            o[e]
                              .map(function (t) {
                                return (
                                  JSON.stringify(t) + ": " + n[e][t].toString()
                                );
                              })
                              .join(",") +
                            "});\n");
                      }),
                      (r =
                        r +
                        "new ((" +
                        s
                          .toString()
                          .replace("ENTRY_MODULE", JSON.stringify(e)) +
                        ")({" +
                        o.main
                          .map(function (e) {
                            return (
                              JSON.stringify(e) + ": " + n.main[e].toString()
                            );
                          })
                          .join(",") +
                        "}))(self);");
                    var h = new window.Blob([r], { type: "text/javascript" });
                    if (t.bare) return h;
                    var c = (
                        window.URL ||
                        window.webkitURL ||
                        window.mozURL ||
                        window.msURL
                      ).createObjectURL(h),
                      d = new window.Worker(c);
                    return (d.objectURL = c), d;
                  };
                },
                118: function (e, t) {
                  var i = (function () {
                    function e() {
                      (this.mimeType = null),
                        (this.duration = null),
                        (this.hasAudio = null),
                        (this.hasVideo = null),
                        (this.audioCodec = null),
                        (this.videoCodec = null),
                        (this.audioDataRate = null),
                        (this.videoDataRate = null),
                        (this.audioSampleRate = null),
                        (this.audioChannelCount = null),
                        (this.width = null),
                        (this.height = null),
                        (this.fps = null),
                        (this.profile = null),
                        (this.level = null),
                        (this.refFrames = null),
                        (this.chromaFormat = null),
                        (this.sarNum = null),
                        (this.sarDen = null),
                        (this.metadata = null),
                        (this.segments = null),
                        (this.segmentCount = null),
                        (this.hasKeyframesIndex = null),
                        (this.keyframesIndex = null);
                    }
                    return (
                      (e.prototype.isComplete = function () {
                        var e =
                            !1 === this.hasAudio ||
                            (!0 === this.hasAudio &&
                              null != this.audioCodec &&
                              null != this.audioSampleRate &&
                              null != this.audioChannelCount),
                          t =
                            !1 === this.hasVideo ||
                            (!0 === this.hasVideo &&
                              null != this.videoCodec &&
                              null != this.width &&
                              null != this.height &&
                              null != this.fps &&
                              null != this.profile &&
                              null != this.level &&
                              null != this.refFrames &&
                              null != this.chromaFormat &&
                              null != this.sarNum &&
                              null != this.sarDen);
                        return (
                          null != this.mimeType &&
                          null != this.duration &&
                          null != this.metadata &&
                          null != this.hasKeyframesIndex &&
                          e &&
                          t
                        );
                      }),
                      (e.prototype.isSeekable = function () {
                        return !0 === this.hasKeyframesIndex;
                      }),
                      (e.prototype.getNearestKeyframe = function (e) {
                        if (null == this.keyframesIndex) return null;
                        var t = this.keyframesIndex,
                          i = this._search(t.times, e);
                        return {
                          index: i,
                          milliseconds: t.times[i],
                          fileposition: t.filepositions[i],
                        };
                      }),
                      (e.prototype._search = function (e, t) {
                        var i = 0,
                          s = e.length - 1,
                          n = 0,
                          o = 0,
                          r = s;
                        for (t < e[0] && ((i = 0), (o = r + 1)); o <= r; ) {
                          if (
                            (n = o + Math.floor((r - o) / 2)) === s ||
                            (t >= e[n] && t < e[n + 1])
                          ) {
                            i = n;
                            break;
                          }
                          e[n] < t ? (o = n + 1) : (r = n - 1);
                        }
                        return i;
                      }),
                      e
                    );
                  })();
                  t.Z = i;
                },
                51: function (e, t, i) {
                  i.d(t, {
                    Wk: function () {
                      return s;
                    },
                    Yy: function () {
                      return n;
                    },
                    Vn: function () {
                      return o;
                    },
                    J1: function () {
                      return r;
                    },
                  });
                  var s = function (e, t, i, s, n) {
                      (this.dts = e),
                        (this.pts = t),
                        (this.duration = i),
                        (this.originalDts = s),
                        (this.isSyncPoint = n),
                        (this.fileposition = null);
                    },
                    n = (function () {
                      function e() {
                        (this.beginDts = 0),
                          (this.endDts = 0),
                          (this.beginPts = 0),
                          (this.endPts = 0),
                          (this.originalBeginDts = 0),
                          (this.originalEndDts = 0),
                          (this.syncPoints = []),
                          (this.firstSample = null),
                          (this.lastSample = null);
                      }
                      return (
                        (e.prototype.appendSyncPoint = function (e) {
                          (e.isSyncPoint = !0), this.syncPoints.push(e);
                        }),
                        e
                      );
                    })(),
                    o = (function () {
                      function e() {
                        this._list = [];
                      }
                      return (
                        (e.prototype.clear = function () {
                          this._list = [];
                        }),
                        (e.prototype.appendArray = function (e) {
                          var t = this._list;
                          0 !== e.length &&
                            (t.length > 0 &&
                              e[0].originalDts < t[t.length - 1].originalDts &&
                              this.clear(),
                            Array.prototype.push.apply(t, e));
                        }),
                        (e.prototype.getLastSyncPointBeforeDts = function (e) {
                          if (0 == this._list.length) return null;
                          var t = this._list,
                            i = 0,
                            s = t.length - 1,
                            n = 0,
                            o = 0,
                            r = s;
                          for (
                            e < t[0].dts && ((i = 0), (o = r + 1));
                            o <= r;

                          ) {
                            if (
                              (n = o + Math.floor((r - o) / 2)) === s ||
                              (e >= t[n].dts && e < t[n + 1].dts)
                            ) {
                              i = n;
                              break;
                            }
                            t[n].dts < e ? (o = n + 1) : (r = n - 1);
                          }
                          return this._list[i];
                        }),
                        e
                      );
                    })(),
                    r = (function () {
                      function e(e) {
                        (this._type = e),
                          (this._list = []),
                          (this._lastAppendLocation = -1);
                      }
                      return (
                        Object.defineProperty(e.prototype, "type", {
                          get: function () {
                            return this._type;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "length", {
                          get: function () {
                            return this._list.length;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype.isEmpty = function () {
                          return 0 === this._list.length;
                        }),
                        (e.prototype.clear = function () {
                          (this._list = []), (this._lastAppendLocation = -1);
                        }),
                        (e.prototype._searchNearestSegmentBefore = function (
                          e
                        ) {
                          var t = this._list;
                          if (0 === t.length) return -2;
                          var i = t.length - 1,
                            s = 0,
                            n = 0,
                            o = i,
                            r = 0;
                          if (e < t[0].originalBeginDts) return -1;
                          for (; n <= o; ) {
                            if (
                              (s = n + Math.floor((o - n) / 2)) === i ||
                              (e > t[s].lastSample.originalDts &&
                                e < t[s + 1].originalBeginDts)
                            ) {
                              r = s;
                              break;
                            }
                            t[s].originalBeginDts < e
                              ? (n = s + 1)
                              : (o = s - 1);
                          }
                          return r;
                        }),
                        (e.prototype._searchNearestSegmentAfter = function (e) {
                          return this._searchNearestSegmentBefore(e) + 1;
                        }),
                        (e.prototype.append = function (e) {
                          var t = this._list,
                            i = e,
                            s = this._lastAppendLocation,
                            n = 0;
                          -1 !== s &&
                          s < t.length &&
                          i.originalBeginDts >= t[s].lastSample.originalDts &&
                          (s === t.length - 1 ||
                            (s < t.length - 1 &&
                              i.originalBeginDts < t[s + 1].originalBeginDts))
                            ? (n = s + 1)
                            : t.length > 0 &&
                              (n =
                                this._searchNearestSegmentBefore(
                                  i.originalBeginDts
                                ) + 1),
                            (this._lastAppendLocation = n),
                            this._list.splice(n, 0, i);
                        }),
                        (e.prototype.getLastSegmentBefore = function (e) {
                          var t = this._searchNearestSegmentBefore(e);
                          return t >= 0 ? this._list[t] : null;
                        }),
                        (e.prototype.getLastSampleBefore = function (e) {
                          var t = this.getLastSegmentBefore(e);
                          return null != t ? t.lastSample : null;
                        }),
                        (e.prototype.getLastSyncPointBefore = function (e) {
                          for (
                            var t = this._searchNearestSegmentBefore(e),
                              i = this._list[t].syncPoints;
                            0 === i.length && t > 0;

                          )
                            t--, (i = this._list[t].syncPoints);
                          return i.length > 0 ? i[i.length - 1] : null;
                        }),
                        e
                      );
                    })();
                },
                949: function (e, t, i) {
                  i.d(t, {
                    Z: function () {
                      return k;
                    },
                  });
                  var s = i(716),
                    n = i.n(s),
                    o = i(300),
                    r = i(538),
                    l = i(118);
                  function a(e, t, i) {
                    var s = e;
                    if (t + i < s.length) {
                      for (; i--; ) if (128 != (192 & s[++t])) return !1;
                      return !0;
                    }
                    return !1;
                  }
                  var h,
                    c = function (e) {
                      for (var t = [], i = e, s = 0, n = e.length; s < n; )
                        if (i[s] < 128) t.push(String.fromCharCode(i[s])), ++s;
                        else {
                          if (i[s] < 192);
                          else if (i[s] < 224) {
                            if (
                              a(i, s, 1) &&
                              (o = ((31 & i[s]) << 6) | (63 & i[s + 1])) >= 128
                            ) {
                              t.push(String.fromCharCode(65535 & o)), (s += 2);
                              continue;
                            }
                          } else if (i[s] < 240) {
                            if (
                              a(i, s, 2) &&
                              (o =
                                ((15 & i[s]) << 12) |
                                ((63 & i[s + 1]) << 6) |
                                (63 & i[s + 2])) >= 2048 &&
                              55296 != (63488 & o)
                            ) {
                              t.push(String.fromCharCode(65535 & o)), (s += 3);
                              continue;
                            }
                          } else if (i[s] < 248) {
                            var o;
                            if (
                              a(i, s, 3) &&
                              (o =
                                ((7 & i[s]) << 18) |
                                ((63 & i[s + 1]) << 12) |
                                ((63 & i[s + 2]) << 6) |
                                (63 & i[s + 3])) > 65536 &&
                              o < 1114112
                            ) {
                              (o -= 65536),
                                t.push(String.fromCharCode((o >>> 10) | 55296)),
                                t.push(String.fromCharCode((1023 & o) | 56320)),
                                (s += 4);
                              continue;
                            }
                          }
                          t.push(String.fromCharCode(65533)), ++s;
                        }
                      return t.join("");
                    },
                    d = i(29),
                    u =
                      ((h = new ArrayBuffer(2)),
                      new DataView(h).setInt16(0, 256, !0),
                      256 === new Int16Array(h)[0]),
                    p = (function () {
                      function e() {}
                      return (
                        (e.parseScriptData = function (t, i, s) {
                          var n = {};
                          try {
                            var r = e.parseValue(t, i, s),
                              l = e.parseValue(t, i + r.size, s - r.size);
                            n[r.data] = l.data;
                          } catch (e) {
                            o.Z.e("AMF", e.toString());
                          }
                          return n;
                        }),
                        (e.parseObject = function (t, i, s) {
                          if (s < 3)
                            throw new d.rT(
                              "Data not enough when parse ScriptDataObject"
                            );
                          var n = e.parseString(t, i, s),
                            o = e.parseValue(t, i + n.size, s - n.size),
                            r = o.objectEnd;
                          return {
                            data: { name: n.data, value: o.data },
                            size: n.size + o.size,
                            objectEnd: r,
                          };
                        }),
                        (e.parseVariable = function (t, i, s) {
                          return e.parseObject(t, i, s);
                        }),
                        (e.parseString = function (e, t, i) {
                          if (i < 2)
                            throw new d.rT("Data not enough when parse String");
                          var s = new DataView(e, t, i).getUint16(0, !u);
                          return {
                            data: s > 0 ? c(new Uint8Array(e, t + 2, s)) : "",
                            size: 2 + s,
                          };
                        }),
                        (e.parseLongString = function (e, t, i) {
                          if (i < 4)
                            throw new d.rT(
                              "Data not enough when parse LongString"
                            );
                          var s = new DataView(e, t, i).getUint32(0, !u);
                          return {
                            data: s > 0 ? c(new Uint8Array(e, t + 4, s)) : "",
                            size: 4 + s,
                          };
                        }),
                        (e.parseDate = function (e, t, i) {
                          if (i < 10)
                            throw new d.rT("Data size invalid when parse Date");
                          var s = new DataView(e, t, i),
                            n = s.getFloat64(0, !u),
                            o = s.getInt16(8, !u);
                          return {
                            data: new Date((n += 60 * o * 1e3)),
                            size: 10,
                          };
                        }),
                        (e.parseValue = function (t, i, s) {
                          if (s < 1)
                            throw new d.rT("Data not enough when parse Value");
                          var n,
                            r = new DataView(t, i, s),
                            l = 1,
                            a = r.getUint8(0),
                            h = !1;
                          try {
                            switch (a) {
                              case 0:
                                (n = r.getFloat64(1, !u)), (l += 8);
                                break;
                              case 1:
                                (n = !!r.getUint8(1)), (l += 1);
                                break;
                              case 2:
                                var c = e.parseString(t, i + 1, s - 1);
                                (n = c.data), (l += c.size);
                                break;
                              case 3:
                                n = {};
                                var p = 0;
                                for (
                                  9 == (16777215 & r.getUint32(s - 4, !u)) &&
                                  (p = 3);
                                  l < s - 4;

                                ) {
                                  var f = e.parseObject(t, i + l, s - l - p);
                                  if (f.objectEnd) break;
                                  (n[f.data.name] = f.data.value),
                                    (l += f.size);
                                }
                                l <= s - 3 &&
                                  9 === (16777215 & r.getUint32(l - 1, !u)) &&
                                  (l += 3);
                                break;
                              case 8:
                                for (
                                  n = {},
                                    l += 4,
                                    p = 0,
                                    9 == (16777215 & r.getUint32(s - 4, !u)) &&
                                      (p = 3);
                                  l < s - 8;

                                ) {
                                  var m = e.parseVariable(t, i + l, s - l - p);
                                  if (m.objectEnd) break;
                                  (n[m.data.name] = m.data.value),
                                    (l += m.size);
                                }
                                l <= s - 3 &&
                                  9 === (16777215 & r.getUint32(l - 1, !u)) &&
                                  (l += 3);
                                break;
                              case 9:
                                (n = void 0), (l = 1), (h = !0);
                                break;
                              case 10:
                                n = [];
                                var g = r.getUint32(1, !u);
                                l += 4;
                                for (var v = 0; v < g; v++) {
                                  var _ = e.parseValue(t, i + l, s - l);
                                  n.push(_.data), (l += _.size);
                                }
                                break;
                              case 11:
                                var b = e.parseDate(t, i + 1, s - 1);
                                (n = b.data), (l += b.size);
                                break;
                              case 12:
                                var y = e.parseString(t, i + 1, s - 1);
                                (n = y.data), (l += y.size);
                                break;
                              default:
                                (l = s),
                                  o.Z.w(
                                    "AMF",
                                    "Unsupported AMF value type " + a
                                  );
                            }
                          } catch (e) {
                            o.Z.e("AMF", e.toString());
                          }
                          return { data: n, size: l, objectEnd: h };
                        }),
                        e
                      );
                    })(),
                    f = (function () {
                      function e(e) {
                        (this.TAG = "ExpGolomb"),
                          (this._buffer = e),
                          (this._buffer_index = 0),
                          (this._total_bytes = e.byteLength),
                          (this._total_bits = 8 * e.byteLength),
                          (this._current_word = 0),
                          (this._current_word_bits_left = 0);
                      }
                      return (
                        (e.prototype.destroy = function () {
                          this._buffer = null;
                        }),
                        (e.prototype._fillCurrentWord = function () {
                          var e = this._total_bytes - this._buffer_index;
                          if (e <= 0)
                            throw new d.rT(
                              "ExpGolomb: _fillCurrentWord() but no bytes available"
                            );
                          var t = Math.min(4, e),
                            i = new Uint8Array(4);
                          i.set(
                            this._buffer.subarray(
                              this._buffer_index,
                              this._buffer_index + t
                            )
                          ),
                            (this._current_word = new DataView(
                              i.buffer
                            ).getUint32(0, !1)),
                            (this._buffer_index += t),
                            (this._current_word_bits_left = 8 * t);
                        }),
                        (e.prototype.readBits = function (e) {
                          if (e > 32)
                            throw new d.OC(
                              "ExpGolomb: readBits() bits exceeded max 32bits!"
                            );
                          if (e <= this._current_word_bits_left) {
                            var t = this._current_word >>> (32 - e);
                            return (
                              (this._current_word <<= e),
                              (this._current_word_bits_left -= e),
                              t
                            );
                          }
                          var i = this._current_word_bits_left
                            ? this._current_word
                            : 0;
                          i >>>= 32 - this._current_word_bits_left;
                          var s = e - this._current_word_bits_left;
                          this._fillCurrentWord();
                          var n = Math.min(s, this._current_word_bits_left),
                            o = this._current_word >>> (32 - n);
                          return (
                            (this._current_word <<= n),
                            (this._current_word_bits_left -= n),
                            (i << n) | o
                          );
                        }),
                        (e.prototype.readBool = function () {
                          return 1 === this.readBits(1);
                        }),
                        (e.prototype.readByte = function () {
                          return this.readBits(8);
                        }),
                        (e.prototype._skipLeadingZero = function () {
                          var e;
                          for (e = 0; e < this._current_word_bits_left; e++)
                            if (0 != (this._current_word & (2147483648 >>> e)))
                              return (
                                (this._current_word <<= e),
                                (this._current_word_bits_left -= e),
                                e
                              );
                          return (
                            this._fillCurrentWord(), e + this._skipLeadingZero()
                          );
                        }),
                        (e.prototype.readUEG = function () {
                          var e = this._skipLeadingZero();
                          return this.readBits(e + 1) - 1;
                        }),
                        (e.prototype.readSEG = function () {
                          var e = this.readUEG();
                          return 1 & e ? (e + 1) >>> 1 : -1 * (e >>> 1);
                        }),
                        e
                      );
                    })(),
                    m = (function () {
                      function e() {}
                      return (
                        (e._ebsp2rbsp = function (e) {
                          for (
                            var t = e,
                              i = t.byteLength,
                              s = new Uint8Array(i),
                              n = 0,
                              o = 0;
                            o < i;
                            o++
                          )
                            (o >= 2 &&
                              3 === t[o] &&
                              0 === t[o - 1] &&
                              0 === t[o - 2]) ||
                              ((s[n] = t[o]), n++);
                          return new Uint8Array(s.buffer, 0, n);
                        }),
                        (e.parseSPS = function (t) {
                          var i = e._ebsp2rbsp(t),
                            s = new f(i);
                          s.readByte();
                          var n = s.readByte();
                          s.readByte();
                          var o = s.readByte();
                          s.readUEG();
                          var r = e.getProfileString(n),
                            l = e.getLevelString(o),
                            a = 1,
                            h = 420,
                            c = 8;
                          if (
                            (100 === n ||
                              110 === n ||
                              122 === n ||
                              244 === n ||
                              44 === n ||
                              83 === n ||
                              86 === n ||
                              118 === n ||
                              128 === n ||
                              138 === n ||
                              144 === n) &&
                            (3 === (a = s.readUEG()) && s.readBits(1),
                            a <= 3 && (h = [0, 420, 422, 444][a]),
                            (c = s.readUEG() + 8),
                            s.readUEG(),
                            s.readBits(1),
                            s.readBool())
                          )
                            for (var d = 3 !== a ? 8 : 12, u = 0; u < d; u++)
                              s.readBool() &&
                                (u < 6
                                  ? e._skipScalingList(s, 16)
                                  : e._skipScalingList(s, 64));
                          s.readUEG();
                          var p = s.readUEG();
                          if (0 === p) s.readUEG();
                          else if (1 === p) {
                            s.readBits(1), s.readSEG(), s.readSEG();
                            var m = s.readUEG();
                            for (u = 0; u < m; u++) s.readSEG();
                          }
                          var g = s.readUEG();
                          s.readBits(1);
                          var v = s.readUEG(),
                            _ = s.readUEG(),
                            b = s.readBits(1);
                          0 === b && s.readBits(1), s.readBits(1);
                          var y = 0,
                            x = 0,
                            w = 0,
                            S = 0;
                          s.readBool() &&
                            ((y = s.readUEG()),
                            (x = s.readUEG()),
                            (w = s.readUEG()),
                            (S = s.readUEG()));
                          var E = 1,
                            k = 1,
                            C = 0,
                            T = !0,
                            O = 0,
                            $ = 0;
                          if (s.readBool()) {
                            if (s.readBool()) {
                              var R = s.readByte();
                              R > 0 && R < 16
                                ? ((E = [
                                    1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15,
                                    64, 160, 4, 3, 2,
                                  ][R - 1]),
                                  (k = [
                                    1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11,
                                    33, 99, 3, 2, 1,
                                  ][R - 1]))
                                : 255 === R &&
                                  ((E = (s.readByte() << 8) | s.readByte()),
                                  (k = (s.readByte() << 8) | s.readByte()));
                            }
                            if (
                              (s.readBool() && s.readBool(),
                              s.readBool() &&
                                (s.readBits(4), s.readBool() && s.readBits(24)),
                              s.readBool() && (s.readUEG(), s.readUEG()),
                              s.readBool())
                            ) {
                              var A = s.readBits(32),
                                L = s.readBits(32);
                              (T = s.readBool()), (C = (O = L) / ($ = 2 * A));
                            }
                          }
                          var D = 1;
                          (1 === E && 1 === k) || (D = E / k);
                          var I = 0,
                            M = 0;
                          0 === a
                            ? ((I = 1), (M = 2 - b))
                            : ((I = 3 === a ? 1 : 2),
                              (M = (1 === a ? 2 : 1) * (2 - b)));
                          var P = 16 * (v + 1),
                            N = 16 * (_ + 1) * (2 - b);
                          (P -= (y + x) * I), (N -= (w + S) * M);
                          var B = Math.ceil(P * D);
                          return (
                            s.destroy(),
                            (s = null),
                            {
                              profile_string: r,
                              level_string: l,
                              bit_depth: c,
                              ref_frames: g,
                              chroma_format: h,
                              chroma_format_string: e.getChromaFormatString(h),
                              frame_rate: {
                                fixed: T,
                                fps: C,
                                fps_den: $,
                                fps_num: O,
                              },
                              sar_ratio: { width: E, height: k },
                              codec_size: { width: P, height: N },
                              present_size: { width: B, height: N },
                            }
                          );
                        }),
                        (e._skipScalingList = function (e, t) {
                          for (var i = 8, s = 8, n = 0; n < t; n++)
                            0 !== s && (s = (i + e.readSEG() + 256) % 256),
                              (i = 0 === s ? i : s);
                        }),
                        (e.getProfileString = function (e) {
                          switch (e) {
                            case 66:
                              return "Baseline";
                            case 77:
                              return "Main";
                            case 88:
                              return "Extended";
                            case 100:
                              return "High";
                            case 110:
                              return "High10";
                            case 122:
                              return "High422";
                            case 244:
                              return "High444";
                            default:
                              return "Unknown";
                          }
                        }),
                        (e.getLevelString = function (e) {
                          return (e / 10).toFixed(1);
                        }),
                        (e.getChromaFormatString = function (e) {
                          switch (e) {
                            case 420:
                              return "4:2:0";
                            case 422:
                              return "4:2:2";
                            case 444:
                              return "4:4:4";
                            default:
                              return "Unknown";
                          }
                        }),
                        e
                      );
                    })(),
                    g = i(600),
                    v = (function () {
                      function e(e, t) {
                        (this.TAG = "FLVDemuxer"),
                          (this._config = t),
                          (this._onError = null),
                          (this._onMediaInfo = null),
                          (this._onMetaDataArrived = null),
                          (this._onScriptDataArrived = null),
                          (this._onTrackMetadata = null),
                          (this._onDataAvailable = null),
                          (this._dataOffset = e.dataOffset),
                          (this._firstParse = !0),
                          (this._dispatch = !1),
                          (this._hasAudio = e.hasAudioTrack),
                          (this._hasVideo = e.hasVideoTrack),
                          (this._hasAudioFlagOverrided = !1),
                          (this._hasVideoFlagOverrided = !1),
                          (this._audioInitialMetadataDispatched = !1),
                          (this._videoInitialMetadataDispatched = !1),
                          (this._mediaInfo = new l.Z()),
                          (this._mediaInfo.hasAudio = this._hasAudio),
                          (this._mediaInfo.hasVideo = this._hasVideo),
                          (this._metadata = null),
                          (this._audioMetadata = null),
                          (this._videoMetadata = null),
                          (this._naluLengthSize = 4),
                          (this._timestampBase = 0),
                          (this._timescale = 1e3),
                          (this._duration = 0),
                          (this._durationOverrided = !1),
                          (this._referenceFrameRate = {
                            fixed: !0,
                            fps: 23.976,
                            fps_num: 23976,
                            fps_den: 1e3,
                          }),
                          (this._flvSoundRateTable = [
                            5500, 11025, 22050, 44100, 48e3,
                          ]),
                          (this._mpegSamplingRates = [
                            96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050,
                            16e3, 12e3, 11025, 8e3, 7350,
                          ]),
                          (this._mpegAudioV10SampleRateTable = [
                            44100, 48e3, 32e3, 0,
                          ]),
                          (this._mpegAudioV20SampleRateTable = [
                            22050, 24e3, 16e3, 0,
                          ]),
                          (this._mpegAudioV25SampleRateTable = [
                            11025, 12e3, 8e3, 0,
                          ]),
                          (this._mpegAudioL1BitRateTable = [
                            0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320,
                            352, 384, 416, 448, -1,
                          ]),
                          (this._mpegAudioL2BitRateTable = [
                            0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224,
                            256, 320, 384, -1,
                          ]),
                          (this._mpegAudioL3BitRateTable = [
                            0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192,
                            224, 256, 320, -1,
                          ]),
                          (this._videoTrack = {
                            type: "video",
                            id: 1,
                            sequenceNumber: 0,
                            samples: [],
                            length: 0,
                          }),
                          (this._audioTrack = {
                            type: "audio",
                            id: 2,
                            sequenceNumber: 0,
                            samples: [],
                            length: 0,
                          }),
                          (this._littleEndian = (function () {
                            var e = new ArrayBuffer(2);
                            return (
                              new DataView(e).setInt16(0, 256, !0),
                              256 === new Int16Array(e)[0]
                            );
                          })());
                      }
                      return (
                        (e.prototype.destroy = function () {
                          (this._mediaInfo = null),
                            (this._metadata = null),
                            (this._audioMetadata = null),
                            (this._videoMetadata = null),
                            (this._videoTrack = null),
                            (this._audioTrack = null),
                            (this._onError = null),
                            (this._onMediaInfo = null),
                            (this._onMetaDataArrived = null),
                            (this._onScriptDataArrived = null),
                            (this._onTrackMetadata = null),
                            (this._onDataAvailable = null);
                        }),
                        (e.probe = function (e) {
                          var t = new Uint8Array(e),
                            i = { match: !1 };
                          if (
                            70 !== t[0] ||
                            76 !== t[1] ||
                            86 !== t[2] ||
                            1 !== t[3]
                          )
                            return i;
                          var s,
                            n,
                            o = (4 & t[4]) >>> 2 != 0,
                            r = 0 != (1 & t[4]),
                            l =
                              ((s = t)[(n = 5)] << 24) |
                              (s[n + 1] << 16) |
                              (s[n + 2] << 8) |
                              s[n + 3];
                          return l < 9
                            ? i
                            : {
                                match: !0,
                                consumed: l,
                                dataOffset: l,
                                hasAudioTrack: o,
                                hasVideoTrack: r,
                              };
                        }),
                        (e.prototype.bindDataSource = function (e) {
                          return (
                            (e.onDataArrival = this.parseChunks.bind(this)),
                            this
                          );
                        }),
                        Object.defineProperty(e.prototype, "onTrackMetadata", {
                          get: function () {
                            return this._onTrackMetadata;
                          },
                          set: function (e) {
                            this._onTrackMetadata = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onMediaInfo", {
                          get: function () {
                            return this._onMediaInfo;
                          },
                          set: function (e) {
                            this._onMediaInfo = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(
                          e.prototype,
                          "onMetaDataArrived",
                          {
                            get: function () {
                              return this._onMetaDataArrived;
                            },
                            set: function (e) {
                              this._onMetaDataArrived = e;
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(
                          e.prototype,
                          "onScriptDataArrived",
                          {
                            get: function () {
                              return this._onScriptDataArrived;
                            },
                            set: function (e) {
                              this._onScriptDataArrived = e;
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(e.prototype, "onError", {
                          get: function () {
                            return this._onError;
                          },
                          set: function (e) {
                            this._onError = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onDataAvailable", {
                          get: function () {
                            return this._onDataAvailable;
                          },
                          set: function (e) {
                            this._onDataAvailable = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "timestampBase", {
                          get: function () {
                            return this._timestampBase;
                          },
                          set: function (e) {
                            this._timestampBase = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(
                          e.prototype,
                          "overridedDuration",
                          {
                            get: function () {
                              return this._duration;
                            },
                            set: function (e) {
                              (this._durationOverrided = !0),
                                (this._duration = e),
                                (this._mediaInfo.duration = e);
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(
                          e.prototype,
                          "overridedHasAudio",
                          {
                            set: function (e) {
                              (this._hasAudioFlagOverrided = !0),
                                (this._hasAudio = e),
                                (this._mediaInfo.hasAudio = e);
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(
                          e.prototype,
                          "overridedHasVideo",
                          {
                            set: function (e) {
                              (this._hasVideoFlagOverrided = !0),
                                (this._hasVideo = e),
                                (this._mediaInfo.hasVideo = e);
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        (e.prototype.resetMediaInfo = function () {
                          this._mediaInfo = new l.Z();
                        }),
                        (e.prototype._isInitialMetadataDispatched =
                          function () {
                            return this._hasAudio && this._hasVideo
                              ? this._videoInitialMetadataDispatched
                              : this._hasAudio && !this._hasVideo
                              ? this._audioInitialMetadataDispatched
                              : !(this._hasAudio || !this._hasVideo) &&
                                this._videoInitialMetadataDispatched;
                          }),
                        (e.prototype.parseChunks = function (t, i) {
                          if (
                            !(
                              this._onError &&
                              this._onMediaInfo &&
                              this._onTrackMetadata &&
                              this._onDataAvailable
                            )
                          )
                            throw new d.rT(
                              "Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified"
                            );
                          var s = 0,
                            n = this._littleEndian;
                          if (0 === i) {
                            if (!(t.byteLength > 13)) return 0;
                            s = e.probe(t).dataOffset;
                          }
                          for (
                            this._firstParse &&
                            ((this._firstParse = !1),
                            i + s !== this._dataOffset &&
                              o.Z.w(
                                this.TAG,
                                "First time parsing but chunk byteStart invalid!"
                              ),
                            0 !== (r = new DataView(t, s)).getUint32(0, !n) &&
                              o.Z.w(this.TAG, "PrevTagSize0 !== 0 !!!"),
                            (s += 4));
                            s < t.byteLength;

                          ) {
                            this._dispatch = !0;
                            var r = new DataView(t, s);
                            if (s + 11 + 4 > t.byteLength) break;
                            var l = r.getUint8(0),
                              a = 16777215 & r.getUint32(0, !n);
                            if (s + 11 + a + 4 > t.byteLength) break;
                            if (8 === l || 9 === l || 18 === l) {
                              var h = r.getUint8(4),
                                c = r.getUint8(5),
                                u =
                                  r.getUint8(6) |
                                  (c << 8) |
                                  (h << 16) |
                                  (r.getUint8(7) << 24);
                              0 !== (16777215 & r.getUint32(7, !n)) &&
                                o.Z.w(
                                  this.TAG,
                                  "Meet tag which has StreamID != 0!"
                                );
                              var p = s + 11;
                              switch (l) {
                                case 8:
                                  this._parseAudioData(t, p, a, u);
                                  break;
                                case 9:
                                  if (
                                    (this._parseVideoData(t, p, a, u, i + s),
                                    this._videoTrack.length > 0 &&
                                      this._videoTrack.samples.length > 0 &&
                                      this._hasVideo &&
                                      !this._hasRecvAudio &&
                                      this._audioMetadata)
                                  ) {
                                    var f =
                                      this._videoTrack.samples[
                                        this._videoTrack.samples.length - 1
                                      ].pts;
                                    if (
                                      ((this._lastAudioPts =
                                        this._lastAudioPts || f),
                                      this._lastAudioPts < f &&
                                        f - this._lastAudioPts >=
                                          this._audioMetadata.refSampleDuration)
                                    ) {
                                      this._lastAudioPts +=
                                        this._audioMetadata.refSampleDuration;
                                      var m = new Uint8Array([
                                        0, 200, 0, 128, 35, 128, 0, 200, 0, 128,
                                        35, 128,
                                      ]);
                                      this._audioTrack.samples.push({
                                        unit: m,
                                        length: m.byteLength,
                                        dts: this._lastAudioPts,
                                        pts: this._lastAudioPts,
                                      }),
                                        (this._audioTrack.length +=
                                          m.byteLength);
                                    }
                                  }
                                  break;
                                case 18:
                                  this._parseScriptData(t, p, a);
                              }
                              var g = r.getUint32(11 + a, !n);
                              g !== 11 + a &&
                                o.Z.w(this.TAG, "Invalid PrevTagSize " + g),
                                (s += 11 + a + 4);
                            } else
                              o.Z.w(
                                this.TAG,
                                "Unsupported tag type " + l + ", skipped"
                              ),
                                (s += 11 + a + 4);
                          }
                          return (
                            this._isInitialMetadataDispatched() &&
                              this._dispatch &&
                              (this._audioTrack.length ||
                                this._videoTrack.length) &&
                              this._onDataAvailable(
                                this._audioTrack,
                                this._videoTrack
                              ),
                            s
                          );
                        }),
                        (e.prototype._parseScriptData = function (e, t, i) {
                          var s = p.parseScriptData(e, t, i);
                          if (s.hasOwnProperty("onMetaData")) {
                            if (
                              null == s.onMetaData ||
                              "object" != typeof s.onMetaData
                            )
                              return void o.Z.w(
                                this.TAG,
                                "Invalid onMetaData structure!"
                              );
                            this._metadata &&
                              o.Z.w(this.TAG, "Found another onMetaData tag!"),
                              (this._metadata = s);
                            var n = this._metadata.onMetaData;
                            if (
                              (this._onMetaDataArrived &&
                                this._onMetaDataArrived(Object.assign({}, n)),
                              "boolean" == typeof n.hasAudio &&
                                !1 === this._hasAudioFlagOverrided &&
                                ((this._hasAudio = n.hasAudio),
                                (this._mediaInfo.hasAudio = this._hasAudio)),
                              "boolean" == typeof n.hasVideo &&
                                !1 === this._hasVideoFlagOverrided &&
                                ((this._hasVideo = n.hasVideo),
                                (this._mediaInfo.hasVideo = this._hasVideo)),
                              "number" == typeof n.audiodatarate &&
                                (this._mediaInfo.audioDataRate =
                                  n.audiodatarate),
                              "number" == typeof n.videodatarate &&
                                (this._mediaInfo.videoDataRate =
                                  n.videodatarate),
                              "number" == typeof n.width &&
                                (this._mediaInfo.width = n.width),
                              "number" == typeof n.height &&
                                (this._mediaInfo.height = n.height),
                              "number" == typeof n.duration)
                            ) {
                              if (!this._durationOverrided) {
                                var r = Math.floor(
                                  n.duration * this._timescale
                                );
                                (this._duration = r),
                                  (this._mediaInfo.duration = r);
                              }
                            } else this._mediaInfo.duration = 0;
                            if ("number" == typeof n.framerate) {
                              var l = Math.floor(1e3 * n.framerate);
                              if (l > 0) {
                                var a = l / 1e3;
                                (this._referenceFrameRate.fixed = !0),
                                  (this._referenceFrameRate.fps = a),
                                  (this._referenceFrameRate.fps_num = l),
                                  (this._referenceFrameRate.fps_den = 1e3),
                                  (this._mediaInfo.fps = a);
                              }
                            }
                            if ("object" == typeof n.keyframes) {
                              this._mediaInfo.hasKeyframesIndex = !0;
                              var h = n.keyframes;
                              (this._mediaInfo.keyframesIndex =
                                this._parseKeyframesIndex(h)),
                                (n.keyframes = null);
                            } else this._mediaInfo.hasKeyframesIndex = !1;
                            (this._dispatch = !1),
                              (this._mediaInfo.metadata = n),
                              o.Z.v(this.TAG, "Parsed onMetaData"),
                              this._mediaInfo.isComplete() &&
                                this._onMediaInfo(this._mediaInfo);
                          }
                          Object.keys(s).length > 0 &&
                            this._onScriptDataArrived &&
                            this._onScriptDataArrived(Object.assign({}, s));
                        }),
                        (e.prototype._parseKeyframesIndex = function (e) {
                          for (
                            var t = [], i = [], s = 1;
                            s < e.times.length;
                            s++
                          ) {
                            var n =
                              this._timestampBase +
                              Math.floor(1e3 * e.times[s]);
                            t.push(n), i.push(e.filepositions[s]);
                          }
                          return { times: t, filepositions: i };
                        }),
                        (e.prototype._parseAudioData = function (e, t, i, s) {
                          if (i <= 1)
                            o.Z.w(
                              this.TAG,
                              "Flv: Invalid audio packet, missing SoundData payload!"
                            );
                          else if (
                            !0 !== this._hasAudioFlagOverrided ||
                            !1 !== this._hasAudio
                          ) {
                            this._littleEndian;
                            var n = new DataView(e, t, i).getUint8(0),
                              r = n >>> 4;
                            if (2 === r || 10 === r) {
                              var l = 0,
                                a = (12 & n) >>> 2;
                              if (a >= 0 && a <= 4) {
                                l = this._flvSoundRateTable[a];
                                var h = 1 & n,
                                  c = this._audioMetadata,
                                  d = this._audioTrack;
                                if (
                                  (c ||
                                    (!1 === this._hasAudio &&
                                      !1 === this._hasAudioFlagOverrided &&
                                      ((this._hasAudio = !0),
                                      (this._mediaInfo.hasAudio = !0)),
                                    ((c = this._audioMetadata = {}).type =
                                      "audio"),
                                    (c.id = d.id),
                                    (c.timescale = this._timescale),
                                    (c.duration = this._duration),
                                    (c.audioSampleRate = l),
                                    (c.channelCount = 0 === h ? 1 : 2)),
                                  10 === r)
                                ) {
                                  var u = this._parseAACAudioData(
                                    e,
                                    t + 1,
                                    i - 1
                                  );
                                  if (null == u) return;
                                  if (0 === u.packetType) {
                                    c.config &&
                                      o.Z.w(
                                        this.TAG,
                                        "Found another AudioSpecificConfig!"
                                      );
                                    var p = u.data;
                                    (c.audioSampleRate = p.samplingRate),
                                      (c.channelCount = p.channelCount),
                                      (c.codec = p.codec),
                                      (c.originalCodec = p.originalCodec),
                                      (c.config = p.config),
                                      (c.refSampleDuration =
                                        (1024 / c.audioSampleRate) *
                                        c.timescale),
                                      o.Z.v(
                                        this.TAG,
                                        "Parsed AudioSpecificConfig"
                                      ),
                                      this._isInitialMetadataDispatched()
                                        ? this._dispatch &&
                                          (this._audioTrack.length ||
                                            this._videoTrack.length) &&
                                          this._onDataAvailable(
                                            this._audioTrack,
                                            this._videoTrack
                                          )
                                        : (this._audioInitialMetadataDispatched =
                                            !0),
                                      (this._dispatch = !1),
                                      this._onTrackMetadata("audio", c),
                                      ((v = this._mediaInfo).audioCodec =
                                        c.originalCodec),
                                      (v.audioSampleRate = c.audioSampleRate),
                                      (v.audioChannelCount = c.channelCount),
                                      v.hasVideo
                                        ? null != v.videoCodec &&
                                          (v.mimeType =
                                            'video/x-flv; codecs="' +
                                            v.videoCodec +
                                            "," +
                                            v.audioCodec +
                                            '"')
                                        : (v.mimeType =
                                            'video/x-flv; codecs="' +
                                            v.audioCodec +
                                            '"'),
                                      v.isComplete() && this._onMediaInfo(v);
                                  } else if (1 === u.packetType) {
                                    var f = this._timestampBase + s,
                                      m = {
                                        unit: u.data,
                                        length: u.data.byteLength,
                                        dts: f,
                                        pts: f,
                                      };
                                    d.samples.push(m),
                                      (d.length += u.data.length),
                                      (this._hasRecvAudio = !0);
                                  } else
                                    o.Z.e(
                                      this.TAG,
                                      "Flv: Unsupported AAC data type " +
                                        u.packetType
                                    );
                                } else if (2 === r) {
                                  if (!c.codec) {
                                    var v;
                                    if (
                                      null ==
                                      (p = this._parseMP3AudioData(
                                        e,
                                        t + 1,
                                        i - 1,
                                        !0
                                      ))
                                    )
                                      return;
                                    (c.audioSampleRate = p.samplingRate),
                                      (c.channelCount = p.channelCount),
                                      (c.codec = p.codec),
                                      (c.originalCodec = p.originalCodec),
                                      (c.refSampleDuration =
                                        (1152 / c.audioSampleRate) *
                                        c.timescale),
                                      o.Z.v(
                                        this.TAG,
                                        "Parsed MPEG Audio Frame Header"
                                      ),
                                      (this._audioInitialMetadataDispatched =
                                        !0),
                                      this._onTrackMetadata("audio", c),
                                      ((v = this._mediaInfo).audioCodec =
                                        c.codec),
                                      (v.audioSampleRate = c.audioSampleRate),
                                      (v.audioChannelCount = c.channelCount),
                                      (v.audioDataRate = p.bitRate),
                                      v.hasVideo
                                        ? null != v.videoCodec &&
                                          (v.mimeType =
                                            'video/x-flv; codecs="' +
                                            v.videoCodec +
                                            "," +
                                            v.audioCodec +
                                            '"')
                                        : (v.mimeType =
                                            'video/x-flv; codecs="' +
                                            v.audioCodec +
                                            '"'),
                                      v.isComplete() && this._onMediaInfo(v);
                                  }
                                  var _ = this._parseMP3AudioData(
                                    e,
                                    t + 1,
                                    i - 1,
                                    !1
                                  );
                                  if (null == _) return;
                                  f = this._timestampBase + s;
                                  var b = {
                                    unit: _,
                                    length: _.byteLength,
                                    dts: f,
                                    pts: f,
                                  };
                                  d.samples.push(b), (d.length += _.length);
                                }
                              } else
                                this._onError(
                                  g.Z.FORMAT_ERROR,
                                  "Flv: Invalid audio sample rate idx: " + a
                                );
                            } else
                              this._onError(
                                g.Z.CODEC_UNSUPPORTED,
                                "Flv: Unsupported audio codec idx: " + r
                              );
                          }
                        }),
                        (e.prototype._parseAACAudioData = function (e, t, i) {
                          if (!(i <= 1)) {
                            var s = {},
                              n = new Uint8Array(e, t, i);
                            return (
                              (s.packetType = n[0]),
                              0 === n[0]
                                ? (s.data = this._parseAACAudioSpecificConfig(
                                    e,
                                    t + 1,
                                    i - 1
                                  ))
                                : (s.data = n.subarray(1)),
                              s
                            );
                          }
                          o.Z.w(
                            this.TAG,
                            "Flv: Invalid AAC packet, missing AACPacketType or/and Data!"
                          );
                        }),
                        (e.prototype._parseAACAudioSpecificConfig = function (
                          e,
                          t,
                          i
                        ) {
                          var s,
                            n,
                            o = new Uint8Array(e, t, i),
                            r = null,
                            l = 0,
                            a = null;
                          if (
                            ((l = s = o[0] >>> 3),
                            (n = ((7 & o[0]) << 1) | (o[1] >>> 7)) < 0 ||
                              n >= this._mpegSamplingRates.length)
                          )
                            this._onError(
                              g.Z.FORMAT_ERROR,
                              "Flv: AAC invalid sampling frequency index!"
                            );
                          else {
                            var h = this._mpegSamplingRates[n],
                              c = (120 & o[1]) >>> 3;
                            if (!(c < 0 || c >= 8)) {
                              5 === l &&
                                ((a = ((7 & o[1]) << 1) | (o[2] >>> 7)), o[2]);
                              var d = self.navigator.userAgent.toLowerCase();
                              return (
                                -1 !== d.indexOf("firefox")
                                  ? n >= 6
                                    ? ((l = 5), (r = new Array(4)), (a = n - 3))
                                    : ((l = 2), (r = new Array(2)), (a = n))
                                  : -1 !== d.indexOf("android")
                                  ? ((l = 2), (r = new Array(2)), (a = n))
                                  : ((l = 5),
                                    (a = n),
                                    (r = new Array(4)),
                                    n >= 6
                                      ? (a = n - 3)
                                      : 1 === c &&
                                        ((l = 2), (r = new Array(2)), (a = n))),
                                (r[0] = l << 3),
                                (r[0] |= (15 & n) >>> 1),
                                (r[1] = (15 & n) << 7),
                                (r[1] |= (15 & c) << 3),
                                5 === l &&
                                  ((r[1] |= (15 & a) >>> 1),
                                  (r[2] = (1 & a) << 7),
                                  (r[2] |= 8),
                                  (r[3] = 0)),
                                {
                                  config: r,
                                  samplingRate: h,
                                  channelCount: c,
                                  codec: "mp4a.40." + l,
                                  originalCodec: "mp4a.40." + s,
                                }
                              );
                            }
                            this._onError(
                              g.Z.FORMAT_ERROR,
                              "Flv: AAC invalid channel configuration"
                            );
                          }
                        }),
                        (e.prototype._parseMP3AudioData = function (
                          e,
                          t,
                          i,
                          s
                        ) {
                          if (!(i < 4)) {
                            this._littleEndian;
                            var n = new Uint8Array(e, t, i),
                              r = null;
                            if (s) {
                              if (255 !== n[0]) return;
                              var l = (n[1] >>> 3) & 3,
                                a = (6 & n[1]) >> 1,
                                h = (240 & n[2]) >>> 4,
                                c = (12 & n[2]) >>> 2,
                                d = 3 !== ((n[3] >>> 6) & 3) ? 2 : 1,
                                u = 0,
                                p = 0;
                              switch (l) {
                                case 0:
                                  u = this._mpegAudioV25SampleRateTable[c];
                                  break;
                                case 2:
                                  u = this._mpegAudioV20SampleRateTable[c];
                                  break;
                                case 3:
                                  u = this._mpegAudioV10SampleRateTable[c];
                              }
                              switch (a) {
                                case 1:
                                  h < this._mpegAudioL3BitRateTable.length &&
                                    (p = this._mpegAudioL3BitRateTable[h]);
                                  break;
                                case 2:
                                  h < this._mpegAudioL2BitRateTable.length &&
                                    (p = this._mpegAudioL2BitRateTable[h]);
                                  break;
                                case 3:
                                  h < this._mpegAudioL1BitRateTable.length &&
                                    (p = this._mpegAudioL1BitRateTable[h]);
                              }
                              r = {
                                bitRate: p,
                                samplingRate: u,
                                channelCount: d,
                                codec: "mp3",
                                originalCodec: "mp3",
                              };
                            } else r = n;
                            return r;
                          }
                          o.Z.w(
                            this.TAG,
                            "Flv: Invalid MP3 packet, header missing!"
                          );
                        }),
                        (e.prototype._parseVideoData = function (
                          e,
                          t,
                          i,
                          s,
                          n
                        ) {
                          if (i <= 1)
                            o.Z.w(
                              this.TAG,
                              "Flv: Invalid video packet, missing VideoData payload!"
                            );
                          else if (
                            !0 !== this._hasVideoFlagOverrided ||
                            !1 !== this._hasVideo
                          ) {
                            var r = new Uint8Array(e, t, i)[0],
                              l = (240 & r) >>> 4,
                              a = 15 & r;
                            7 == a
                              ? this._parseAVCVideoPacket(
                                  e,
                                  t + 1,
                                  i - 1,
                                  s,
                                  n,
                                  l
                                )
                              : 12 == a &&
                                this._parseHEVCVideoPacket(
                                  e,
                                  t + 1,
                                  i - 1,
                                  s,
                                  n,
                                  l
                                );
                          }
                        }),
                        (e.prototype._parseHEVCVideoPacket = function (
                          e,
                          t,
                          i,
                          s,
                          n,
                          r
                        ) {
                          if (i < 4)
                            o.Z.w(
                              this.TAG,
                              "Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime"
                            );
                          else {
                            var l = this._littleEndian,
                              a = new DataView(e, t, i),
                              h = a.getUint8(0),
                              c = ((16777215 & a.getUint32(0, !l)) << 8) >> 8;
                            if (0 === h)
                              this._videoInitialMetadataDispatched = !0;
                            else if (1 === h)
                              this._parseHEVCVideoData(
                                e,
                                t + 4,
                                i - 4,
                                s,
                                n,
                                r,
                                c
                              );
                            else if (2 !== h)
                              return void this._onError(
                                g.Z.FORMAT_ERROR,
                                "Flv: Invalid video packet type " + h
                              );
                          }
                        }),
                        (e.prototype._parseHEVCVideoData = function (
                          e,
                          t,
                          i,
                          s,
                          n,
                          r,
                          l
                        ) {
                          for (
                            var a = this._littleEndian,
                              h = new DataView(e, t, i),
                              c = [],
                              d = 0,
                              u = 0,
                              p = this._naluLengthSize,
                              f = this._timestampBase + s;
                            u < i;

                          ) {
                            if (u + 4 >= i) {
                              o.Z.w(
                                this.TAG,
                                "Malformed Nalu near timestamp " +
                                  f +
                                  ", offset = " +
                                  u +
                                  ", dataSize = " +
                                  i
                              );
                              break;
                            }
                            var m = h.getUint32(u, !a);
                            if ((3 === p && (m >>>= 8), m > i - p))
                              return void o.Z.w(
                                this.TAG,
                                "Malformed Nalus near timestamp " +
                                  f +
                                  ", NaluSize > DataSize!"
                              );
                            var g = new Uint8Array(e, t + u, p + m);
                            c.push(g), (d += g.byteLength), (u += p + m);
                          }
                          c.length &&
                            ((this._videoTrack.h265 = !0),
                            this._videoTrack.samples.push({
                              units: c,
                              length: d,
                              dts: f,
                              cts: l,
                              pts: f + l,
                            }),
                            (this._videoTrack.length += d));
                        }),
                        (e.prototype._parseAVCVideoPacket = function (
                          e,
                          t,
                          i,
                          s,
                          n,
                          r
                        ) {
                          if (i < 4)
                            o.Z.w(
                              this.TAG,
                              "Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime"
                            );
                          else {
                            var l = this._littleEndian,
                              a = new DataView(e, t, i),
                              h = a.getUint8(0),
                              c = ((16777215 & a.getUint32(0, !l)) << 8) >> 8;
                            if (0 === h)
                              this._parseAVCDecoderConfigurationRecord(
                                e,
                                t + 4,
                                i - 4
                              );
                            else if (1 === h)
                              this._parseAVCVideoData(
                                e,
                                t + 4,
                                i - 4,
                                s,
                                n,
                                r,
                                c
                              );
                            else if (2 !== h)
                              return void this._onError(
                                g.Z.FORMAT_ERROR,
                                "Flv: Invalid video packet type " + h
                              );
                          }
                        }),
                        (e.prototype._parseAVCDecoderConfigurationRecord =
                          function (e, t, i) {
                            if (i < 7)
                              o.Z.w(
                                this.TAG,
                                "Flv: Invalid AVCDecoderConfigurationRecord, lack of data!"
                              );
                            else {
                              var s = this._videoMetadata,
                                n = this._videoTrack,
                                r = this._littleEndian,
                                l = new DataView(e, t, i);
                              s
                                ? void 0 !== s.avcc &&
                                  o.Z.w(
                                    this.TAG,
                                    "Found another AVCDecoderConfigurationRecord!"
                                  )
                                : (!1 === this._hasVideo &&
                                    !1 === this._hasVideoFlagOverrided &&
                                    ((this._hasVideo = !0),
                                    (this._mediaInfo.hasVideo = !0)),
                                  ((s = this._videoMetadata = {}).type =
                                    "video"),
                                  (s.id = n.id),
                                  (s.timescale = this._timescale),
                                  (s.duration = this._duration));
                              var a = l.getUint8(0),
                                h = l.getUint8(1);
                              if (
                                (l.getUint8(2),
                                l.getUint8(3),
                                1 === a && 0 !== h)
                              )
                                if (
                                  ((this._naluLengthSize =
                                    1 + (3 & l.getUint8(4))),
                                  3 === this._naluLengthSize ||
                                    4 === this._naluLengthSize)
                                ) {
                                  var c = 31 & l.getUint8(5);
                                  if (0 !== c) {
                                    c > 1 &&
                                      o.Z.w(
                                        this.TAG,
                                        "Flv: Strange AVCDecoderConfigurationRecord: SPS Count = " +
                                          c
                                      );
                                    for (var d = 6, u = 0; u < c; u++) {
                                      var p = l.getUint16(d, !r);
                                      if (((d += 2), 0 !== p)) {
                                        var f = new Uint8Array(e, t + d, p);
                                        d += p;
                                        var v = m.parseSPS(f);
                                        if (0 === u) {
                                          (s.codecWidth = v.codec_size.width),
                                            (s.codecHeight =
                                              v.codec_size.height),
                                            (s.presentWidth =
                                              v.present_size.width),
                                            (s.presentHeight =
                                              v.present_size.height),
                                            (s.profile = v.profile_string),
                                            (s.level = v.level_string),
                                            (s.bitDepth = v.bit_depth),
                                            (s.chromaFormat = v.chroma_format),
                                            (s.sarRatio = v.sar_ratio),
                                            (s.frameRate = v.frame_rate),
                                            (!1 !== v.frame_rate.fixed &&
                                              0 !== v.frame_rate.fps_num &&
                                              0 !== v.frame_rate.fps_den) ||
                                              (s.frameRate =
                                                this._referenceFrameRate);
                                          var _ = s.frameRate.fps_den,
                                            b = s.frameRate.fps_num;
                                          s.refSampleDuration =
                                            s.timescale * (_ / b);
                                          for (
                                            var y = f.subarray(1, 4),
                                              x = "avc1.",
                                              w = 0;
                                            w < 3;
                                            w++
                                          ) {
                                            var S = y[w].toString(16);
                                            S.length < 2 && (S = "0" + S),
                                              (x += S);
                                          }
                                          s.codec = x;
                                          var E = this._mediaInfo;
                                          (E.width = s.codecWidth),
                                            (E.height = s.codecHeight),
                                            (E.fps = s.frameRate.fps),
                                            (E.profile = s.profile),
                                            (E.level = s.level),
                                            (E.refFrames = v.ref_frames),
                                            (E.chromaFormat =
                                              v.chroma_format_string),
                                            (E.sarNum = s.sarRatio.width),
                                            (E.sarDen = s.sarRatio.height),
                                            (E.videoCodec = x),
                                            E.hasAudio
                                              ? null != E.audioCodec &&
                                                (E.mimeType =
                                                  'video/x-flv; codecs="' +
                                                  E.videoCodec +
                                                  "," +
                                                  E.audioCodec +
                                                  '"')
                                              : (E.mimeType =
                                                  'video/x-flv; codecs="' +
                                                  E.videoCodec +
                                                  '"'),
                                            E.isComplete() &&
                                              this._onMediaInfo(E);
                                        }
                                      }
                                    }
                                    var k = l.getUint8(d);
                                    if (0 !== k) {
                                      for (
                                        k > 1 &&
                                          o.Z.w(
                                            this.TAG,
                                            "Flv: Strange AVCDecoderConfigurationRecord: PPS Count = " +
                                              k
                                          ),
                                          d++,
                                          u = 0;
                                        u < k;
                                        u++
                                      )
                                        (p = l.getUint16(d, !r)),
                                          (d += 2),
                                          0 !== p && (d += p);
                                      (s.avcc = new Uint8Array(i)),
                                        s.avcc.set(new Uint8Array(e, t, i), 0),
                                        o.Z.v(
                                          this.TAG,
                                          "Parsed AVCDecoderConfigurationRecord"
                                        ),
                                        this._isInitialMetadataDispatched()
                                          ? this._dispatch &&
                                            (this._audioTrack.length ||
                                              this._videoTrack.length) &&
                                            this._onDataAvailable(
                                              this._audioTrack,
                                              this._videoTrack
                                            )
                                          : (this._videoInitialMetadataDispatched =
                                              !0),
                                        (this._dispatch = !1),
                                        this._onTrackMetadata("video", s);
                                    } else
                                      this._onError(
                                        g.Z.FORMAT_ERROR,
                                        "Flv: Invalid AVCDecoderConfigurationRecord: No PPS"
                                      );
                                  } else
                                    this._onError(
                                      g.Z.FORMAT_ERROR,
                                      "Flv: Invalid AVCDecoderConfigurationRecord: No SPS"
                                    );
                                } else
                                  this._onError(
                                    g.Z.FORMAT_ERROR,
                                    "Flv: Strange NaluLengthSizeMinusOne: " +
                                      (this._naluLengthSize - 1)
                                  );
                              else
                                this._onError(
                                  g.Z.FORMAT_ERROR,
                                  "Flv: Invalid AVCDecoderConfigurationRecord"
                                );
                            }
                          }),
                        (e.prototype._parseAVCVideoData = function (
                          e,
                          t,
                          i,
                          s,
                          n,
                          r,
                          l
                        ) {
                          for (
                            var a = this._littleEndian,
                              h = new DataView(e, t, i),
                              c = [],
                              d = 0,
                              u = 0,
                              p = this._naluLengthSize,
                              f = this._timestampBase + s,
                              m = 1 === r;
                            u < i;

                          ) {
                            if (u + 4 >= i) {
                              o.Z.w(
                                this.TAG,
                                "Malformed Nalu near timestamp " +
                                  f +
                                  ", offset = " +
                                  u +
                                  ", dataSize = " +
                                  i
                              );
                              break;
                            }
                            var g = h.getUint32(u, !a);
                            if ((3 === p && (g >>>= 8), g > i - p))
                              return void o.Z.w(
                                this.TAG,
                                "Malformed Nalus near timestamp " +
                                  f +
                                  ", NaluSize > DataSize!"
                              );
                            var v = 31 & h.getUint8(u + p);
                            5 === v && (m = !0);
                            var _ = new Uint8Array(e, t + u, p + g),
                              b = { type: v, data: _ };
                            c.push(b), (d += _.byteLength), (u += p + g);
                          }
                          if (c.length) {
                            var y = this._videoTrack,
                              x = {
                                units: c,
                                length: d,
                                isKeyframe: m,
                                dts: f,
                                cts: l,
                                pts: f + l,
                              };
                            m && (x.fileposition = n),
                              y.samples.push(x),
                              (y.length += d);
                          }
                        }),
                        e
                      );
                    })(),
                    _ = (function () {
                      function e() {}
                      return (
                        (e.init = function () {
                          for (var t in ((e.types = {
                            avc1: [],
                            avcC: [],
                            btrt: [],
                            dinf: [],
                            dref: [],
                            esds: [],
                            ftyp: [],
                            hdlr: [],
                            mdat: [],
                            mdhd: [],
                            mdia: [],
                            mfhd: [],
                            minf: [],
                            moof: [],
                            moov: [],
                            mp4a: [],
                            mvex: [],
                            mvhd: [],
                            sdtp: [],
                            stbl: [],
                            stco: [],
                            stsc: [],
                            stsd: [],
                            stsz: [],
                            stts: [],
                            tfdt: [],
                            tfhd: [],
                            traf: [],
                            trak: [],
                            trun: [],
                            trex: [],
                            tkhd: [],
                            vmhd: [],
                            smhd: [],
                            ".mp3": [],
                          }),
                          e.types))
                            e.types.hasOwnProperty(t) &&
                              (e.types[t] = [
                                t.charCodeAt(0),
                                t.charCodeAt(1),
                                t.charCodeAt(2),
                                t.charCodeAt(3),
                              ]);
                          var i = (e.constants = {});
                          (i.FTYP = new Uint8Array([
                            105, 115, 111, 109, 0, 0, 0, 1, 105, 115, 111, 109,
                            97, 118, 99, 49,
                          ])),
                            (i.STSD_PREFIX = new Uint8Array([
                              0, 0, 0, 0, 0, 0, 0, 1,
                            ])),
                            (i.STTS = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
                            (i.STSC = i.STCO = i.STTS),
                            (i.STSZ = new Uint8Array([
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                            ])),
                            (i.HDLR_VIDEO = new Uint8Array([
                              0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101,
                              111, 72, 97, 110, 100, 108, 101, 114, 0,
                            ])),
                            (i.HDLR_AUDIO = new Uint8Array([
                              0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0,
                              0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110,
                              100, 72, 97, 110, 100, 108, 101, 114, 0,
                            ])),
                            (i.DREF = new Uint8Array([
                              0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114,
                              108, 32, 0, 0, 0, 1,
                            ])),
                            (i.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])),
                            (i.VMHD = new Uint8Array([
                              0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
                            ]));
                        }),
                        (e.box = function (e) {
                          for (
                            var t = 8,
                              i = null,
                              s = Array.prototype.slice.call(arguments, 1),
                              n = s.length,
                              o = 0;
                            o < n;
                            o++
                          )
                            t += s[o].byteLength;
                          ((i = new Uint8Array(t))[0] = (t >>> 24) & 255),
                            (i[1] = (t >>> 16) & 255),
                            (i[2] = (t >>> 8) & 255),
                            (i[3] = 255 & t),
                            i.set(e, 4);
                          var r = 8;
                          for (o = 0; o < n; o++)
                            i.set(s[o], r), (r += s[o].byteLength);
                          return i;
                        }),
                        (e.generateInitSegment = function (t) {
                          var i = e.box(e.types.ftyp, e.constants.FTYP),
                            s = e.moov(t),
                            n = new Uint8Array(i.byteLength + s.byteLength);
                          return n.set(i, 0), n.set(s, i.byteLength), n;
                        }),
                        (e.moov = function (t) {
                          var i = e.mvhd(t.timescale, t.duration),
                            s = e.trak(t),
                            n = e.mvex(t);
                          return e.box(e.types.moov, i, s, n);
                        }),
                        (e.mvhd = function (t, i) {
                          return e.box(
                            e.types.mvhd,
                            new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              (t >>> 24) & 255,
                              (t >>> 16) & 255,
                              (t >>> 8) & 255,
                              255 & t,
                              (i >>> 24) & 255,
                              (i >>> 16) & 255,
                              (i >>> 8) & 255,
                              255 & i,
                              0,
                              1,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              64,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              255,
                              255,
                              255,
                              255,
                            ])
                          );
                        }),
                        (e.trak = function (t) {
                          return e.box(e.types.trak, e.tkhd(t), e.mdia(t));
                        }),
                        (e.tkhd = function (t) {
                          var i = t.id,
                            s = t.duration,
                            n = t.presentWidth,
                            o = t.presentHeight;
                          return e.box(
                            e.types.tkhd,
                            new Uint8Array([
                              0,
                              0,
                              0,
                              7,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              (i >>> 24) & 255,
                              (i >>> 16) & 255,
                              (i >>> 8) & 255,
                              255 & i,
                              0,
                              0,
                              0,
                              0,
                              (s >>> 24) & 255,
                              (s >>> 16) & 255,
                              (s >>> 8) & 255,
                              255 & s,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              64,
                              0,
                              0,
                              0,
                              (n >>> 8) & 255,
                              255 & n,
                              0,
                              0,
                              (o >>> 8) & 255,
                              255 & o,
                              0,
                              0,
                            ])
                          );
                        }),
                        (e.mdia = function (t) {
                          return e.box(
                            e.types.mdia,
                            e.mdhd(t),
                            e.hdlr(t),
                            e.minf(t)
                          );
                        }),
                        (e.mdhd = function (t) {
                          var i = t.timescale,
                            s = t.duration;
                          return e.box(
                            e.types.mdhd,
                            new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              (i >>> 24) & 255,
                              (i >>> 16) & 255,
                              (i >>> 8) & 255,
                              255 & i,
                              (s >>> 24) & 255,
                              (s >>> 16) & 255,
                              (s >>> 8) & 255,
                              255 & s,
                              85,
                              196,
                              0,
                              0,
                            ])
                          );
                        }),
                        (e.hdlr = function (t) {
                          var i = null;
                          return (
                            (i =
                              "audio" === t.type
                                ? e.constants.HDLR_AUDIO
                                : e.constants.HDLR_VIDEO),
                            e.box(e.types.hdlr, i)
                          );
                        }),
                        (e.minf = function (t) {
                          var i = null;
                          return (
                            (i =
                              "audio" === t.type
                                ? e.box(e.types.smhd, e.constants.SMHD)
                                : e.box(e.types.vmhd, e.constants.VMHD)),
                            e.box(e.types.minf, i, e.dinf(), e.stbl(t))
                          );
                        }),
                        (e.dinf = function () {
                          return e.box(
                            e.types.dinf,
                            e.box(e.types.dref, e.constants.DREF)
                          );
                        }),
                        (e.stbl = function (t) {
                          return e.box(
                            e.types.stbl,
                            e.stsd(t),
                            e.box(e.types.stts, e.constants.STTS),
                            e.box(e.types.stsc, e.constants.STSC),
                            e.box(e.types.stsz, e.constants.STSZ),
                            e.box(e.types.stco, e.constants.STCO)
                          );
                        }),
                        (e.stsd = function (t) {
                          return "audio" === t.type
                            ? "mp3" === t.codec
                              ? e.box(
                                  e.types.stsd,
                                  e.constants.STSD_PREFIX,
                                  e.mp3(t)
                                )
                              : e.box(
                                  e.types.stsd,
                                  e.constants.STSD_PREFIX,
                                  e.mp4a(t)
                                )
                            : e.box(
                                e.types.stsd,
                                e.constants.STSD_PREFIX,
                                e.avc1(t)
                              );
                        }),
                        (e.mp3 = function (t) {
                          var i = t.channelCount,
                            s = t.audioSampleRate,
                            n = new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              i,
                              0,
                              16,
                              0,
                              0,
                              0,
                              0,
                              (s >>> 8) & 255,
                              255 & s,
                              0,
                              0,
                            ]);
                          return e.box(e.types[".mp3"], n);
                        }),
                        (e.mp4a = function (t) {
                          var i = t.channelCount,
                            s = t.audioSampleRate,
                            n = new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              i,
                              0,
                              16,
                              0,
                              0,
                              0,
                              0,
                              (s >>> 8) & 255,
                              255 & s,
                              0,
                              0,
                            ]);
                          return e.box(e.types.mp4a, n, e.esds(t));
                        }),
                        (e.esds = function (t) {
                          var i = t.config || [],
                            s = i.length,
                            n = new Uint8Array(
                              [
                                0,
                                0,
                                0,
                                0,
                                3,
                                23 + s,
                                0,
                                1,
                                0,
                                4,
                                15 + s,
                                64,
                                21,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                5,
                              ]
                                .concat([s])
                                .concat(i)
                                .concat([6, 1, 2])
                            );
                          return e.box(e.types.esds, n);
                        }),
                        (e.avc1 = function (t) {
                          var i = t.avcc,
                            s = t.codecWidth,
                            n = t.codecHeight,
                            o = new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              (s >>> 8) & 255,
                              255 & s,
                              (n >>> 8) & 255,
                              255 & n,
                              0,
                              72,
                              0,
                              0,
                              0,
                              72,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              10,
                              120,
                              113,
                              113,
                              47,
                              102,
                              108,
                              118,
                              46,
                              106,
                              115,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              24,
                              255,
                              255,
                            ]);
                          return e.box(e.types.avc1, o, e.box(e.types.avcC, i));
                        }),
                        (e.mvex = function (t) {
                          return e.box(e.types.mvex, e.trex(t));
                        }),
                        (e.trex = function (t) {
                          var i = t.id,
                            s = new Uint8Array([
                              0,
                              0,
                              0,
                              0,
                              (i >>> 24) & 255,
                              (i >>> 16) & 255,
                              (i >>> 8) & 255,
                              255 & i,
                              0,
                              0,
                              0,
                              1,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              0,
                              1,
                              0,
                              1,
                            ]);
                          return e.box(e.types.trex, s);
                        }),
                        (e.moof = function (t, i) {
                          return e.box(
                            e.types.moof,
                            e.mfhd(t.sequenceNumber),
                            e.traf(t, i)
                          );
                        }),
                        (e.mfhd = function (t) {
                          var i = new Uint8Array([
                            0,
                            0,
                            0,
                            0,
                            (t >>> 24) & 255,
                            (t >>> 16) & 255,
                            (t >>> 8) & 255,
                            255 & t,
                          ]);
                          return e.box(e.types.mfhd, i);
                        }),
                        (e.traf = function (t, i) {
                          var s = t.id,
                            n = e.box(
                              e.types.tfhd,
                              new Uint8Array([
                                0,
                                0,
                                0,
                                0,
                                (s >>> 24) & 255,
                                (s >>> 16) & 255,
                                (s >>> 8) & 255,
                                255 & s,
                              ])
                            ),
                            o = e.box(
                              e.types.tfdt,
                              new Uint8Array([
                                0,
                                0,
                                0,
                                0,
                                (i >>> 24) & 255,
                                (i >>> 16) & 255,
                                (i >>> 8) & 255,
                                255 & i,
                              ])
                            ),
                            r = e.sdtp(t),
                            l = e.trun(
                              t,
                              r.byteLength + 16 + 16 + 8 + 16 + 8 + 8
                            );
                          return e.box(e.types.traf, n, o, l, r);
                        }),
                        (e.sdtp = function (t) {
                          for (
                            var i = t.samples || [],
                              s = i.length,
                              n = new Uint8Array(4 + s),
                              o = 0;
                            o < s;
                            o++
                          ) {
                            var r = i[o].flags;
                            n[o + 4] =
                              (r.isLeading << 6) |
                              (r.dependsOn << 4) |
                              (r.isDependedOn << 2) |
                              r.hasRedundancy;
                          }
                          return e.box(e.types.sdtp, n);
                        }),
                        (e.trun = function (t, i) {
                          var s = t.samples || [],
                            n = s.length,
                            o = 12 + 16 * n,
                            r = new Uint8Array(o);
                          (i += 8 + o),
                            r.set(
                              [
                                0,
                                0,
                                15,
                                1,
                                (n >>> 24) & 255,
                                (n >>> 16) & 255,
                                (n >>> 8) & 255,
                                255 & n,
                                (i >>> 24) & 255,
                                (i >>> 16) & 255,
                                (i >>> 8) & 255,
                                255 & i,
                              ],
                              0
                            );
                          for (var l = 0; l < n; l++) {
                            var a = s[l].duration,
                              h = s[l].size,
                              c = s[l].flags,
                              d = s[l].cts;
                            r.set(
                              [
                                (a >>> 24) & 255,
                                (a >>> 16) & 255,
                                (a >>> 8) & 255,
                                255 & a,
                                (h >>> 24) & 255,
                                (h >>> 16) & 255,
                                (h >>> 8) & 255,
                                255 & h,
                                (c.isLeading << 2) | c.dependsOn,
                                (c.isDependedOn << 6) |
                                  (c.hasRedundancy << 4) |
                                  c.isNonSync,
                                0,
                                0,
                                (d >>> 24) & 255,
                                (d >>> 16) & 255,
                                (d >>> 8) & 255,
                                255 & d,
                              ],
                              12 + 16 * l
                            );
                          }
                          return e.box(e.types.trun, r);
                        }),
                        (e.mdat = function (t) {
                          return e.box(e.types.mdat, t);
                        }),
                        e
                      );
                    })();
                  _.init();
                  var b = _,
                    y = (function () {
                      function e() {}
                      return (
                        (e.getSilentFrame = function (e, t) {
                          if ("mp4a.40.2" === e) {
                            if (1 === t)
                              return new Uint8Array([0, 200, 0, 128, 35, 128]);
                            if (2 === t)
                              return new Uint8Array([
                                33, 0, 73, 144, 2, 25, 0, 35, 128,
                              ]);
                            if (3 === t)
                              return new Uint8Array([
                                0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0,
                                142,
                              ]);
                            if (4 === t)
                              return new Uint8Array([
                                0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0,
                                128, 44, 128, 8, 2, 56,
                              ]);
                            if (5 === t)
                              return new Uint8Array([
                                0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0,
                                130, 48, 4, 153, 0, 33, 144, 2, 56,
                              ]);
                            if (6 === t)
                              return new Uint8Array([
                                0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0,
                                130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32,
                                8, 224,
                              ]);
                          } else {
                            if (1 === t)
                              return new Uint8Array([
                                1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0,
                                0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94,
                              ]);
                            if (2 === t)
                              return new Uint8Array([
                                1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0,
                                0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94,
                              ]);
                            if (3 === t)
                              return new Uint8Array([
                                1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0,
                                0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
                                90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94,
                              ]);
                          }
                          return null;
                        }),
                        e
                      );
                    })(),
                    x = i(51),
                    w = (function () {
                      function e(e) {
                        (this.TAG = "MP4Remuxer"),
                          (this._config = e),
                          (this._isLive = !0 === e.isLive),
                          (this._dtsBase = -1),
                          (this._dtsBaseInited = !1),
                          (this._audioDtsBase = 1 / 0),
                          (this._videoDtsBase = 1 / 0),
                          (this._audioNextDts = void 0),
                          (this._videoNextDts = void 0),
                          (this._audioStashedLastSample = null),
                          (this._videoStashedLastSample = null),
                          (this._audioMeta = null),
                          (this._videoMeta = null),
                          (this._audioSegmentInfoList = new x.J1("audio")),
                          (this._videoSegmentInfoList = new x.J1("video")),
                          (this._onInitSegment = null),
                          (this._onMediaSegment = null),
                          (this._onH265Data = null),
                          (this._forceFirstIDR = !(
                            !r.Z.chrome ||
                            !(
                              r.Z.version.major < 50 ||
                              (50 === r.Z.version.major &&
                                r.Z.version.build < 2661)
                            )
                          )),
                          (this._fillSilentAfterSeek = r.Z.msedge || r.Z.msie),
                          (this._mp3UseMpegAudio = !r.Z.firefox),
                          (this._fillAudioTimestampGap =
                            this._config.fixAudioTimestampGap);
                      }
                      return (
                        (e.prototype.destroy = function () {
                          (this._dtsBase = -1),
                            (this._dtsBaseInited = !1),
                            (this._audioMeta = null),
                            (this._videoMeta = null),
                            this._audioSegmentInfoList.clear(),
                            (this._audioSegmentInfoList = null),
                            this._videoSegmentInfoList.clear(),
                            (this._videoSegmentInfoList = null),
                            (this._onInitSegment = null),
                            (this._onMediaSegment = null),
                            (this._onH265Data = null);
                        }),
                        (e.prototype.bindDataSource = function (e) {
                          return (
                            (e.onDataAvailable = this.remux.bind(this)),
                            (e.onTrackMetadata =
                              this._onTrackMetadataReceived.bind(this)),
                            this
                          );
                        }),
                        Object.defineProperty(e.prototype, "onInitSegment", {
                          get: function () {
                            return this._onInitSegment;
                          },
                          set: function (e) {
                            this._onInitSegment = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onMediaSegment", {
                          get: function () {
                            return this._onMediaSegment;
                          },
                          set: function (e) {
                            this._onMediaSegment = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onH265Data", {
                          get: function () {
                            return this._onH265Data;
                          },
                          set: function (e) {
                            this._onH265Data = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype.insertDiscontinuity = function () {
                          this._audioNextDts = this._videoNextDts = void 0;
                        }),
                        (e.prototype.seek = function (e) {
                          (this._audioStashedLastSample = null),
                            (this._videoStashedLastSample = null),
                            this._videoSegmentInfoList.clear(),
                            this._audioSegmentInfoList.clear();
                        }),
                        (e.prototype.remux = function (e, t) {
                          if (!this._onMediaSegment)
                            throw new d.rT(
                              "MP4Remuxer: onMediaSegment callback must be specificed!"
                            );
                          this._dtsBaseInited || this._calculateDtsBase(e, t),
                            this._remuxVideo(t),
                            this._remuxAudio(e);
                        }),
                        (e.prototype._onTrackMetadataReceived = function (
                          e,
                          t
                        ) {
                          var i = null,
                            s = "mp4",
                            n = t.codec;
                          if ("audio" === e)
                            (this._audioMeta = t),
                              "mp3" === t.codec && this._mp3UseMpegAudio
                                ? ((s = "mpeg"),
                                  (n = ""),
                                  (i = new Uint8Array()))
                                : (i = b.generateInitSegment(t));
                          else {
                            if ("video" !== e) return;
                            (this._videoMeta = t),
                              (i = b.generateInitSegment(t));
                          }
                          if (!this._onInitSegment)
                            throw new d.rT(
                              "MP4Remuxer: onInitSegment callback must be specified!"
                            );
                          this._onInitSegment(e, {
                            type: e,
                            data: i.buffer,
                            codec: n,
                            container: e + "/" + s,
                            mediaDuration: t.duration,
                          });
                        }),
                        (e.prototype._calculateDtsBase = function (e, t) {
                          this._dtsBaseInited ||
                            (e.samples &&
                              e.samples.length &&
                              (this._audioDtsBase = e.samples[0].dts),
                            t.samples &&
                              t.samples.length &&
                              (this._videoDtsBase = t.samples[0].dts),
                            (this._dtsBase = Math.min(
                              this._audioDtsBase,
                              this._videoDtsBase
                            )),
                            (this._dtsBaseInited = !0));
                        }),
                        (e.prototype.flushStashedSamples = function () {
                          var e = this._videoStashedLastSample,
                            t = this._audioStashedLastSample,
                            i = {
                              type: "video",
                              id: 1,
                              sequenceNumber: 0,
                              samples: [],
                              length: 0,
                            };
                          null != e &&
                            (i.samples.push(e), (i.length = e.length));
                          var s = {
                            type: "audio",
                            id: 2,
                            sequenceNumber: 0,
                            samples: [],
                            length: 0,
                          };
                          null != t &&
                            (s.samples.push(t), (s.length = t.length)),
                            (this._videoStashedLastSample = null),
                            (this._audioStashedLastSample = null),
                            this._remuxVideo(i, !0),
                            this._remuxAudio(s, !0);
                        }),
                        (e.prototype._remuxAudio = function (e, t) {
                          if (null != this._audioMeta) {
                            var i,
                              s = e,
                              n = s.samples,
                              l = void 0,
                              a = -1,
                              h = this._audioMeta.refSampleDuration,
                              c =
                                "mp3" === this._audioMeta.codec &&
                                this._mp3UseMpegAudio,
                              d =
                                this._dtsBaseInited &&
                                void 0 === this._audioNextDts,
                              u = !1;
                            if (n && 0 !== n.length && (1 !== n.length || t)) {
                              var p = 0,
                                f = null,
                                m = 0;
                              c
                                ? ((p = 0), (m = s.length))
                                : ((p = 8), (m = 8 + s.length));
                              var g = null;
                              if (
                                (n.length > 1 && (m -= (g = n.pop()).length),
                                null != this._audioStashedLastSample)
                              ) {
                                var v = this._audioStashedLastSample;
                                (this._audioStashedLastSample = null),
                                  n.unshift(v),
                                  (m += v.length);
                              }
                              null != g && (this._audioStashedLastSample = g);
                              var _ = n[0].dts - this._dtsBase;
                              if (this._audioNextDts)
                                l = _ - this._audioNextDts;
                              else if (this._audioSegmentInfoList.isEmpty())
                                (l = 0),
                                  this._fillSilentAfterSeek &&
                                    !this._videoSegmentInfoList.isEmpty() &&
                                    "mp3" !== this._audioMeta.originalCodec &&
                                    (u = !0);
                              else {
                                var w =
                                  this._audioSegmentInfoList.getLastSampleBefore(
                                    _
                                  );
                                if (null != w) {
                                  var S = _ - (w.originalDts + w.duration);
                                  S <= 3 && (S = 0),
                                    (l = _ - (w.dts + w.duration + S));
                                } else l = 0;
                              }
                              if (u) {
                                var E = _ - l,
                                  k =
                                    this._videoSegmentInfoList.getLastSegmentBefore(
                                      _
                                    );
                                if (null != k && k.beginDts < E) {
                                  if (
                                    (P = y.getSilentFrame(
                                      this._audioMeta.originalCodec,
                                      this._audioMeta.channelCount
                                    ))
                                  ) {
                                    var C = k.beginDts,
                                      T = E - k.beginDts;
                                    o.Z.v(
                                      this.TAG,
                                      "InsertPrefixSilentAudio: dts: " +
                                        C +
                                        ", duration: " +
                                        T
                                    ),
                                      n.unshift({ unit: P, dts: C, pts: C }),
                                      (m += P.byteLength);
                                  }
                                } else u = !1;
                              }
                              for (var O = [], $ = 0; $ < n.length; $++) {
                                var R = (v = n[$]).unit,
                                  A = v.dts - this._dtsBase,
                                  L = ((C = A), !1),
                                  D = null,
                                  I = 0;
                                if (!(A < -0.001)) {
                                  if ("mp3" !== this._audioMeta.codec) {
                                    var M = A;
                                    if (
                                      (this._audioNextDts &&
                                        (M = this._audioNextDts),
                                      (l = A - M) <= -3 * h)
                                    ) {
                                      o.Z.w(
                                        this.TAG,
                                        "Dropping 1 audio frame (originalDts: " +
                                          A +
                                          " ms ,curRefDts: " +
                                          M +
                                          " ms)  due to dtsCorrection: " +
                                          l +
                                          " ms overlap."
                                      );
                                      continue;
                                    }
                                    if (
                                      l >= 3 * h &&
                                      this._fillAudioTimestampGap &&
                                      !r.Z.safari
                                    ) {
                                      L = !0;
                                      var P,
                                        N = Math.floor(l / h);
                                      o.Z.w(
                                        this.TAG,
                                        "Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: " +
                                          A +
                                          " ms, curRefDts: " +
                                          M +
                                          " ms, dtsCorrection: " +
                                          Math.round(l) +
                                          " ms, generate: " +
                                          N +
                                          " frames"
                                      ),
                                        (C = Math.floor(M)),
                                        (I = Math.floor(M + h) - C),
                                        null ==
                                          (P = y.getSilentFrame(
                                            this._audioMeta.originalCodec,
                                            this._audioMeta.channelCount
                                          )) &&
                                          (o.Z.w(
                                            this.TAG,
                                            "Unable to generate silent frame for " +
                                              this._audioMeta.originalCodec +
                                              " with " +
                                              this._audioMeta.channelCount +
                                              " channels, repeat last frame"
                                          ),
                                          (P = R)),
                                        (D = []);
                                      for (var B = 0; B < N; B++) {
                                        M += h;
                                        var F = Math.floor(M),
                                          V = Math.floor(M + h) - F,
                                          z = {
                                            dts: F,
                                            pts: F,
                                            cts: 0,
                                            unit: P,
                                            size: P.byteLength,
                                            duration: V,
                                            originalDts: A,
                                            flags: {
                                              isLeading: 0,
                                              dependsOn: 1,
                                              isDependedOn: 0,
                                              hasRedundancy: 0,
                                            },
                                          };
                                        D.push(z), (m += z.size);
                                      }
                                      this._audioNextDts = M + h;
                                    } else
                                      (C = Math.floor(M)),
                                        (I = Math.floor(M + h) - C),
                                        (this._audioNextDts = M + h);
                                  } else
                                    (C = A - l),
                                      (I =
                                        $ !== n.length - 1
                                          ? n[$ + 1].dts - this._dtsBase - l - C
                                          : null != g
                                          ? g.dts - this._dtsBase - l - C
                                          : O.length >= 1
                                          ? O[O.length - 1].duration
                                          : Math.floor(h)),
                                      (this._audioNextDts = C + I);
                                  -1 === a && (a = C),
                                    O.push({
                                      dts: C,
                                      pts: C,
                                      cts: 0,
                                      unit: v.unit,
                                      size: v.unit.byteLength,
                                      duration: I,
                                      originalDts: A,
                                      flags: {
                                        isLeading: 0,
                                        dependsOn: 1,
                                        isDependedOn: 0,
                                        hasRedundancy: 0,
                                      },
                                    }),
                                    L && O.push.apply(O, D);
                                }
                              }
                              if (0 === O.length)
                                return (s.samples = []), void (s.length = 0);
                              for (
                                c
                                  ? (f = new Uint8Array(m))
                                  : (((f = new Uint8Array(m))[0] =
                                      (m >>> 24) & 255),
                                    (f[1] = (m >>> 16) & 255),
                                    (f[2] = (m >>> 8) & 255),
                                    (f[3] = 255 & m),
                                    f.set(b.types.mdat, 4)),
                                  $ = 0;
                                $ < O.length;
                                $++
                              )
                                (R = O[$].unit),
                                  f.set(R, p),
                                  (p += R.byteLength);
                              var j = O[O.length - 1];
                              i = j.dts + j.duration;
                              var H = new x.Yy();
                              (H.beginDts = a),
                                (H.endDts = i),
                                (H.beginPts = a),
                                (H.endPts = i),
                                (H.originalBeginDts = O[0].originalDts),
                                (H.originalEndDts = j.originalDts + j.duration),
                                (H.firstSample = new x.Wk(
                                  O[0].dts,
                                  O[0].pts,
                                  O[0].duration,
                                  O[0].originalDts,
                                  !1
                                )),
                                (H.lastSample = new x.Wk(
                                  j.dts,
                                  j.pts,
                                  j.duration,
                                  j.originalDts,
                                  !1
                                )),
                                this._isLive ||
                                  this._audioSegmentInfoList.append(H),
                                (s.samples = O),
                                s.sequenceNumber++;
                              var U = null;
                              (U = c ? new Uint8Array() : b.moof(s, a)),
                                (s.samples = []),
                                (s.length = 0);
                              var W = {
                                type: "audio",
                                data: this._mergeBoxes(U, f).buffer,
                                sampleCount: O.length,
                                info: H,
                              };
                              c && d && (W.timestampOffset = a),
                                this._onMediaSegment("audio", W);
                            }
                          }
                        }),
                        (e.prototype._remuxVideo = function (e, t) {
                          if (e.h265) return this._onH265Data(e);
                          if (null != this._videoMeta) {
                            var i,
                              s,
                              n = e,
                              o = n.samples,
                              r = void 0,
                              l = -1,
                              a = -1;
                            if (o && 0 !== o.length && (1 !== o.length || t)) {
                              var h = 8,
                                c = null,
                                d = 8 + e.length,
                                u = null;
                              if (
                                (o.length > 1 && (d -= (u = o.pop()).length),
                                null != this._videoStashedLastSample)
                              ) {
                                var p = this._videoStashedLastSample;
                                (this._videoStashedLastSample = null),
                                  o.unshift(p),
                                  (d += p.length);
                              }
                              null != u && (this._videoStashedLastSample = u);
                              var f = o[0].dts - this._dtsBase;
                              if (this._videoNextDts)
                                r = f - this._videoNextDts;
                              else if (this._videoSegmentInfoList.isEmpty())
                                r = 0;
                              else {
                                var m =
                                  this._videoSegmentInfoList.getLastSampleBefore(
                                    f
                                  );
                                if (null != m) {
                                  var g = f - (m.originalDts + m.duration);
                                  g <= 3 && (g = 0),
                                    (r = f - (m.dts + m.duration + g));
                                } else r = 0;
                              }
                              for (
                                var v = new x.Yy(), _ = [], y = 0;
                                y < o.length;
                                y++
                              ) {
                                var w = (p = o[y]).dts - this._dtsBase,
                                  S = p.isKeyframe,
                                  E = w - r,
                                  k = p.cts,
                                  C = E + k;
                                -1 === l && ((l = E), (a = C));
                                var T = 0;
                                if (
                                  ((T =
                                    y !== o.length - 1
                                      ? o[y + 1].dts - this._dtsBase - r - E
                                      : null != u
                                      ? u.dts - this._dtsBase - r - E
                                      : _.length >= 1
                                      ? _[_.length - 1].duration
                                      : Math.floor(
                                          this._videoMeta.refSampleDuration
                                        )),
                                  S)
                                ) {
                                  var O = new x.Wk(E, C, T, p.dts, !0);
                                  (O.fileposition = p.fileposition),
                                    v.appendSyncPoint(O);
                                }
                                _.push({
                                  dts: E,
                                  pts: C,
                                  cts: k,
                                  units: p.units,
                                  size: p.length,
                                  isKeyframe: S,
                                  duration: T,
                                  originalDts: w,
                                  flags: {
                                    isLeading: 0,
                                    dependsOn: S ? 2 : 1,
                                    isDependedOn: S ? 1 : 0,
                                    hasRedundancy: 0,
                                    isNonSync: S ? 0 : 1,
                                  },
                                });
                              }
                              for (
                                (c = new Uint8Array(d))[0] = (d >>> 24) & 255,
                                  c[1] = (d >>> 16) & 255,
                                  c[2] = (d >>> 8) & 255,
                                  c[3] = 255 & d,
                                  c.set(b.types.mdat, 4),
                                  y = 0;
                                y < _.length;
                                y++
                              )
                                for (var $ = _[y].units; $.length; ) {
                                  var R = $.shift().data;
                                  c.set(R, h), (h += R.byteLength);
                                }
                              var A = _[_.length - 1];
                              if (
                                ((i = A.dts + A.duration),
                                (s = A.pts + A.duration),
                                (this._videoNextDts = i),
                                (v.beginDts = l),
                                (v.endDts = i),
                                (v.beginPts = a),
                                (v.endPts = s),
                                (v.originalBeginDts = _[0].originalDts),
                                (v.originalEndDts = A.originalDts + A.duration),
                                (v.firstSample = new x.Wk(
                                  _[0].dts,
                                  _[0].pts,
                                  _[0].duration,
                                  _[0].originalDts,
                                  _[0].isKeyframe
                                )),
                                (v.lastSample = new x.Wk(
                                  A.dts,
                                  A.pts,
                                  A.duration,
                                  A.originalDts,
                                  A.isKeyframe
                                )),
                                this._isLive ||
                                  this._videoSegmentInfoList.append(v),
                                (n.samples = _),
                                n.sequenceNumber++,
                                this._forceFirstIDR)
                              ) {
                                var L = _[0].flags;
                                (L.dependsOn = 2), (L.isNonSync = 0);
                              }
                              var D = b.moof(n, l);
                              (n.samples = []),
                                (n.length = 0),
                                this._onMediaSegment("video", {
                                  type: "video",
                                  data: this._mergeBoxes(D, c).buffer,
                                  sampleCount: _.length,
                                  info: v,
                                });
                            }
                          }
                        }),
                        (e.prototype._mergeBoxes = function (e, t) {
                          var i = new Uint8Array(e.byteLength + t.byteLength);
                          return i.set(e, 0), i.set(t, e.byteLength), i;
                        }),
                        e
                      );
                    })(),
                    S = i(191),
                    E = i(257),
                    k = (function () {
                      function e(e, t) {
                        (this.TAG = "TransmuxingController"),
                          (this._emitter = new (n())()),
                          (this._config = t),
                          e.segments ||
                            (e.segments = [
                              {
                                duration: e.duration,
                                filesize: e.filesize,
                                url: e.url,
                                onmsg: e.onmsg,
                              },
                            ]),
                          "boolean" != typeof e.cors && (e.cors = !0),
                          "boolean" != typeof e.withCredentials &&
                            (e.withCredentials = !1),
                          (this._mediaDataSource = e),
                          (this._currentSegmentIndex = 0);
                        var i = 0;
                        this._mediaDataSource.segments.forEach(function (s) {
                          (s.timestampBase = i),
                            (i += s.duration),
                            (s.cors = e.cors),
                            (s.withCredentials = e.withCredentials),
                            t.referrerPolicy &&
                              (s.referrerPolicy = t.referrerPolicy);
                        }),
                          isNaN(i) ||
                            this._mediaDataSource.duration === i ||
                            (this._mediaDataSource.duration = i),
                          (this._mediaInfo = null),
                          (this._demuxer = null),
                          (this._remuxer = null),
                          (this._ioctl = null),
                          (this._pendingSeekTime = null),
                          (this._pendingResolveSeekPoint = null),
                          (this._statisticsReporter = null);
                      }
                      return (
                        (e.prototype.destroy = function () {
                          (this._mediaInfo = null),
                            (this._mediaDataSource = null),
                            this._statisticsReporter &&
                              this._disableStatisticsReporter(),
                            this._ioctl &&
                              (this._ioctl.destroy(), (this._ioctl = null)),
                            this._demuxer &&
                              (this._demuxer.destroy(), (this._demuxer = null)),
                            this._remuxer &&
                              (this._remuxer.destroy(), (this._remuxer = null)),
                            this._emitter.removeAllListeners(),
                            (this._emitter = null);
                        }),
                        (e.prototype.on = function (e, t) {
                          this._emitter.addListener(e, t);
                        }),
                        (e.prototype.off = function (e, t) {
                          this._emitter.removeListener(e, t);
                        }),
                        (e.prototype.start = function () {
                          this._loadSegment(0),
                            this._enableStatisticsReporter();
                        }),
                        (e.prototype._loadSegment = function (e, t) {
                          this._currentSegmentIndex = e;
                          var i = this._mediaDataSource.segments[e],
                            s = (this._ioctl = new S.Z(i, this._config, e));
                          (s.onError = this._onIOException.bind(this)),
                            (s.onSeeked = this._onIOSeeked.bind(this)),
                            (s.onComplete = this._onIOComplete.bind(this)),
                            (s.onRedirect = this._onIORedirect.bind(this)),
                            (s.onRecoveredEarlyEof =
                              this._onIORecoveredEarlyEof.bind(this)),
                            t
                              ? this._demuxer.bindDataSource(this._ioctl)
                              : (s.onDataArrival =
                                  this._onInitChunkArrival.bind(this)),
                            s.open(t);
                        }),
                        (e.prototype.stop = function () {
                          this._internalAbort(),
                            this._disableStatisticsReporter();
                        }),
                        (e.prototype._internalAbort = function () {
                          this._ioctl &&
                            (this._ioctl.destroy(), (this._ioctl = null));
                        }),
                        (e.prototype.pause = function () {
                          this._ioctl &&
                            this._ioctl.isWorking() &&
                            (this._ioctl.pause(),
                            this._disableStatisticsReporter());
                        }),
                        (e.prototype.resume = function () {
                          this._ioctl &&
                            this._ioctl.isPaused() &&
                            (this._ioctl.resume(),
                            this._enableStatisticsReporter());
                        }),
                        (e.prototype.seek = function (e) {
                          if (
                            null != this._mediaInfo &&
                            this._mediaInfo.isSeekable()
                          ) {
                            var t = this._searchSegmentIndexContains(e);
                            if (t === this._currentSegmentIndex) {
                              var i = this._mediaInfo.segments[t];
                              if (null == i) this._pendingSeekTime = e;
                              else {
                                var s = i.getNearestKeyframe(e);
                                this._remuxer.seek(s.milliseconds),
                                  this._ioctl.seek(s.fileposition),
                                  (this._pendingResolveSeekPoint =
                                    s.milliseconds);
                              }
                            } else {
                              var n = this._mediaInfo.segments[t];
                              null == n
                                ? ((this._pendingSeekTime = e),
                                  this._internalAbort(),
                                  this._remuxer.seek(),
                                  this._remuxer.insertDiscontinuity(),
                                  this._loadSegment(t))
                                : ((s = n.getNearestKeyframe(e)),
                                  this._internalAbort(),
                                  this._remuxer.seek(e),
                                  this._remuxer.insertDiscontinuity(),
                                  this._demuxer.resetMediaInfo(),
                                  (this._demuxer.timestampBase =
                                    this._mediaDataSource.segments[
                                      t
                                    ].timestampBase),
                                  this._loadSegment(t, s.fileposition),
                                  (this._pendingResolveSeekPoint =
                                    s.milliseconds),
                                  this._reportSegmentMediaInfo(t));
                            }
                            this._enableStatisticsReporter();
                          }
                        }),
                        (e.prototype._searchSegmentIndexContains = function (
                          e
                        ) {
                          for (
                            var t = this._mediaDataSource.segments,
                              i = t.length - 1,
                              s = 0;
                            s < t.length;
                            s++
                          )
                            if (e < t[s].timestampBase) {
                              i = s - 1;
                              break;
                            }
                          return i;
                        }),
                        (e.prototype._onInitChunkArrival = function (e, t) {
                          var i = this,
                            s = null,
                            n = 0;
                          if (t > 0)
                            this._demuxer.bindDataSource(this._ioctl),
                              (this._demuxer.timestampBase =
                                this._mediaDataSource.segments[
                                  this._currentSegmentIndex
                                ].timestampBase),
                              (n = this._demuxer.parseChunks(e, t));
                          else if ((s = v.probe(e)).match) {
                            (this._demuxer = new v(s, this._config)),
                              this._remuxer ||
                                (this._remuxer = new w(this._config));
                            var r = this._mediaDataSource;
                            null == r.duration ||
                              isNaN(r.duration) ||
                              (this._demuxer.overridedDuration = r.duration),
                              "boolean" == typeof r.hasAudio &&
                                (this._demuxer.overridedHasAudio = r.hasAudio),
                              "boolean" == typeof r.hasVideo &&
                                (this._demuxer.overridedHasVideo = r.hasVideo),
                              (this._demuxer.timestampBase =
                                r.segments[
                                  this._currentSegmentIndex
                                ].timestampBase),
                              (this._demuxer.onError =
                                this._onDemuxException.bind(this)),
                              (this._demuxer.onMediaInfo =
                                this._onMediaInfo.bind(this)),
                              (this._demuxer.onMetaDataArrived =
                                this._onMetaDataArrived.bind(this)),
                              (this._demuxer.onScriptDataArrived =
                                this._onScriptDataArrived.bind(this)),
                              this._remuxer.bindDataSource(
                                this._demuxer.bindDataSource(this._ioctl)
                              ),
                              (this._remuxer.onInitSegment =
                                this._onRemuxerInitSegmentArrival.bind(this)),
                              (this._remuxer.onMediaSegment =
                                this._onRemuxerMediaSegmentArrival.bind(this)),
                              (this._remuxer.onH265Data =
                                this._onH265Data.bind(this)),
                              (n = this._demuxer.parseChunks(e, t));
                          } else
                            (s = null),
                              o.Z.e(
                                this.TAG,
                                "Non-FLV, Unsupported media type!"
                              ),
                              Promise.resolve().then(function () {
                                i._internalAbort();
                              }),
                              this._emitter.emit(
                                E.Z.DEMUX_ERROR,
                                g.Z.FORMAT_UNSUPPORTED,
                                "Non-FLV, Unsupported media type"
                              ),
                              (n = 0);
                          return n;
                        }),
                        (e.prototype._onMediaInfo = function (e) {
                          var t = this;
                          null == this._mediaInfo &&
                            ((this._mediaInfo = Object.assign({}, e)),
                            (this._mediaInfo.keyframesIndex = null),
                            (this._mediaInfo.segments = []),
                            (this._mediaInfo.segmentCount =
                              this._mediaDataSource.segments.length),
                            Object.setPrototypeOf(
                              this._mediaInfo,
                              l.Z.prototype
                            ));
                          var i = Object.assign({}, e);
                          Object.setPrototypeOf(i, l.Z.prototype),
                            (this._mediaInfo.segments[
                              this._currentSegmentIndex
                            ] = i),
                            this._reportSegmentMediaInfo(
                              this._currentSegmentIndex
                            ),
                            null != this._pendingSeekTime &&
                              Promise.resolve().then(function () {
                                var e = t._pendingSeekTime;
                                (t._pendingSeekTime = null), t.seek(e);
                              });
                        }),
                        (e.prototype._onMetaDataArrived = function (e) {
                          this._emitter.emit(E.Z.METADATA_ARRIVED, e);
                        }),
                        (e.prototype._onScriptDataArrived = function (e) {
                          this._emitter.emit(E.Z.SCRIPTDATA_ARRIVED, e);
                        }),
                        (e.prototype._onIOSeeked = function () {
                          this._remuxer.insertDiscontinuity();
                        }),
                        (e.prototype._onIOComplete = function (e) {
                          var t = e + 1;
                          t < this._mediaDataSource.segments.length
                            ? (this._internalAbort(),
                              this._remuxer &&
                                this._remuxer.flushStashedSamples(),
                              this._loadSegment(t))
                            : (this._remuxer &&
                                this._remuxer.flushStashedSamples(),
                              this._emitter.emit(E.Z.LOADING_COMPLETE),
                              this._disableStatisticsReporter());
                        }),
                        (e.prototype._onIORedirect = function (e) {
                          var t = this._ioctl.extraData;
                          this._mediaDataSource.segments[t].redirectedURL = e;
                        }),
                        (e.prototype._onIORecoveredEarlyEof = function () {
                          this._emitter.emit(E.Z.RECOVERED_EARLY_EOF);
                        }),
                        (e.prototype._onIOException = function (e, t) {
                          o.Z.e(
                            this.TAG,
                            "IOException: type = " +
                              e +
                              ", code = " +
                              t.code +
                              ", msg = " +
                              t.msg
                          ),
                            this._emitter.emit(E.Z.IO_ERROR, e, t),
                            this._disableStatisticsReporter();
                        }),
                        (e.prototype._onDemuxException = function (e, t) {
                          o.Z.e(
                            this.TAG,
                            "DemuxException: type = " + e + ", info = " + t
                          ),
                            this._emitter.emit(E.Z.DEMUX_ERROR, e, t);
                        }),
                        (e.prototype._onRemuxerInitSegmentArrival = function (
                          e,
                          t
                        ) {
                          this._emitter.emit(E.Z.INIT_SEGMENT, e, t);
                        }),
                        (e.prototype._onH265Data = function (e) {
                          this._emitter.emit(E.Z.H265_DATA, e);
                        }),
                        (e.prototype._onRemuxerMediaSegmentArrival = function (
                          e,
                          t
                        ) {
                          if (
                            null == this._pendingSeekTime &&
                            (this._emitter.emit(E.Z.MEDIA_SEGMENT, e, t),
                            null != this._pendingResolveSeekPoint &&
                              "video" === e)
                          ) {
                            var i = t.info.syncPoints,
                              s = this._pendingResolveSeekPoint;
                            (this._pendingResolveSeekPoint = null),
                              r.Z.safari &&
                                i.length > 0 &&
                                i[0].originalDts === s &&
                                (s = i[0].pts),
                              this._emitter.emit(E.Z.RECOMMEND_SEEKPOINT, s);
                          }
                        }),
                        (e.prototype._enableStatisticsReporter = function () {
                          null == this._statisticsReporter &&
                            (this._statisticsReporter = self.setInterval(
                              this._reportStatisticsInfo.bind(this),
                              this._config.statisticsInfoReportInterval
                            ));
                        }),
                        (e.prototype._disableStatisticsReporter = function () {
                          this._statisticsReporter &&
                            (self.clearInterval(this._statisticsReporter),
                            (this._statisticsReporter = null));
                        }),
                        (e.prototype._reportSegmentMediaInfo = function (e) {
                          var t = this._mediaInfo.segments[e],
                            i = Object.assign({}, t);
                          (i.duration = this._mediaInfo.duration),
                            (i.segmentCount = this._mediaInfo.segmentCount),
                            delete i.segments,
                            delete i.keyframesIndex,
                            this._emitter.emit(E.Z.MEDIA_INFO, i);
                        }),
                        (e.prototype._reportStatisticsInfo = function () {
                          var e = {};
                          (e.url = this._ioctl.currentURL),
                            (e.hasRedirect = this._ioctl.hasRedirect),
                            e.hasRedirect &&
                              (e.redirectedURL =
                                this._ioctl.currentRedirectedURL),
                            (e.speed = this._ioctl.currentSpeed),
                            (e.loaderType = this._ioctl.loaderType),
                            (e.currentSegmentIndex = this._currentSegmentIndex),
                            (e.totalSegmentCount =
                              this._mediaDataSource.segments.length),
                            this._emitter.emit(E.Z.STATISTICS_INFO, e);
                        }),
                        e
                      );
                    })();
                },
                257: function (e, t) {
                  t.Z = {
                    IO_ERROR: "io_error",
                    DEMUX_ERROR: "demux_error",
                    INIT_SEGMENT: "init_segment",
                    MEDIA_SEGMENT: "media_segment",
                    LOADING_COMPLETE: "loading_complete",
                    RECOVERED_EARLY_EOF: "recovered_early_eof",
                    MEDIA_INFO: "media_info",
                    METADATA_ARRIVED: "metadata_arrived",
                    SCRIPTDATA_ARRIVED: "scriptdata_arrived",
                    STATISTICS_INFO: "statistics_info",
                    RECOMMEND_SEEKPOINT: "recommend_seekpoint",
                    H265_DATA: "h265_data",
                  };
                },
                82: function (e, t, i) {
                  i(846), i(219), i(949), i(257);
                },
                600: function (e, t) {
                  t.Z = {
                    OK: "OK",
                    FORMAT_ERROR: "FormatError",
                    FORMAT_UNSUPPORTED: "FormatUnsupported",
                    CODEC_UNSUPPORTED: "CodecUnsupported",
                  };
                },
                149: function (e, t, i) {
                  i.d(t, {
                    default: function () {
                      return A;
                    },
                  });
                  var s = i(219),
                    n = i(191),
                    o = {
                      enableWorker: !1,
                      enableStashBuffer: !0,
                      stashInitialSize: void 0,
                      isLive: !1,
                      lazyLoad: !0,
                      lazyLoadMaxDuration: 180,
                      lazyLoadRecoverDuration: 30,
                      deferLoadAfterSourceOpen: !0,
                      autoCleanupMaxBackwardDuration: 180,
                      autoCleanupMinBackwardDuration: 120,
                      statisticsInfoReportInterval: 600,
                      fixAudioTimestampGap: !0,
                      accurateSeek: !1,
                      seekType: "range",
                      seekParamStart: "bstart",
                      seekParamEnd: "bend",
                      rangeLoadZeroStart: !1,
                      customSeekHandler: void 0,
                      reuseRedirectedURL: !1,
                      headers: void 0,
                      customLoader: void 0,
                    };
                  function r() {
                    return Object.assign({}, o);
                  }
                  var l = (function () {
                      function e() {}
                      return (
                        (e.supportMSEH264Playback = function () {
                          return (
                            window.MediaSource &&
                            window.MediaSource.isTypeSupported(
                              'video/mp4; codecs="avc1.42E01E,mp4a.40.2"'
                            )
                          );
                        }),
                        (e.supportNetworkStreamIO = function () {
                          var e = new n.Z({}, r()),
                            t = e.loaderType;
                          return (
                            e.destroy(),
                            "fetch-stream-loader" == t ||
                              "xhr-moz-chunked-loader" == t
                          );
                        }),
                        (e.getNetworkLoaderTypeName = function () {
                          var e = new n.Z({}, r()),
                            t = e.loaderType;
                          return e.destroy(), t;
                        }),
                        (e.supportNativeMediaPlayback = function (t) {
                          null == e.videoElement &&
                            (e.videoElement =
                              window.document.createElement("video"));
                          var i = e.videoElement.canPlayType(t);
                          return "probably" === i || "maybe" == i;
                        }),
                        (e.getFeatureList = function () {
                          var t = {
                            mseFlvPlayback: !1,
                            mseLiveFlvPlayback: !1,
                            networkStreamIO: !1,
                            networkLoaderName: "",
                            nativeMP4H264Playback: !1,
                            nativeWebmVP8Playback: !1,
                            nativeWebmVP9Playback: !1,
                          };
                          return (
                            (t.mseFlvPlayback = e.supportMSEH264Playback()),
                            (t.networkStreamIO = e.supportNetworkStreamIO()),
                            (t.networkLoaderName =
                              e.getNetworkLoaderTypeName()),
                            (t.mseLiveFlvPlayback =
                              t.mseFlvPlayback && t.networkStreamIO),
                            (t.nativeMP4H264Playback =
                              e.supportNativeMediaPlayback(
                                'video/mp4; codecs="avc1.42001E, mp4a.40.2"'
                              )),
                            (t.nativeWebmVP8Playback =
                              e.supportNativeMediaPlayback(
                                'video/webm; codecs="vp8.0, vorbis"'
                              )),
                            (t.nativeWebmVP9Playback =
                              e.supportNativeMediaPlayback(
                                'video/webm; codecs="vp9"'
                              )),
                            t
                          );
                        }),
                        e
                      );
                    })(),
                    a = i(939),
                    h = i(716),
                    c = i.n(h),
                    d = i(300),
                    u = i(538),
                    p = {
                      ERROR: "error",
                      LOADING_COMPLETE: "loading_complete",
                      RECOVERED_EARLY_EOF: "recovered_early_eof",
                      MEDIA_INFO: "media_info",
                      METADATA_ARRIVED: "metadata_arrived",
                      SCRIPTDATA_ARRIVED: "scriptdata_arrived",
                      STATISTICS_INFO: "statistics_info",
                    },
                    f = i(397),
                    m = i.n(f),
                    g = i(846),
                    v = i(949),
                    _ = i(257),
                    b = i(118),
                    y = (function () {
                      function e(e, t) {
                        if (
                          ((this.TAG = "Transmuxer"),
                          (this._emitter = new (c())()),
                          t.enableWorker && "undefined" != typeof Worker)
                        )
                          try {
                            (this._worker = m()(82)),
                              (this._workerDestroying = !1),
                              this._worker.addEventListener(
                                "message",
                                this._onWorkerMessage.bind(this)
                              ),
                              this._worker.postMessage({
                                cmd: "init",
                                param: [e, t],
                              }),
                              (this.e = {
                                onLoggingConfigChanged:
                                  this._onLoggingConfigChanged.bind(this),
                              }),
                              g.Z.registerListener(
                                this.e.onLoggingConfigChanged
                              ),
                              this._worker.postMessage({
                                cmd: "logging_config",
                                param: g.Z.getConfig(),
                              });
                          } catch (i) {
                            d.Z.e(
                              this.TAG,
                              "Error while initialize transmuxing worker, fallback to inline transmuxing"
                            ),
                              (this._worker = null),
                              (this._controller = new v.Z(e, t));
                          }
                        else this._controller = new v.Z(e, t);
                        if (this._controller) {
                          var i = this._controller;
                          i.on(_.Z.IO_ERROR, this._onIOError.bind(this)),
                            i.on(
                              _.Z.DEMUX_ERROR,
                              this._onDemuxError.bind(this)
                            ),
                            i.on(
                              _.Z.INIT_SEGMENT,
                              this._onInitSegment.bind(this)
                            ),
                            i.on(
                              _.Z.MEDIA_SEGMENT,
                              this._onMediaSegment.bind(this)
                            ),
                            i.on(
                              _.Z.LOADING_COMPLETE,
                              this._onLoadingComplete.bind(this)
                            ),
                            i.on(
                              _.Z.RECOVERED_EARLY_EOF,
                              this._onRecoveredEarlyEof.bind(this)
                            ),
                            i.on(_.Z.MEDIA_INFO, this._onMediaInfo.bind(this)),
                            i.on(
                              _.Z.METADATA_ARRIVED,
                              this._onMetaDataArrived.bind(this)
                            ),
                            i.on(
                              _.Z.SCRIPTDATA_ARRIVED,
                              this._onScriptDataArrived.bind(this)
                            ),
                            i.on(
                              _.Z.STATISTICS_INFO,
                              this._onStatisticsInfo.bind(this)
                            ),
                            i.on(
                              _.Z.RECOMMEND_SEEKPOINT,
                              this._onRecommendSeekpoint.bind(this)
                            ),
                            i.on(_.Z.H265_DATA, this._onH265Data.bind(this));
                        }
                      }
                      return (
                        (e.prototype.destroy = function () {
                          this._worker
                            ? this._workerDestroying ||
                              ((this._workerDestroying = !0),
                              this._worker.postMessage({ cmd: "destroy" }),
                              g.Z.removeListener(this.e.onLoggingConfigChanged),
                              (this.e = null))
                            : (this._controller.destroy(),
                              (this._controller = null)),
                            this._emitter.removeAllListeners(),
                            (this._emitter = null);
                        }),
                        (e.prototype.on = function (e, t) {
                          this._emitter.addListener(e, t);
                        }),
                        (e.prototype.off = function (e, t) {
                          this._emitter.removeListener(e, t);
                        }),
                        (e.prototype.hasWorker = function () {
                          return null != this._worker;
                        }),
                        (e.prototype.open = function () {
                          this._worker
                            ? this._worker.postMessage({ cmd: "start" })
                            : this._controller.start();
                        }),
                        (e.prototype.close = function () {
                          this._worker
                            ? this._worker.postMessage({ cmd: "stop" })
                            : this._controller.stop();
                        }),
                        (e.prototype.seek = function (e) {
                          this._worker
                            ? this._worker.postMessage({
                                cmd: "seek",
                                param: e,
                              })
                            : this._controller.seek(e);
                        }),
                        (e.prototype.pause = function () {
                          this._worker
                            ? this._worker.postMessage({ cmd: "pause" })
                            : this._controller.pause();
                        }),
                        (e.prototype.resume = function () {
                          this._worker
                            ? this._worker.postMessage({ cmd: "resume" })
                            : this._controller.resume();
                        }),
                        (e.prototype._onInitSegment = function (e, t) {
                          var i = this;
                          Promise.resolve().then(function () {
                            i._emitter &&
                              i._emitter.emit(_.Z.INIT_SEGMENT, e, t);
                          });
                        }),
                        (e.prototype._onMediaSegment = function (e, t) {
                          var i = this;
                          Promise.resolve().then(function () {
                            i._emitter &&
                              i._emitter.emit(_.Z.MEDIA_SEGMENT, e, t);
                          });
                        }),
                        (e.prototype._onLoadingComplete = function () {
                          var e = this;
                          Promise.resolve().then(function () {
                            e._emitter && e._emitter.emit(_.Z.LOADING_COMPLETE);
                          });
                        }),
                        (e.prototype._onRecoveredEarlyEof = function () {
                          var e = this;
                          Promise.resolve().then(function () {
                            e._emitter &&
                              e._emitter.emit(_.Z.RECOVERED_EARLY_EOF);
                          });
                        }),
                        (e.prototype._onMediaInfo = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter && t._emitter.emit(_.Z.MEDIA_INFO, e);
                          });
                        }),
                        (e.prototype._onMetaDataArrived = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter &&
                              t._emitter.emit(_.Z.METADATA_ARRIVED, e);
                          });
                        }),
                        (e.prototype._onScriptDataArrived = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter &&
                              t._emitter.emit(_.Z.SCRIPTDATA_ARRIVED, e);
                          });
                        }),
                        (e.prototype._onStatisticsInfo = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter &&
                              t._emitter.emit(_.Z.STATISTICS_INFO, e);
                          });
                        }),
                        (e.prototype._onIOError = function (e, t) {
                          var i = this;
                          Promise.resolve().then(function () {
                            i._emitter && i._emitter.emit(_.Z.IO_ERROR, e, t);
                          });
                        }),
                        (e.prototype._onDemuxError = function (e, t) {
                          var i = this;
                          Promise.resolve().then(function () {
                            i._emitter &&
                              i._emitter.emit(_.Z.DEMUX_ERROR, e, t);
                          });
                        }),
                        (e.prototype._onH265Data = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter && t._emitter.emit(_.Z.H265_DATA, e);
                          });
                        }),
                        (e.prototype._onRecommendSeekpoint = function (e) {
                          var t = this;
                          Promise.resolve().then(function () {
                            t._emitter &&
                              t._emitter &&
                              t._emitter.emit(_.Z.RECOMMEND_SEEKPOINT, e);
                          });
                        }),
                        (e.prototype._onLoggingConfigChanged = function (e) {
                          this._worker &&
                            this._worker.postMessage({
                              cmd: "logging_config",
                              param: e,
                            });
                        }),
                        (e.prototype._onWorkerMessage = function (e) {
                          var t = e.data,
                            i = t.data;
                          if ("destroyed" === t.msg || this._workerDestroying)
                            return (
                              (this._workerDestroying = !1),
                              this._worker.terminate(),
                              void (this._worker = null)
                            );
                          switch (t.msg) {
                            case _.Z.INIT_SEGMENT:
                            case _.Z.MEDIA_SEGMENT:
                              this._emitter &&
                                this._emitter.emit(t.msg, i.type, i.data);
                              break;
                            case _.Z.LOADING_COMPLETE:
                            case _.Z.RECOVERED_EARLY_EOF:
                              this._emitter && this._emitter.emit(t.msg);
                              break;
                            case _.Z.MEDIA_INFO:
                              Object.setPrototypeOf(i, b.Z.prototype),
                                this._emitter && this._emitter.emit(t.msg, i);
                              break;
                            case _.Z.METADATA_ARRIVED:
                            case _.Z.SCRIPTDATA_ARRIVED:
                            case _.Z.STATISTICS_INFO:
                              this._emitter && this._emitter.emit(t.msg, i);
                              break;
                            case _.Z.IO_ERROR:
                            case _.Z.DEMUX_ERROR:
                              this._emitter &&
                                this._emitter.emit(t.msg, i.type, i.info);
                              break;
                            case _.Z.RECOMMEND_SEEKPOINT:
                              this._emitter && this._emitter.emit(t.msg, i);
                              break;
                            case _.Z.H265_DATA:
                              this._emitter &&
                                this._emitter.emit(_.Z.H265_DATA, i);
                              break;
                            case "logcat_callback":
                              d.Z.emitter.emit("log", i.type, i.logcat);
                          }
                        }),
                        e
                      );
                    })(),
                    x = {
                      ERROR: "error",
                      SOURCE_OPEN: "source_open",
                      UPDATE_END: "update_end",
                      BUFFER_FULL: "buffer_full",
                    },
                    w = i(51),
                    S = i(29),
                    E = (function () {
                      function e(e) {
                        (this.TAG = "MSEController"),
                          (this._config = e),
                          (this._emitter = new (c())()),
                          this._config.isLive &&
                            null == this._config.autoCleanupSourceBuffer &&
                            (this._config.autoCleanupSourceBuffer = !0),
                          (this.e = {
                            onSourceOpen: this._onSourceOpen.bind(this),
                            onSourceEnded: this._onSourceEnded.bind(this),
                            onSourceClose: this._onSourceClose.bind(this),
                            onSourceBufferError:
                              this._onSourceBufferError.bind(this),
                            onSourceBufferUpdateEnd:
                              this._onSourceBufferUpdateEnd.bind(this),
                          }),
                          (this._mediaSource = null),
                          (this._mediaSourceObjectURL = null),
                          (this._mediaElement = null),
                          (this._isBufferFull = !1),
                          (this._hasPendingEos = !1),
                          (this._requireSetMediaDuration = !1),
                          (this._pendingMediaDuration = 0),
                          (this._pendingSourceBufferInit = []),
                          (this._mimeTypes = { video: null, audio: null }),
                          (this._sourceBuffers = { video: null, audio: null }),
                          (this._lastInitSegments = {
                            video: null,
                            audio: null,
                          }),
                          (this._pendingSegments = { video: [], audio: [] }),
                          (this._pendingRemoveRanges = {
                            video: [],
                            audio: [],
                          }),
                          (this._idrList = new w.Vn());
                      }
                      return (
                        (e.prototype.destroy = function () {
                          (this._mediaElement || this._mediaSource) &&
                            this.detachMediaElement(),
                            (this.e = null),
                            this._emitter.removeAllListeners(),
                            (this._emitter = null);
                        }),
                        (e.prototype.on = function (e, t) {
                          this._emitter.addListener(e, t);
                        }),
                        (e.prototype.off = function (e, t) {
                          this._emitter.removeListener(e, t);
                        }),
                        (e.prototype.attachMediaElement = function (e) {
                          if (this._mediaSource)
                            throw new S.rT(
                              "MediaSource has been attached to an HTMLMediaElement!"
                            );
                          var t = (this._mediaSource =
                            new window.MediaSource());
                          t.addEventListener("sourceopen", this.e.onSourceOpen),
                            t.addEventListener(
                              "sourceended",
                              this.e.onSourceEnded
                            ),
                            t.addEventListener(
                              "sourceclose",
                              this.e.onSourceClose
                            ),
                            (this._mediaElement = e),
                            (this._mediaSourceObjectURL =
                              window.URL.createObjectURL(this._mediaSource)),
                            (e.src = this._mediaSourceObjectURL);
                        }),
                        (e.prototype.detachMediaElement = function () {
                          if (this._mediaSource) {
                            var e = this._mediaSource;
                            for (var t in this._sourceBuffers) {
                              var i = this._pendingSegments[t];
                              i.splice(0, i.length),
                                (this._pendingSegments[t] = null),
                                (this._pendingRemoveRanges[t] = null),
                                (this._lastInitSegments[t] = null);
                              var s = this._sourceBuffers[t];
                              if (s) {
                                if ("closed" !== e.readyState) {
                                  try {
                                    e.removeSourceBuffer(s);
                                  } catch (e) {
                                    d.Z.e(this.TAG, e.message);
                                  }
                                  s.removeEventListener(
                                    "error",
                                    this.e.onSourceBufferError
                                  ),
                                    s.removeEventListener(
                                      "updateend",
                                      this.e.onSourceBufferUpdateEnd
                                    );
                                }
                                (this._mimeTypes[t] = null),
                                  (this._sourceBuffers[t] = null);
                              }
                            }
                            if ("open" === e.readyState)
                              try {
                                e.endOfStream();
                              } catch (e) {
                                d.Z.e(this.TAG, e.message);
                              }
                            e.removeEventListener(
                              "sourceopen",
                              this.e.onSourceOpen
                            ),
                              e.removeEventListener(
                                "sourceended",
                                this.e.onSourceEnded
                              ),
                              e.removeEventListener(
                                "sourceclose",
                                this.e.onSourceClose
                              ),
                              (this._pendingSourceBufferInit = []),
                              (this._isBufferFull = !1),
                              this._idrList.clear(),
                              (this._mediaSource = null);
                          }
                          this._mediaElement &&
                            ((this._mediaElement.src = ""),
                            this._mediaElement.removeAttribute("src"),
                            (this._mediaElement = null)),
                            this._mediaSourceObjectURL &&
                              (window.URL.revokeObjectURL(
                                this._mediaSourceObjectURL
                              ),
                              (this._mediaSourceObjectURL = null));
                        }),
                        (e.prototype.appendInitSegment = function (e, t) {
                          if (
                            !this._mediaSource ||
                            "open" !== this._mediaSource.readyState
                          )
                            return (
                              this._pendingSourceBufferInit.push(e),
                              void this._pendingSegments[e.type].push(e)
                            );
                          var i = e,
                            s = "" + i.container;
                          i.codec &&
                            i.codec.length > 0 &&
                            (s += ";codecs=" + i.codec);
                          var n = !1;
                          if (
                            (d.Z.v(
                              this.TAG,
                              "Received Initialization Segment, mimeType: " + s
                            ),
                            (this._lastInitSegments[i.type] = i),
                            s !== this._mimeTypes[i.type])
                          ) {
                            if (this._mimeTypes[i.type])
                              d.Z.v(
                                this.TAG,
                                "Notice: " +
                                  i.type +
                                  " mimeType changed, origin: " +
                                  this._mimeTypes[i.type] +
                                  ", target: " +
                                  s
                              );
                            else {
                              n = !0;
                              try {
                                var o = (this._sourceBuffers[i.type] =
                                  this._mediaSource.addSourceBuffer(s));
                                o.addEventListener(
                                  "error",
                                  this.e.onSourceBufferError
                                ),
                                  o.addEventListener(
                                    "updateend",
                                    this.e.onSourceBufferUpdateEnd
                                  );
                              } catch (e) {
                                return (
                                  d.Z.e(this.TAG, e.message),
                                  void this._emitter.emit(x.ERROR, {
                                    code: e.code,
                                    msg: e.message,
                                  })
                                );
                              }
                            }
                            this._mimeTypes[i.type] = s;
                          }
                          t || this._pendingSegments[i.type].push(i),
                            n ||
                              (this._sourceBuffers[i.type] &&
                                !this._sourceBuffers[i.type].updating &&
                                this._doAppendSegments()),
                            u.Z.safari &&
                              "audio/mpeg" === i.container &&
                              i.mediaDuration > 0 &&
                              ((this._requireSetMediaDuration = !0),
                              (this._pendingMediaDuration =
                                i.mediaDuration / 1e3),
                              this._updateMediaSourceDuration());
                        }),
                        (e.prototype.appendMediaSegment = function (e) {
                          var t = e;
                          this._pendingSegments[t.type].push(t),
                            this._config.autoCleanupSourceBuffer &&
                              this._needCleanupSourceBuffer() &&
                              this._doCleanupSourceBuffer();
                          var i = this._sourceBuffers[t.type];
                          !i ||
                            i.updating ||
                            this._hasPendingRemoveRanges() ||
                            this._doAppendSegments();
                        }),
                        (e.prototype.seek = function (e) {
                          for (var t in this._sourceBuffers)
                            if (this._sourceBuffers[t]) {
                              var i = this._sourceBuffers[t];
                              if ("open" === this._mediaSource.readyState)
                                try {
                                  i.abort();
                                } catch (e) {
                                  d.Z.e(this.TAG, e.message);
                                }
                              this._idrList.clear();
                              var s = this._pendingSegments[t];
                              if (
                                (s.splice(0, s.length),
                                "closed" !== this._mediaSource.readyState)
                              ) {
                                for (var n = 0; n < i.buffered.length; n++) {
                                  var o = i.buffered.start(n),
                                    r = i.buffered.end(n);
                                  this._pendingRemoveRanges[t].push({
                                    start: o,
                                    end: r,
                                  });
                                }
                                if (
                                  (i.updating || this._doRemoveRanges(),
                                  u.Z.safari)
                                ) {
                                  var l = this._lastInitSegments[t];
                                  l &&
                                    (this._pendingSegments[t].push(l),
                                    i.updating || this._doAppendSegments());
                                }
                              }
                            }
                        }),
                        (e.prototype.endOfStream = function () {
                          var e = this._mediaSource,
                            t = this._sourceBuffers;
                          e && "open" === e.readyState
                            ? (t.video && t.video.updating) ||
                              (t.audio && t.audio.updating)
                              ? (this._hasPendingEos = !0)
                              : ((this._hasPendingEos = !1), e.endOfStream())
                            : e &&
                              "closed" === e.readyState &&
                              this._hasPendingSegments() &&
                              (this._hasPendingEos = !0);
                        }),
                        (e.prototype.getNearestKeyframe = function (e) {
                          return this._idrList.getLastSyncPointBeforeDts(e);
                        }),
                        (e.prototype._needCleanupSourceBuffer = function () {
                          if (!this._config.autoCleanupSourceBuffer) return !1;
                          var e = this._mediaElement.currentTime;
                          for (var t in this._sourceBuffers) {
                            var i = this._sourceBuffers[t];
                            if (i) {
                              var s = i.buffered;
                              if (
                                s.length >= 1 &&
                                e - s.start(0) >=
                                  this._config.autoCleanupMaxBackwardDuration
                              )
                                return !0;
                            }
                          }
                          return !1;
                        }),
                        (e.prototype._doCleanupSourceBuffer = function () {
                          var e = this._mediaElement.currentTime;
                          for (var t in this._sourceBuffers) {
                            var i = this._sourceBuffers[t];
                            if (i) {
                              for (
                                var s = i.buffered, n = !1, o = 0;
                                o < s.length;
                                o++
                              ) {
                                var r = s.start(o),
                                  l = s.end(o);
                                if (r <= e && e < l + 3) {
                                  if (
                                    e - r >=
                                    this._config.autoCleanupMaxBackwardDuration
                                  ) {
                                    n = !0;
                                    var a =
                                      e -
                                      this._config
                                        .autoCleanupMinBackwardDuration;
                                    this._pendingRemoveRanges[t].push({
                                      start: r,
                                      end: a,
                                    });
                                  }
                                } else
                                  l < e &&
                                    ((n = !0),
                                    this._pendingRemoveRanges[t].push({
                                      start: r,
                                      end: l,
                                    }));
                              }
                              n && !i.updating && this._doRemoveRanges();
                            }
                          }
                        }),
                        (e.prototype._updateMediaSourceDuration = function () {
                          var e = this._sourceBuffers;
                          if (
                            0 !== this._mediaElement.readyState &&
                            "open" === this._mediaSource.readyState &&
                            !(
                              (e.video && e.video.updating) ||
                              (e.audio && e.audio.updating)
                            )
                          ) {
                            var t = this._mediaSource.duration,
                              i = this._pendingMediaDuration;
                            i > 0 &&
                              (isNaN(t) || i > t) &&
                              (d.Z.v(
                                this.TAG,
                                "Update MediaSource duration from " +
                                  t +
                                  " to " +
                                  i
                              ),
                              (this._mediaSource.duration = i)),
                              (this._requireSetMediaDuration = !1),
                              (this._pendingMediaDuration = 0);
                          }
                        }),
                        (e.prototype._doRemoveRanges = function () {
                          for (var e in this._pendingRemoveRanges)
                            if (
                              this._sourceBuffers[e] &&
                              !this._sourceBuffers[e].updating
                            )
                              for (
                                var t = this._sourceBuffers[e],
                                  i = this._pendingRemoveRanges[e];
                                i.length && !t.updating;

                              ) {
                                var s = i.shift();
                                t.remove(s.start, s.end);
                              }
                        }),
                        (e.prototype._doAppendSegments = function () {
                          var e = this._pendingSegments;
                          for (var t in e)
                            if (
                              this._sourceBuffers[t] &&
                              !this._sourceBuffers[t].updating &&
                              e[t].length > 0
                            ) {
                              var i = e[t].shift();
                              if (i.timestampOffset) {
                                var s = this._sourceBuffers[t].timestampOffset,
                                  n = i.timestampOffset / 1e3;
                                Math.abs(s - n) > 0.1 &&
                                  (d.Z.v(
                                    this.TAG,
                                    "Update MPEG audio timestampOffset from " +
                                      s +
                                      " to " +
                                      n
                                  ),
                                  (this._sourceBuffers[t].timestampOffset = n)),
                                  delete i.timestampOffset;
                              }
                              if (!i.data || 0 === i.data.byteLength) continue;
                              try {
                                this._sourceBuffers[t].appendBuffer(i.data),
                                  (this._isBufferFull = !1),
                                  "video" === t &&
                                    i.hasOwnProperty("info") &&
                                    this._idrList.appendArray(
                                      i.info.syncPoints
                                    );
                              } catch (e) {
                                this._pendingSegments[t].unshift(i),
                                  22 === e.code
                                    ? (this._isBufferFull ||
                                        this._emitter.emit(x.BUFFER_FULL),
                                      (this._isBufferFull = !0))
                                    : (d.Z.e(this.TAG, e.message),
                                      this._emitter.emit(x.ERROR, {
                                        code: e.code,
                                        msg: e.message,
                                      }));
                              }
                            }
                        }),
                        (e.prototype._onSourceOpen = function () {
                          if (
                            (d.Z.v(this.TAG, "MediaSource onSourceOpen"),
                            this._mediaSource.removeEventListener(
                              "sourceopen",
                              this.e.onSourceOpen
                            ),
                            this._pendingSourceBufferInit.length > 0)
                          )
                            for (
                              var e = this._pendingSourceBufferInit;
                              e.length;

                            ) {
                              var t = e.shift();
                              this.appendInitSegment(t, !0);
                            }
                          this._hasPendingSegments() &&
                            this._doAppendSegments(),
                            this._emitter.emit(x.SOURCE_OPEN);
                        }),
                        (e.prototype._onSourceEnded = function () {
                          d.Z.v(this.TAG, "MediaSource onSourceEnded");
                        }),
                        (e.prototype._onSourceClose = function () {
                          d.Z.v(this.TAG, "MediaSource onSourceClose"),
                            this._mediaSource &&
                              null != this.e &&
                              (this._mediaSource.removeEventListener(
                                "sourceopen",
                                this.e.onSourceOpen
                              ),
                              this._mediaSource.removeEventListener(
                                "sourceended",
                                this.e.onSourceEnded
                              ),
                              this._mediaSource.removeEventListener(
                                "sourceclose",
                                this.e.onSourceClose
                              ));
                        }),
                        (e.prototype._hasPendingSegments = function () {
                          var e = this._pendingSegments;
                          return e.video.length > 0 || e.audio.length > 0;
                        }),
                        (e.prototype._hasPendingRemoveRanges = function () {
                          var e = this._pendingRemoveRanges;
                          return e.video.length > 0 || e.audio.length > 0;
                        }),
                        (e.prototype._onSourceBufferUpdateEnd = function () {
                          this._requireSetMediaDuration
                            ? this._updateMediaSourceDuration()
                            : this._hasPendingRemoveRanges()
                            ? this._doRemoveRanges()
                            : this._hasPendingSegments()
                            ? this._doAppendSegments()
                            : this._hasPendingEos && this.endOfStream(),
                            this._emitter.emit(x.UPDATE_END);
                        }),
                        (e.prototype._onSourceBufferError = function (e) {
                          d.Z.e(this.TAG, "SourceBuffer Error: " + e);
                        }),
                        e
                      );
                    })(),
                    k = i(600),
                    C = {
                      NETWORK_ERROR: "NetworkError",
                      MEDIA_ERROR: "MediaError",
                      OTHER_ERROR: "OtherError",
                    },
                    T = {
                      NETWORK_EXCEPTION: a.nm.EXCEPTION,
                      NETWORK_STATUS_CODE_INVALID:
                        a.nm.HTTP_STATUS_CODE_INVALID,
                      NETWORK_TIMEOUT: a.nm.CONNECTING_TIMEOUT,
                      NETWORK_UNRECOVERABLE_EARLY_EOF:
                        a.nm.UNRECOVERABLE_EARLY_EOF,
                      MEDIA_MSE_ERROR: "MediaMSEError",
                      MEDIA_FORMAT_ERROR: k.Z.FORMAT_ERROR,
                      MEDIA_FORMAT_UNSUPPORTED: k.Z.FORMAT_UNSUPPORTED,
                      MEDIA_CODEC_UNSUPPORTED: k.Z.CODEC_UNSUPPORTED,
                    },
                    O = (function () {
                      function e(e, t) {
                        for (var i in ((this.canvas =
                          document.createElement("canvas")),
                        (this.memCanvas = document.createElement("canvas")),
                        e.style))
                          try {
                            this.canvas.style[i] = e.style[i];
                          } catch (e) {}
                        (this.canvas.style.display = ""),
                          (e.style.display = "none");
                        var s = e.parentElement;
                        s.lastChild == e
                          ? s.appendChild(this.canvas)
                          : s.insertBefore(this.canvas, e.nextSibling);
                        var n =
                            e.getAttribute("width") || this.canvas.style.width,
                          o =
                            e.getAttribute("height") ||
                            this.canvas.style.height;
                        (this.canvas.width = parseInt(n.replace("px", ""))),
                          (this.canvas.height = parseInt(o.replace("px", ""))),
                          (this.context = this.canvas.getContext("2d")),
                          (this.memContext = this.memCanvas.getContext("2d")),
                          (this.imageData = null),
                          (this.width = this.height = 0),
                          (this.currentTime = 0),
                          (this._worker = new Worker(
                            t || "./js/h265_decoder.js"
                          )),
                          this._worker.addEventListener(
                            "message",
                            this._onWorkerMessage.bind(this)
                          ),
                          (this._inited = !1);
                      }
                      return (
                        (e.prototype.onResize = function (e) {
                          for (var t in e.style)
                            try {
                              this.canvas.style[t] = e.style[t];
                            } catch (e) {}
                          (this.canvas.style.display = ""),
                            (e.style.display = "none");
                          var i =
                              e.getAttribute("width") ||
                              this.canvas.style.width,
                            s =
                              e.getAttribute("height") ||
                              this.canvas.style.height;
                          (this.canvas.width = parseInt(i.replace("px", ""))),
                            (this.canvas.height = parseInt(
                              s.replace("px", "")
                            )),
                            this.imageData &&
                              this.context.drawImage(
                                this.memCanvas,
                                0,
                                0,
                                this.width,
                                this.height,
                                0,
                                0,
                                this.canvas.width,
                                this.canvas.height
                              );
                        }),
                        (e.prototype._onWorkerMessage = function (e) {
                          var t = e.data;
                          if (t.inited) this._inited = !0;
                          else if (this._inited && t.rgb) {
                            (this.width == t.width &&
                              this.height == t.height) ||
                              ((this.imageData = this.context.createImageData(
                                (this.width = t.width),
                                (this.height = t.height)
                              )),
                              (this.memCanvas.width = t.width),
                              (this.memCanvas.height = t.height));
                            for (
                              var i = new Uint8Array(t.rgb), s = 0, n = 0;
                              n < i.length;
                              n++
                            )
                              n &&
                                n % 3 == 0 &&
                                (this.imageData.data[s++] = 255),
                                (this.imageData.data[s++] = i[n]);
                            (this.imageData.data[s] = 255),
                              this.memContext.putImageData(
                                this.imageData,
                                0,
                                0,
                                0,
                                0,
                                t.width,
                                t.height
                              ),
                              this.context.drawImage(
                                this.memCanvas,
                                0,
                                0,
                                t.width,
                                t.height,
                                0,
                                0,
                                this.canvas.width,
                                this.canvas.height
                              ),
                              (this.currentTime = t.currentPts / 1e3);
                          }
                        }),
                        (e.prototype.play = function (e) {
                          var t = this;
                          if (this._inited) {
                            for (
                              var i,
                                s = function (s, n) {
                                  (n = e.samples[s]).units.forEach(function (
                                    e
                                  ) {
                                    ((e = new Uint8Array(e))[0] =
                                      e[1] =
                                      e[2] =
                                        0),
                                      (e[3] = 1),
                                      t._worker.postMessage(
                                        { h265: !0, pts: n.pts, bytes: e },
                                        [e.buffer]
                                      );
                                  }),
                                    (e.length -= n.length),
                                    (i = n);
                                },
                                n = 0,
                                o = void 0;
                              n < e.samples.length;
                              n++
                            )
                              s(n, o), (o = i);
                            e.samples.length = 0;
                          }
                        }),
                        (e.prototype.pause = function (e) {
                          this._inited &&
                            this._worker.postMessage({ pause: !0, flag: e });
                        }),
                        (e.prototype.destroy = function () {
                          (this._inited = !1),
                            this._timer &&
                              (clearInterval(this._timer),
                              (this._timer = null)),
                            this._worker.postMessage({ close: !0 }),
                            this._worker.terminate(),
                            (this._worker = null),
                            this.canvas.remove(),
                            (this.canvas = null),
                            (this.context = null),
                            (this.memCanvas = null),
                            (this.memContext = null),
                            (this.imageData = null);
                        }),
                        e
                      );
                    })(),
                    $ = (function () {
                      function e(e, t) {
                        if (
                          ((this.TAG = "FlvPlayer"),
                          (this._type = "FlvPlayer"),
                          (this._emitter = new (c())()),
                          (this._config = r()),
                          "object" == typeof t &&
                            Object.assign(this._config, t),
                          "flv" !== e.type.toLowerCase())
                        )
                          throw new S.OC(
                            "FlvPlayer requires an flv MediaDataSource input!"
                          );
                        !0 === e.isLive && (this._config.isLive = !0),
                          (this.e = {
                            onvLoadedMetadata:
                              this._onvLoadedMetadata.bind(this),
                            onvSeeking: this._onvSeeking.bind(this),
                            onvCanPlay: this._onvCanPlay.bind(this),
                            onvStalled: this._onvStalled.bind(this),
                            onvProgress: this._onvProgress.bind(this),
                          }),
                          self.performance && self.performance.now
                            ? (this._now = self.performance.now.bind(
                                self.performance
                              ))
                            : (this._now = Date.now),
                          (this._pendingSeekTime = null),
                          (this._requestSetTime = !1),
                          (this._seekpointRecord = null),
                          (this._progressChecker = null),
                          (this._mediaDataSource = e),
                          (this._mediaElement = null),
                          (this._msectl = null),
                          (this._transmuxer = null),
                          (this._mseSourceOpened = !1),
                          (this._hasPendingLoad = !1),
                          (this._receivedCanPlay = !1),
                          (this._mediaInfo = null),
                          (this._statisticsInfo = null);
                        var i =
                          u.Z.chrome &&
                          (u.Z.version.major < 50 ||
                            (50 === u.Z.version.major &&
                              u.Z.version.build < 2661));
                        (this._alwaysSeekKeyframe = !!(
                          i ||
                          u.Z.msedge ||
                          u.Z.msie
                        )),
                          this._alwaysSeekKeyframe &&
                            (this._config.accurateSeek = !1);
                      }
                      return (
                        (e.prototype.destroy = function () {
                          null != this._progressChecker &&
                            (window.clearInterval(this._progressChecker),
                            (this._progressChecker = null)),
                            this._transmuxer && this.unload(),
                            this._mediaElement && this.detachMediaElement(),
                            (this.e = null),
                            (this._mediaDataSource = null),
                            this._emitter.removeAllListeners(),
                            (this._emitter = null),
                            this._h265Player && this._h265Player.destroy(),
                            (this._h265Player = null);
                        }),
                        (e.prototype.onResize = function () {
                          this._h265Player &&
                            this._h265Player.onResize(this._mediaElement);
                        }),
                        (e.prototype.snapshot = function (e) {
                          var t;
                          if (this._h265Player)
                            t = this._h265Player.canvas.toDataURL();
                          else {
                            var i = document.createElement("canvas"),
                              s = this._mediaElement;
                            s.pause(),
                              (i.width = s.width),
                              (i.height = s.height),
                              i
                                .getContext("2d")
                                .drawImage(s, 0, 0, s.width, s.height),
                              (t = i.toDataURL()),
                              s.play();
                          }
                          var n = document.createElement("a");
                          (n.href = t), (n.download = e), n.click();
                        }),
                        (e.prototype.on = function (e, t) {
                          var i = this;
                          e === p.MEDIA_INFO
                            ? null != this._mediaInfo &&
                              Promise.resolve().then(function () {
                                i._emitter.emit(p.MEDIA_INFO, i.mediaInfo);
                              })
                            : e === p.STATISTICS_INFO &&
                              null != this._statisticsInfo &&
                              Promise.resolve().then(function () {
                                i._emitter.emit(
                                  p.STATISTICS_INFO,
                                  i.statisticsInfo
                                );
                              }),
                            this._emitter.addListener(e, t);
                        }),
                        (e.prototype.off = function (e, t) {
                          this._emitter.removeListener(e, t);
                        }),
                        (e.prototype.send = function (e, t) {
                          if (!this._transmuxer) return !1;
                          if (!this._transmuxer._controller) return !1;
                          if (!this._transmuxer._controller._ioctl) return !1;
                          if (!this._transmuxer._controller._ioctl._loader)
                            return !1;
                          if (!this._transmuxer._controller._ioctl._loader._ws)
                            return !1;
                          var i =
                            this._transmuxer._controller._ioctl._loader._ws;
                          return (
                            t &&
                              e.cmd &&
                              ((i._cbs = i._cbs || {}), (i._cbs[e.cmd] = t)),
                            i.send(JSON.stringify(e)),
                            !0
                          );
                        }),
                        (e.prototype.attachMediaElement = function (e) {
                          var t = this;
                          if (
                            ((this._mediaElement = e),
                            e.addEventListener(
                              "loadedmetadata",
                              this.e.onvLoadedMetadata
                            ),
                            e.addEventListener("seeking", this.e.onvSeeking),
                            e.addEventListener("canplay", this.e.onvCanPlay),
                            e.addEventListener("stalled", this.e.onvStalled),
                            e.addEventListener("progress", this.e.onvProgress),
                            (this._msectl = new E(this._config)),
                            this._msectl.on(
                              x.UPDATE_END,
                              this._onmseUpdateEnd.bind(this)
                            ),
                            this._msectl.on(
                              x.BUFFER_FULL,
                              this._onmseBufferFull.bind(this)
                            ),
                            this._msectl.on(x.SOURCE_OPEN, function () {
                              (t._mseSourceOpened = !0),
                                t._hasPendingLoad &&
                                  ((t._hasPendingLoad = !1), t.load());
                            }),
                            this._msectl.on(x.ERROR, function (e) {
                              t._emitter.emit(
                                p.ERROR,
                                C.MEDIA_ERROR,
                                T.MEDIA_MSE_ERROR,
                                e
                              );
                            }),
                            this._msectl.attachMediaElement(e),
                            null != this._pendingSeekTime)
                          )
                            try {
                              (e.currentTime = this._pendingSeekTime),
                                (this._pendingSeekTime = null);
                            } catch (e) {}
                        }),
                        (e.prototype.detachMediaElement = function () {
                          this._mediaElement &&
                            (this._msectl.detachMediaElement(),
                            this._mediaElement.removeEventListener(
                              "loadedmetadata",
                              this.e.onvLoadedMetadata
                            ),
                            this._mediaElement.removeEventListener(
                              "seeking",
                              this.e.onvSeeking
                            ),
                            this._mediaElement.removeEventListener(
                              "canplay",
                              this.e.onvCanPlay
                            ),
                            this._mediaElement.removeEventListener(
                              "stalled",
                              this.e.onvStalled
                            ),
                            this._mediaElement.removeEventListener(
                              "progress",
                              this.e.onvProgress
                            ),
                            (this._mediaElement = null)),
                            this._msectl &&
                              (this._msectl.destroy(), (this._msectl = null));
                        }),
                        (e.prototype.load = function () {
                          var e = this;
                          if (!this._mediaElement)
                            throw new S.rT(
                              "HTMLMediaElement must be attached before load()!"
                            );
                          if (this._transmuxer)
                            throw new S.rT(
                              "FlvPlayer.load() has been called, please call unload() first!"
                            );
                          this._hasPendingLoad ||
                            (this._config.deferLoadAfterSourceOpen &&
                            !1 === this._mseSourceOpened
                              ? (this._hasPendingLoad = !0)
                              : (this._mediaElement.readyState > 0 &&
                                  ((this._requestSetTime = !0),
                                  (this._mediaElement.currentTime = 0)),
                                (this._transmuxer = new y(
                                  this._mediaDataSource,
                                  this._config
                                )),
                                this._transmuxer.on(
                                  _.Z.INIT_SEGMENT,
                                  function (t, i) {
                                    e._msectl.appendInitSegment(i);
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.MEDIA_SEGMENT,
                                  function (t, i) {
                                    if (
                                      (e._msectl.appendMediaSegment(i),
                                      e._config.lazyLoad && !e._config.isLive)
                                    ) {
                                      var s = e._mediaElement.currentTime;
                                      i.info.endDts >=
                                        1e3 *
                                          (s + e._config.lazyLoadMaxDuration) &&
                                        null == e._progressChecker &&
                                        (d.Z.v(
                                          e.TAG,
                                          "Maximum buffering duration exceeded, suspend transmuxing task"
                                        ),
                                        e._suspendTransmuxer());
                                    }
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.LOADING_COMPLETE,
                                  function () {
                                    e._msectl.endOfStream(),
                                      e._emitter.emit(p.LOADING_COMPLETE);
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.RECOVERED_EARLY_EOF,
                                  function () {
                                    e._emitter.emit(p.RECOVERED_EARLY_EOF);
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.IO_ERROR,
                                  function (t, i) {
                                    e._emitter.emit(
                                      p.ERROR,
                                      C.NETWORK_ERROR,
                                      t,
                                      i
                                    );
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.DEMUX_ERROR,
                                  function (t, i) {
                                    e._emitter.emit(p.ERROR, C.MEDIA_ERROR, t, {
                                      code: -1,
                                      msg: i,
                                    });
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.MEDIA_INFO,
                                  function (t) {
                                    (e._mediaInfo = t),
                                      e._emitter.emit(
                                        p.MEDIA_INFO,
                                        Object.assign({}, t)
                                      );
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.METADATA_ARRIVED,
                                  function (t) {
                                    e._emitter.emit(p.METADATA_ARRIVED, t);
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.SCRIPTDATA_ARRIVED,
                                  function (t) {
                                    e._emitter.emit(p.SCRIPTDATA_ARRIVED, t);
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.STATISTICS_INFO,
                                  function (t) {
                                    (e._statisticsInfo =
                                      e._fillStatisticsInfo(t)),
                                      e._emitter.emit(
                                        p.STATISTICS_INFO,
                                        Object.assign({}, e._statisticsInfo)
                                      );
                                  }
                                ),
                                this._transmuxer.on(
                                  _.Z.RECOMMEND_SEEKPOINT,
                                  function (t) {
                                    e._mediaElement &&
                                      !e._config.accurateSeek &&
                                      ((e._requestSetTime = !0),
                                      (e._mediaElement.currentTime = t / 1e3));
                                  }
                                ),
                                (this._h265Player = null),
                                this._transmuxer.on(
                                  _.Z.H265_DATA,
                                  function (t) {
                                    (e._h265Player =
                                      e._h265Player ||
                                      new O(
                                        e._mediaElement,
                                        e._mediaDataSource.h265js
                                      )),
                                      e._h265Player.play(t);
                                  }
                                ),
                                this._transmuxer.open()));
                        }),
                        (e.prototype.unload = function () {
                          this._mediaElement && this._mediaElement.pause(),
                            this._msectl && this._msectl.seek(0),
                            this._transmuxer &&
                              (this._transmuxer.close(),
                              this._transmuxer.destroy(),
                              (this._transmuxer = null));
                        }),
                        (e.prototype.play = function () {
                          this._h265Player
                            ? this._h265Player.pause(!1)
                            : this._mediaElement.play();
                        }),
                        (e.prototype.pause = function () {
                          this._h265Player
                            ? this._h265Player.pause(!0)
                            : this._mediaElement.pause();
                        }),
                        Object.defineProperty(e.prototype, "type", {
                          get: function () {
                            return this._type;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "buffered", {
                          get: function () {
                            return this._mediaElement.buffered;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "duration", {
                          get: function () {
                            return this._mediaElement.duration;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "volume", {
                          get: function () {
                            return this._mediaElement.volume;
                          },
                          set: function (e) {
                            this._mediaElement.volume = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "muted", {
                          get: function () {
                            return this._mediaElement.muted;
                          },
                          set: function (e) {
                            this._mediaElement.muted = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "currentTime", {
                          get: function () {
                            return this._h265Player
                              ? this._h265Player.currentTime
                              : this._mediaElement
                              ? this._mediaElement.currentTime
                              : 0;
                          },
                          set: function (e) {
                            this._mediaElement
                              ? this._internalSeek(e)
                              : (this._pendingSeekTime = e);
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "mediaInfo", {
                          get: function () {
                            return Object.assign({}, this._mediaInfo);
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "statisticsInfo", {
                          get: function () {
                            return (
                              null == this._statisticsInfo &&
                                (this._statisticsInfo = {}),
                              (this._statisticsInfo = this._fillStatisticsInfo(
                                this._statisticsInfo
                              )),
                              Object.assign({}, this._statisticsInfo)
                            );
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype._fillStatisticsInfo = function (e) {
                          if (
                            ((e.playerType = this._type),
                            !(this._mediaElement instanceof HTMLVideoElement))
                          )
                            return e;
                          var t = !0,
                            i = 0,
                            s = 0;
                          if (this._mediaElement.getVideoPlaybackQuality) {
                            var n =
                              this._mediaElement.getVideoPlaybackQuality();
                            (i = n.totalVideoFrames),
                              (s = n.droppedVideoFrames);
                          } else
                            null != this._mediaElement.webkitDecodedFrameCount
                              ? ((i =
                                  this._mediaElement.webkitDecodedFrameCount),
                                (s =
                                  this._mediaElement.webkitDroppedFrameCount))
                              : (t = !1);
                          return (
                            t && ((e.decodedFrames = i), (e.droppedFrames = s)),
                            e
                          );
                        }),
                        (e.prototype._onmseUpdateEnd = function () {
                          if (this._config.lazyLoad && !this._config.isLive) {
                            for (
                              var e = this._mediaElement.buffered,
                                t = this._mediaElement.currentTime,
                                i = 0,
                                s = 0;
                              s < e.length;
                              s++
                            ) {
                              var n = e.start(s),
                                o = e.end(s);
                              if (n <= t && t < o) {
                                i = o;
                                break;
                              }
                            }
                            i >= t + this._config.lazyLoadMaxDuration &&
                              null == this._progressChecker &&
                              (d.Z.v(
                                this.TAG,
                                "Maximum buffering duration exceeded, suspend transmuxing task"
                              ),
                              this._suspendTransmuxer());
                          }
                        }),
                        (e.prototype._onmseBufferFull = function () {
                          d.Z.v(
                            this.TAG,
                            "MSE SourceBuffer is full, suspend transmuxing task"
                          ),
                            null == this._progressChecker &&
                              this._suspendTransmuxer();
                        }),
                        (e.prototype._suspendTransmuxer = function () {
                          this._transmuxer &&
                            (this._transmuxer.pause(),
                            null == this._progressChecker &&
                              (this._progressChecker = window.setInterval(
                                this._checkProgressAndResume.bind(this),
                                1e3
                              )));
                        }),
                        (e.prototype._checkProgressAndResume = function () {
                          for (
                            var e = this._mediaElement.currentTime,
                              t = this._mediaElement.buffered,
                              i = !1,
                              s = 0;
                            s < t.length;
                            s++
                          ) {
                            var n = t.start(s),
                              o = t.end(s);
                            if (e >= n && e < o) {
                              e >= o - this._config.lazyLoadRecoverDuration &&
                                (i = !0);
                              break;
                            }
                          }
                          i &&
                            (window.clearInterval(this._progressChecker),
                            (this._progressChecker = null),
                            i &&
                              (d.Z.v(
                                this.TAG,
                                "Continue loading from paused position"
                              ),
                              this._transmuxer.resume()));
                        }),
                        (e.prototype._isTimepointBuffered = function (e) {
                          for (
                            var t = this._mediaElement.buffered, i = 0;
                            i < t.length;
                            i++
                          ) {
                            var s = t.start(i),
                              n = t.end(i);
                            if (e >= s && e < n) return !0;
                          }
                          return !1;
                        }),
                        (e.prototype._internalSeek = function (e) {
                          var t = this._isTimepointBuffered(e),
                            i = !1,
                            s = 0;
                          if (e < 1 && this._mediaElement.buffered.length > 0) {
                            var n = this._mediaElement.buffered.start(0);
                            ((n < 1 && e < n) || u.Z.safari) &&
                              ((i = !0), (s = u.Z.safari ? 0.1 : n));
                          }
                          if (i)
                            (this._requestSetTime = !0),
                              (this._mediaElement.currentTime = s);
                          else if (t) {
                            if (this._alwaysSeekKeyframe) {
                              var o = this._msectl.getNearestKeyframe(
                                Math.floor(1e3 * e)
                              );
                              (this._requestSetTime = !0),
                                (this._mediaElement.currentTime =
                                  null != o ? o.dts / 1e3 : e);
                            } else
                              (this._requestSetTime = !0),
                                (this._mediaElement.currentTime = e);
                            null != this._progressChecker &&
                              this._checkProgressAndResume();
                          } else
                            null != this._progressChecker &&
                              (window.clearInterval(this._progressChecker),
                              (this._progressChecker = null)),
                              this._msectl.seek(e),
                              this._transmuxer.seek(Math.floor(1e3 * e)),
                              this._config.accurateSeek &&
                                ((this._requestSetTime = !0),
                                (this._mediaElement.currentTime = e));
                        }),
                        (e.prototype._checkAndApplyUnbufferedSeekpoint =
                          function () {
                            if (this._seekpointRecord)
                              if (
                                this._seekpointRecord.recordTime <=
                                this._now() - 100
                              ) {
                                var e = this._mediaElement.currentTime;
                                (this._seekpointRecord = null),
                                  this._isTimepointBuffered(e) ||
                                    (null != this._progressChecker &&
                                      (window.clearTimeout(
                                        this._progressChecker
                                      ),
                                      (this._progressChecker = null)),
                                    this._msectl.seek(e),
                                    this._transmuxer.seek(Math.floor(1e3 * e)),
                                    this._config.accurateSeek &&
                                      ((this._requestSetTime = !0),
                                      (this._mediaElement.currentTime = e)));
                              } else
                                window.setTimeout(
                                  this._checkAndApplyUnbufferedSeekpoint.bind(
                                    this
                                  ),
                                  50
                                );
                          }),
                        (e.prototype._checkAndResumeStuckPlayback = function (
                          e
                        ) {
                          var t = this._mediaElement;
                          if (e || !this._receivedCanPlay || t.readyState < 2) {
                            var i = t.buffered;
                            i.length > 0 &&
                              t.currentTime < i.start(0) &&
                              (d.Z.w(
                                this.TAG,
                                "Playback seems stuck at " +
                                  t.currentTime +
                                  ", seek to " +
                                  i.start(0)
                              ),
                              (this._requestSetTime = !0),
                              (this._mediaElement.currentTime = i.start(0)),
                              this._mediaElement.removeEventListener(
                                "progress",
                                this.e.onvProgress
                              ));
                          } else
                            this._mediaElement.removeEventListener(
                              "progress",
                              this.e.onvProgress
                            );
                        }),
                        (e.prototype._onvLoadedMetadata = function (e) {
                          null != this._pendingSeekTime &&
                            ((this._mediaElement.currentTime =
                              this._pendingSeekTime),
                            (this._pendingSeekTime = null));
                        }),
                        (e.prototype._onvSeeking = function (e) {
                          var t = this._mediaElement.currentTime,
                            i = this._mediaElement.buffered;
                          if (this._requestSetTime) this._requestSetTime = !1;
                          else {
                            if (t < 1 && i.length > 0) {
                              var s = i.start(0);
                              if ((s < 1 && t < s) || u.Z.safari)
                                return (
                                  (this._requestSetTime = !0),
                                  void (this._mediaElement.currentTime = u.Z
                                    .safari
                                    ? 0.1
                                    : s)
                                );
                            }
                            if (this._isTimepointBuffered(t)) {
                              if (this._alwaysSeekKeyframe) {
                                var n = this._msectl.getNearestKeyframe(
                                  Math.floor(1e3 * t)
                                );
                                null != n &&
                                  ((this._requestSetTime = !0),
                                  (this._mediaElement.currentTime =
                                    n.dts / 1e3));
                              }
                              null != this._progressChecker &&
                                this._checkProgressAndResume();
                            } else
                              (this._seekpointRecord = {
                                seekPoint: t,
                                recordTime: this._now(),
                              }),
                                window.setTimeout(
                                  this._checkAndApplyUnbufferedSeekpoint.bind(
                                    this
                                  ),
                                  50
                                );
                          }
                        }),
                        (e.prototype._onvCanPlay = function (e) {
                          (this._receivedCanPlay = !0),
                            this._mediaElement.removeEventListener(
                              "canplay",
                              this.e.onvCanPlay
                            );
                        }),
                        (e.prototype._onvStalled = function (e) {
                          this._checkAndResumeStuckPlayback(!0);
                        }),
                        (e.prototype._onvProgress = function (e) {
                          this._checkAndResumeStuckPlayback();
                        }),
                        e
                      );
                    })();
                  s.Z.install();
                  var R = {
                    createPlayer: function (e, t) {
                      return new $(e, t);
                    },
                    isSupported: function () {
                      return l.supportMSEH264Playback();
                    },
                    getFeatureList: function () {
                      return l.getFeatureList();
                    },
                  };
                  (R.BaseLoader = a.fp),
                    (R.LoaderStatus = a.GM),
                    (R.LoaderErrors = a.nm),
                    (R.Events = p),
                    (R.ErrorTypes = C),
                    (R.ErrorDetails = T),
                    (R.FlvPlayer = $),
                    (R.LoggingControl = g.Z),
                    Object.defineProperty(R, "version", {
                      enumerable: !0,
                      get: function () {
                        return "1.6.2";
                      },
                    });
                  var A = R;
                },
                324: function (e, t, i) {
                  e.exports = i(149).default;
                },
                191: function (e, t, i) {
                  i.d(t, {
                    Z: function () {
                      return b;
                    },
                  });
                  var s,
                    n = i(300),
                    o = (function () {
                      function e() {
                        (this._firstCheckpoint = 0),
                          (this._lastCheckpoint = 0),
                          (this._intervalBytes = 0),
                          (this._totalBytes = 0),
                          (this._lastSecondBytes = 0),
                          self.performance && self.performance.now
                            ? (this._now = self.performance.now.bind(
                                self.performance
                              ))
                            : (this._now = Date.now);
                      }
                      return (
                        (e.prototype.reset = function () {
                          (this._firstCheckpoint = this._lastCheckpoint = 0),
                            (this._totalBytes = this._intervalBytes = 0),
                            (this._lastSecondBytes = 0);
                        }),
                        (e.prototype.addBytes = function (e) {
                          0 === this._firstCheckpoint
                            ? ((this._firstCheckpoint = this._now()),
                              (this._lastCheckpoint = this._firstCheckpoint),
                              (this._intervalBytes += e),
                              (this._totalBytes += e))
                            : this._now() - this._lastCheckpoint < 1e3
                            ? ((this._intervalBytes += e),
                              (this._totalBytes += e))
                            : ((this._lastSecondBytes = this._intervalBytes),
                              (this._intervalBytes = e),
                              (this._totalBytes += e),
                              (this._lastCheckpoint = this._now()));
                        }),
                        Object.defineProperty(e.prototype, "currentKBps", {
                          get: function () {
                            this.addBytes(0);
                            var e = (this._now() - this._lastCheckpoint) / 1e3;
                            return (
                              0 == e && (e = 1), this._intervalBytes / e / 1024
                            );
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "lastSecondKBps", {
                          get: function () {
                            return (
                              this.addBytes(0),
                              0 !== this._lastSecondBytes
                                ? this._lastSecondBytes / 1024
                                : this._now() - this._lastCheckpoint >= 500
                                ? this.currentKBps
                                : 0
                            );
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "averageKBps", {
                          get: function () {
                            var e = (this._now() - this._firstCheckpoint) / 1e3;
                            return this._totalBytes / e / 1024;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        e
                      );
                    })(),
                    r = i(939),
                    l = i(538),
                    a = i(29),
                    h =
                      ((s = function (e, t) {
                        return (s =
                          Object.setPrototypeOf ||
                          ({ __proto__: [] } instanceof Array &&
                            function (e, t) {
                              e.__proto__ = t;
                            }) ||
                          function (e, t) {
                            for (var i in t)
                              Object.prototype.hasOwnProperty.call(t, i) &&
                                (e[i] = t[i]);
                          })(e, t);
                      }),
                      function (e, t) {
                        if ("function" != typeof t && null !== t)
                          throw new TypeError(
                            "Class extends value " +
                              String(t) +
                              " is not a constructor or null"
                          );
                        function i() {
                          this.constructor = e;
                        }
                        s(e, t),
                          (e.prototype =
                            null === t
                              ? Object.create(t)
                              : ((i.prototype = t.prototype), new i()));
                      }),
                    c = (function (e) {
                      function t(t, i) {
                        var s = e.call(this, "fetch-stream-loader") || this;
                        return (
                          (s.TAG = "FetchStreamLoader"),
                          (s._seekHandler = t),
                          (s._config = i),
                          (s._needStash = !0),
                          (s._requestAbort = !1),
                          (s._contentLength = null),
                          (s._receivedLength = 0),
                          s
                        );
                      }
                      return (
                        h(t, e),
                        (t.isSupported = function () {
                          try {
                            var e = l.Z.msedge && l.Z.version.minor >= 15048,
                              t = !l.Z.msedge || e;
                            return self.fetch && self.ReadableStream && t;
                          } catch (e) {
                            return !1;
                          }
                        }),
                        (t.prototype.destroy = function () {
                          this.isWorking() && this.abort(),
                            e.prototype.destroy.call(this);
                        }),
                        (t.prototype.open = function (e, t) {
                          var i = this;
                          (this._dataSource = e), (this._range = t);
                          var s = e.url;
                          this._config.reuseRedirectedURL &&
                            null != e.redirectedURL &&
                            (s = e.redirectedURL);
                          var n = this._seekHandler.getConfig(s, t),
                            o = new self.Headers();
                          if ("object" == typeof n.headers) {
                            var l = n.headers;
                            for (var h in l)
                              l.hasOwnProperty(h) && o.append(h, l[h]);
                          }
                          var c = {
                            method: "GET",
                            headers: o,
                            mode: "cors",
                            cache: "default",
                            referrerPolicy: "no-referrer-when-downgrade",
                          };
                          if ("object" == typeof this._config.headers)
                            for (var h in this._config.headers)
                              o.append(h, this._config.headers[h]);
                          !1 === e.cors && (c.mode = "same-origin"),
                            e.withCredentials && (c.credentials = "include"),
                            e.referrerPolicy &&
                              (c.referrerPolicy = e.referrerPolicy),
                            self.AbortController &&
                              ((this._abortController =
                                new self.AbortController()),
                              (c.signal = this._abortController.signal)),
                            (this._status = r.GM.kConnecting),
                            self
                              .fetch(n.url, c)
                              .then(function (e) {
                                if (i._requestAbort)
                                  return (
                                    (i._status = r.GM.kIdle),
                                    void e.body.cancel()
                                  );
                                if (
                                  e.ok &&
                                  e.status >= 200 &&
                                  e.status <= 299
                                ) {
                                  if (e.url !== n.url && i._onURLRedirect) {
                                    var t = i._seekHandler.removeURLParameters(
                                      e.url
                                    );
                                    i._onURLRedirect(t);
                                  }
                                  var s = e.headers.get("Content-Length");
                                  return (
                                    null != s &&
                                      ((i._contentLength = parseInt(s)),
                                      0 !== i._contentLength &&
                                        i._onContentLengthKnown &&
                                        i._onContentLengthKnown(
                                          i._contentLength
                                        )),
                                    i._pump.call(i, e.body.getReader())
                                  );
                                }
                                if (((i._status = r.GM.kError), !i._onError))
                                  throw new a.OZ(
                                    "FetchStreamLoader: Http code invalid, " +
                                      e.status +
                                      " " +
                                      e.statusText
                                  );
                                i._onError(r.nm.HTTP_STATUS_CODE_INVALID, {
                                  code: e.status,
                                  msg: e.statusText,
                                });
                              })
                              .catch(function (e) {
                                if (
                                  !i._abortController ||
                                  !i._abortController.signal.aborted
                                ) {
                                  if (((i._status = r.GM.kError), !i._onError))
                                    throw e;
                                  i._onError(r.nm.EXCEPTION, {
                                    code: -1,
                                    msg: e.message,
                                  });
                                }
                              });
                        }),
                        (t.prototype.abort = function () {
                          if (
                            ((this._requestAbort = !0),
                            (this._status !== r.GM.kBuffering || !l.Z.chrome) &&
                              this._abortController)
                          )
                            try {
                              this._abortController.abort();
                            } catch (e) {}
                        }),
                        (t.prototype._pump = function (e) {
                          var t = this;
                          return e
                            .read()
                            .then(function (i) {
                              if (i.done)
                                if (
                                  null !== t._contentLength &&
                                  t._receivedLength < t._contentLength
                                ) {
                                  t._status = r.GM.kError;
                                  var s = r.nm.EARLY_EOF,
                                    n = {
                                      code: -1,
                                      msg: "Fetch stream meet Early-EOF",
                                    };
                                  if (!t._onError) throw new a.OZ(n.msg);
                                  t._onError(s, n);
                                } else
                                  (t._status = r.GM.kComplete),
                                    t._onComplete &&
                                      t._onComplete(
                                        t._range.from,
                                        t._range.from + t._receivedLength - 1
                                      );
                              else {
                                if (
                                  t._abortController &&
                                  t._abortController.signal.aborted
                                )
                                  return void (t._status = r.GM.kComplete);
                                if (!0 === t._requestAbort)
                                  return (
                                    (t._status = r.GM.kComplete), e.cancel()
                                  );
                                t._status = r.GM.kBuffering;
                                var o = i.value.buffer,
                                  l = t._range.from + t._receivedLength;
                                (t._receivedLength += o.byteLength),
                                  t._onDataArrival &&
                                    t._onDataArrival(o, l, t._receivedLength),
                                  t._pump(e);
                              }
                            })
                            .catch(function (e) {
                              if (
                                t._abortController &&
                                t._abortController.signal.aborted
                              )
                                t._status = r.GM.kComplete;
                              else if (11 !== e.code || !l.Z.msedge) {
                                t._status = r.GM.kError;
                                var i = 0,
                                  s = null;
                                if (
                                  ((19 !== e.code &&
                                    "network error" !== e.message) ||
                                  !(
                                    null === t._contentLength ||
                                    (null !== t._contentLength &&
                                      t._receivedLength < t._contentLength)
                                  )
                                    ? ((i = r.nm.EXCEPTION),
                                      (s = { code: e.code, msg: e.message }))
                                    : ((i = r.nm.EARLY_EOF),
                                      (s = {
                                        code: e.code,
                                        msg: "Fetch stream meet Early-EOF",
                                      })),
                                  !t._onError)
                                )
                                  throw new a.OZ(s.msg);
                                t._onError(i, s);
                              }
                            });
                        }),
                        t
                      );
                    })(r.fp),
                    d = (function () {
                      var e = function (t, i) {
                        return (e =
                          Object.setPrototypeOf ||
                          ({ __proto__: [] } instanceof Array &&
                            function (e, t) {
                              e.__proto__ = t;
                            }) ||
                          function (e, t) {
                            for (var i in t)
                              Object.prototype.hasOwnProperty.call(t, i) &&
                                (e[i] = t[i]);
                          })(t, i);
                      };
                      return function (t, i) {
                        if ("function" != typeof i && null !== i)
                          throw new TypeError(
                            "Class extends value " +
                              String(i) +
                              " is not a constructor or null"
                          );
                        function s() {
                          this.constructor = t;
                        }
                        e(t, i),
                          (t.prototype =
                            null === i
                              ? Object.create(i)
                              : ((s.prototype = i.prototype), new s()));
                      };
                    })(),
                    u = (function (e) {
                      function t(t, i) {
                        var s = e.call(this, "xhr-moz-chunked-loader") || this;
                        return (
                          (s.TAG = "MozChunkedLoader"),
                          (s._seekHandler = t),
                          (s._config = i),
                          (s._needStash = !0),
                          (s._xhr = null),
                          (s._requestAbort = !1),
                          (s._contentLength = null),
                          (s._receivedLength = 0),
                          s
                        );
                      }
                      return (
                        d(t, e),
                        (t.isSupported = function () {
                          try {
                            var e = new XMLHttpRequest();
                            return (
                              e.open("GET", "https://example.com", !0),
                              (e.responseType = "moz-chunked-arraybuffer"),
                              "moz-chunked-arraybuffer" === e.responseType
                            );
                          } catch (e) {
                            return n.Z.w("MozChunkedLoader", e.message), !1;
                          }
                        }),
                        (t.prototype.destroy = function () {
                          this.isWorking() && this.abort(),
                            this._xhr &&
                              ((this._xhr.onreadystatechange = null),
                              (this._xhr.onprogress = null),
                              (this._xhr.onloadend = null),
                              (this._xhr.onerror = null),
                              (this._xhr = null)),
                            e.prototype.destroy.call(this);
                        }),
                        (t.prototype.open = function (e, t) {
                          (this._dataSource = e), (this._range = t);
                          var i = e.url;
                          this._config.reuseRedirectedURL &&
                            null != e.redirectedURL &&
                            (i = e.redirectedURL);
                          var s = this._seekHandler.getConfig(i, t);
                          this._requestURL = s.url;
                          var n = (this._xhr = new XMLHttpRequest());
                          if (
                            (n.open("GET", s.url, !0),
                            (n.responseType = "moz-chunked-arraybuffer"),
                            (n.onreadystatechange =
                              this._onReadyStateChange.bind(this)),
                            (n.onprogress = this._onProgress.bind(this)),
                            (n.onloadend = this._onLoadEnd.bind(this)),
                            (n.onerror = this._onXhrError.bind(this)),
                            e.withCredentials && (n.withCredentials = !0),
                            "object" == typeof s.headers)
                          ) {
                            var o = s.headers;
                            for (var l in o)
                              o.hasOwnProperty(l) &&
                                n.setRequestHeader(l, o[l]);
                          }
                          if ("object" == typeof this._config.headers)
                            for (var l in ((o = this._config.headers), o))
                              o.hasOwnProperty(l) &&
                                n.setRequestHeader(l, o[l]);
                          (this._status = r.GM.kConnecting), n.send();
                        }),
                        (t.prototype.abort = function () {
                          (this._requestAbort = !0),
                            this._xhr && this._xhr.abort(),
                            (this._status = r.GM.kComplete);
                        }),
                        (t.prototype._onReadyStateChange = function (e) {
                          var t = e.target;
                          if (2 === t.readyState) {
                            if (
                              null != t.responseURL &&
                              t.responseURL !== this._requestURL &&
                              this._onURLRedirect
                            ) {
                              var i = this._seekHandler.removeURLParameters(
                                t.responseURL
                              );
                              this._onURLRedirect(i);
                            }
                            if (
                              0 !== t.status &&
                              (t.status < 200 || t.status > 299)
                            ) {
                              if (
                                ((this._status = r.GM.kError), !this._onError)
                              )
                                throw new a.OZ(
                                  "MozChunkedLoader: Http code invalid, " +
                                    t.status +
                                    " " +
                                    t.statusText
                                );
                              this._onError(r.nm.HTTP_STATUS_CODE_INVALID, {
                                code: t.status,
                                msg: t.statusText,
                              });
                            } else this._status = r.GM.kBuffering;
                          }
                        }),
                        (t.prototype._onProgress = function (e) {
                          if (this._status !== r.GM.kError) {
                            null === this._contentLength &&
                              null !== e.total &&
                              0 !== e.total &&
                              ((this._contentLength = e.total),
                              this._onContentLengthKnown &&
                                this._onContentLengthKnown(
                                  this._contentLength
                                ));
                            var t = e.target.response,
                              i = this._range.from + this._receivedLength;
                            (this._receivedLength += t.byteLength),
                              this._onDataArrival &&
                                this._onDataArrival(t, i, this._receivedLength);
                          }
                        }),
                        (t.prototype._onLoadEnd = function (e) {
                          !0 !== this._requestAbort
                            ? this._status !== r.GM.kError &&
                              ((this._status = r.GM.kComplete),
                              this._onComplete &&
                                this._onComplete(
                                  this._range.from,
                                  this._range.from + this._receivedLength - 1
                                ))
                            : (this._requestAbort = !1);
                        }),
                        (t.prototype._onXhrError = function (e) {
                          this._status = r.GM.kError;
                          var t = 0,
                            i = null;
                          if (
                            (this._contentLength &&
                            e.loaded < this._contentLength
                              ? ((t = r.nm.EARLY_EOF),
                                (i = {
                                  code: -1,
                                  msg: "Moz-Chunked stream meet Early-Eof",
                                }))
                              : ((t = r.nm.EXCEPTION),
                                (i = {
                                  code: -1,
                                  msg: e.constructor.name + " " + e.type,
                                })),
                            !this._onError)
                          )
                            throw new a.OZ(i.msg);
                          this._onError(t, i);
                        }),
                        t
                      );
                    })(r.fp),
                    p = (function () {
                      var e = function (t, i) {
                        return (e =
                          Object.setPrototypeOf ||
                          ({ __proto__: [] } instanceof Array &&
                            function (e, t) {
                              e.__proto__ = t;
                            }) ||
                          function (e, t) {
                            for (var i in t)
                              Object.prototype.hasOwnProperty.call(t, i) &&
                                (e[i] = t[i]);
                          })(t, i);
                      };
                      return function (t, i) {
                        if ("function" != typeof i && null !== i)
                          throw new TypeError(
                            "Class extends value " +
                              String(i) +
                              " is not a constructor or null"
                          );
                        function s() {
                          this.constructor = t;
                        }
                        e(t, i),
                          (t.prototype =
                            null === i
                              ? Object.create(i)
                              : ((s.prototype = i.prototype), new s()));
                      };
                    })(),
                    f = (function (e) {
                      function t(t, i) {
                        var s = e.call(this, "xhr-range-loader") || this;
                        return (
                          (s.TAG = "RangeLoader"),
                          (s._seekHandler = t),
                          (s._config = i),
                          (s._needStash = !1),
                          (s._chunkSizeKBList = [
                            128, 256, 384, 512, 768, 1024, 1536, 2048, 3072,
                            4096, 5120, 6144, 7168, 8192,
                          ]),
                          (s._currentChunkSizeKB = 384),
                          (s._currentSpeedNormalized = 0),
                          (s._zeroSpeedChunkCount = 0),
                          (s._xhr = null),
                          (s._speedSampler = new o()),
                          (s._requestAbort = !1),
                          (s._waitForTotalLength = !1),
                          (s._totalLengthReceived = !1),
                          (s._currentRequestURL = null),
                          (s._currentRedirectedURL = null),
                          (s._currentRequestRange = null),
                          (s._totalLength = null),
                          (s._contentLength = null),
                          (s._receivedLength = 0),
                          (s._lastTimeLoaded = 0),
                          s
                        );
                      }
                      return (
                        p(t, e),
                        (t.isSupported = function () {
                          try {
                            var e = new XMLHttpRequest();
                            return (
                              e.open("GET", "https://example.com", !0),
                              (e.responseType = "arraybuffer"),
                              "arraybuffer" === e.responseType
                            );
                          } catch (e) {
                            return n.Z.w("RangeLoader", e.message), !1;
                          }
                        }),
                        (t.prototype.destroy = function () {
                          this.isWorking() && this.abort(),
                            this._xhr &&
                              ((this._xhr.onreadystatechange = null),
                              (this._xhr.onprogress = null),
                              (this._xhr.onload = null),
                              (this._xhr.onerror = null),
                              (this._xhr = null)),
                            e.prototype.destroy.call(this);
                        }),
                        Object.defineProperty(t.prototype, "currentSpeed", {
                          get: function () {
                            return this._speedSampler.lastSecondKBps;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (t.prototype.open = function (e, t) {
                          (this._dataSource = e),
                            (this._range = t),
                            (this._status = r.GM.kConnecting);
                          var i = !1;
                          null != this._dataSource.filesize &&
                            0 !== this._dataSource.filesize &&
                            ((i = !0),
                            (this._totalLength = this._dataSource.filesize)),
                            this._totalLengthReceived || i
                              ? this._openSubRange()
                              : ((this._waitForTotalLength = !0),
                                this._internalOpen(this._dataSource, {
                                  from: 0,
                                  to: -1,
                                }));
                        }),
                        (t.prototype._openSubRange = function () {
                          var e = 1024 * this._currentChunkSizeKB,
                            t = this._range.from + this._receivedLength,
                            i = t + e;
                          null != this._contentLength &&
                            i - this._range.from >= this._contentLength &&
                            (i = this._range.from + this._contentLength - 1),
                            (this._currentRequestRange = { from: t, to: i }),
                            this._internalOpen(
                              this._dataSource,
                              this._currentRequestRange
                            );
                        }),
                        (t.prototype._internalOpen = function (e, t) {
                          this._lastTimeLoaded = 0;
                          var i = e.url;
                          this._config.reuseRedirectedURL &&
                            (null != this._currentRedirectedURL
                              ? (i = this._currentRedirectedURL)
                              : null != e.redirectedURL &&
                                (i = e.redirectedURL));
                          var s = this._seekHandler.getConfig(i, t);
                          this._currentRequestURL = s.url;
                          var n = (this._xhr = new XMLHttpRequest());
                          if (
                            (n.open("GET", s.url, !0),
                            (n.responseType = "arraybuffer"),
                            (n.onreadystatechange =
                              this._onReadyStateChange.bind(this)),
                            (n.onprogress = this._onProgress.bind(this)),
                            (n.onload = this._onLoad.bind(this)),
                            (n.onerror = this._onXhrError.bind(this)),
                            e.withCredentials && (n.withCredentials = !0),
                            "object" == typeof s.headers)
                          ) {
                            var o = s.headers;
                            for (var r in o)
                              o.hasOwnProperty(r) &&
                                n.setRequestHeader(r, o[r]);
                          }
                          if ("object" == typeof this._config.headers)
                            for (var r in ((o = this._config.headers), o))
                              o.hasOwnProperty(r) &&
                                n.setRequestHeader(r, o[r]);
                          n.send();
                        }),
                        (t.prototype.abort = function () {
                          (this._requestAbort = !0),
                            this._internalAbort(),
                            (this._status = r.GM.kComplete);
                        }),
                        (t.prototype._internalAbort = function () {
                          this._xhr &&
                            ((this._xhr.onreadystatechange = null),
                            (this._xhr.onprogress = null),
                            (this._xhr.onload = null),
                            (this._xhr.onerror = null),
                            this._xhr.abort(),
                            (this._xhr = null));
                        }),
                        (t.prototype._onReadyStateChange = function (e) {
                          var t = e.target;
                          if (2 === t.readyState) {
                            if (null != t.responseURL) {
                              var i = this._seekHandler.removeURLParameters(
                                t.responseURL
                              );
                              t.responseURL !== this._currentRequestURL &&
                                i !== this._currentRedirectedURL &&
                                ((this._currentRedirectedURL = i),
                                this._onURLRedirect && this._onURLRedirect(i));
                            }
                            if (t.status >= 200 && t.status <= 299) {
                              if (this._waitForTotalLength) return;
                              this._status = r.GM.kBuffering;
                            } else {
                              if (
                                ((this._status = r.GM.kError), !this._onError)
                              )
                                throw new a.OZ(
                                  "RangeLoader: Http code invalid, " +
                                    t.status +
                                    " " +
                                    t.statusText
                                );
                              this._onError(r.nm.HTTP_STATUS_CODE_INVALID, {
                                code: t.status,
                                msg: t.statusText,
                              });
                            }
                          }
                        }),
                        (t.prototype._onProgress = function (e) {
                          if (this._status !== r.GM.kError) {
                            if (null === this._contentLength) {
                              var t = !1;
                              if (this._waitForTotalLength) {
                                (this._waitForTotalLength = !1),
                                  (this._totalLengthReceived = !0),
                                  (t = !0);
                                var i = e.total;
                                this._internalAbort(),
                                  (null != i) & (0 !== i) &&
                                    (this._totalLength = i);
                              }
                              if (
                                (-1 === this._range.to
                                  ? (this._contentLength =
                                      this._totalLength - this._range.from)
                                  : (this._contentLength =
                                      this._range.to - this._range.from + 1),
                                t)
                              )
                                return void this._openSubRange();
                              this._onContentLengthKnown &&
                                this._onContentLengthKnown(this._contentLength);
                            }
                            var s = e.loaded - this._lastTimeLoaded;
                            (this._lastTimeLoaded = e.loaded),
                              this._speedSampler.addBytes(s);
                          }
                        }),
                        (t.prototype._normalizeSpeed = function (e) {
                          var t = this._chunkSizeKBList,
                            i = t.length - 1,
                            s = 0,
                            n = 0,
                            o = i;
                          if (e < t[0]) return t[0];
                          for (; n <= o; ) {
                            if (
                              (s = n + Math.floor((o - n) / 2)) === i ||
                              (e >= t[s] && e < t[s + 1])
                            )
                              return t[s];
                            t[s] < e ? (n = s + 1) : (o = s - 1);
                          }
                        }),
                        (t.prototype._onLoad = function (e) {
                          if (this._status !== r.GM.kError)
                            if (this._waitForTotalLength)
                              this._waitForTotalLength = !1;
                            else {
                              this._lastTimeLoaded = 0;
                              var t = this._speedSampler.lastSecondKBps;
                              if (
                                (0 === t &&
                                  (this._zeroSpeedChunkCount++,
                                  this._zeroSpeedChunkCount >= 3 &&
                                    (t = this._speedSampler.currentKBps)),
                                0 !== t)
                              ) {
                                var i = this._normalizeSpeed(t);
                                this._currentSpeedNormalized !== i &&
                                  ((this._currentSpeedNormalized = i),
                                  (this._currentChunkSizeKB = i));
                              }
                              var s = e.target.response,
                                n = this._range.from + this._receivedLength;
                              this._receivedLength += s.byteLength;
                              var o = !1;
                              null != this._contentLength &&
                              this._receivedLength < this._contentLength
                                ? this._openSubRange()
                                : (o = !0),
                                this._onDataArrival &&
                                  this._onDataArrival(
                                    s,
                                    n,
                                    this._receivedLength
                                  ),
                                o &&
                                  ((this._status = r.GM.kComplete),
                                  this._onComplete &&
                                    this._onComplete(
                                      this._range.from,
                                      this._range.from +
                                        this._receivedLength -
                                        1
                                    ));
                            }
                        }),
                        (t.prototype._onXhrError = function (e) {
                          this._status = r.GM.kError;
                          var t = 0,
                            i = null;
                          if (
                            (this._contentLength &&
                            this._receivedLength > 0 &&
                            this._receivedLength < this._contentLength
                              ? ((t = r.nm.EARLY_EOF),
                                (i = {
                                  code: -1,
                                  msg: "RangeLoader meet Early-Eof",
                                }))
                              : ((t = r.nm.EXCEPTION),
                                (i = {
                                  code: -1,
                                  msg: e.constructor.name + " " + e.type,
                                })),
                            !this._onError)
                          )
                            throw new a.OZ(i.msg);
                          this._onError(t, i);
                        }),
                        t
                      );
                    })(r.fp),
                    m = (function () {
                      var e = function (t, i) {
                        return (e =
                          Object.setPrototypeOf ||
                          ({ __proto__: [] } instanceof Array &&
                            function (e, t) {
                              e.__proto__ = t;
                            }) ||
                          function (e, t) {
                            for (var i in t)
                              Object.prototype.hasOwnProperty.call(t, i) &&
                                (e[i] = t[i]);
                          })(t, i);
                      };
                      return function (t, i) {
                        if ("function" != typeof i && null !== i)
                          throw new TypeError(
                            "Class extends value " +
                              String(i) +
                              " is not a constructor or null"
                          );
                        function s() {
                          this.constructor = t;
                        }
                        e(t, i),
                          (t.prototype =
                            null === i
                              ? Object.create(i)
                              : ((s.prototype = i.prototype), new s()));
                      };
                    })(),
                    g = (function (e) {
                      function t() {
                        var t = e.call(this, "websocket-loader") || this;
                        return (
                          (t.TAG = "WebSocketLoader"),
                          (t._needStash = !0),
                          (t._ws = null),
                          (t._requestAbort = !1),
                          (t._receivedLength = 0),
                          t
                        );
                      }
                      return (
                        m(t, e),
                        (t.isSupported = function () {
                          try {
                            return void 0 !== self.WebSocket;
                          } catch (e) {
                            return !1;
                          }
                        }),
                        (t.prototype.destroy = function () {
                          this._ws && this.abort(),
                            e.prototype.destroy.call(this);
                        }),
                        (t.prototype.open = function (e) {
                          try {
                            var t = (this._ws = new self.WebSocket(e.url));
                            (t.binaryType = "arraybuffer"),
                              (t.onopen = this._onWebSocketOpen.bind(this)),
                              (t.onclose = this._onWebSocketClose.bind(this)),
                              (t.onmessage =
                                this._onWebSocketMessage.bind(this)),
                              (t.onerror = this._onWebSocketError.bind(this)),
                              (t.onmsg = e.onmsg),
                              (this._status = r.GM.kConnecting);
                          } catch (e) {
                            this._status = r.GM.kError;
                            var i = { code: e.code, msg: e.message };
                            if (!this._onError) throw new a.OZ(i.msg);
                            this._onError(r.nm.EXCEPTION, i);
                          }
                        }),
                        (t.prototype.abort = function () {
                          var e = this._ws;
                          !e ||
                            (0 !== e.readyState && 1 !== e.readyState) ||
                            ((this._requestAbort = !0),
                            1 === e.readyState &&
                              (e.send('{"cmd":"close"}'), e.close())),
                            (this._ws = null),
                            (this._status = r.GM.kComplete);
                        }),
                        (t.prototype._onWebSocketOpen = function (e) {
                          this._status = r.GM.kBuffering;
                        }),
                        (t.prototype._onWebSocketClose = function (e) {
                          !0 !== this._requestAbort
                            ? ((this._status = r.GM.kComplete),
                              this._onComplete &&
                                this._onComplete(0, this._receivedLength - 1))
                            : (this._requestAbort = !1);
                        }),
                        (t.prototype._onWebSocketMessage = function (e) {
                          var t = this;
                          if (e.data instanceof ArrayBuffer)
                            this._dispatchArrayBuffer(e.data);
                          else if (e.data instanceof Blob) {
                            var i = new FileReader();
                            (i.onload = function () {
                              t._dispatchArrayBuffer(i.result);
                            }),
                              i.readAsArrayBuffer(e.data);
                          } else {
                            if ("string" == typeof e.data) {
                              if (
                                (e = JSON.parse(e.data)).cmd &&
                                this._ws._cbs &&
                                this._ws._cbs[e.cmd]
                              ) {
                                var s = this._ws._cbs[e.cmd];
                                return delete this._ws._cbs[e.cmd], s(e);
                              }
                              if (this._ws.onmsg) return this._ws.onmsg(e);
                            }
                            this._status = r.GM.kError;
                            var n = {
                              code: -1,
                              msg:
                                "Unsupported WebSocket message type: " +
                                e.data.constructor.name,
                            };
                            if (!this._onError) throw new a.OZ(n.msg);
                            this._onError(r.nm.EXCEPTION, n);
                          }
                        }),
                        (t.prototype._dispatchArrayBuffer = function (e) {
                          var t = e,
                            i = this._receivedLength;
                          (this._receivedLength += t.byteLength),
                            this._onDataArrival &&
                              this._onDataArrival(t, i, this._receivedLength);
                        }),
                        (t.prototype._onWebSocketError = function (e) {
                          this._status = r.GM.kError;
                          var t = { code: e.code, msg: e.message };
                          if (!this._onError) throw new a.OZ(t.msg);
                          this._onError(r.nm.EXCEPTION, t);
                        }),
                        t
                      );
                    })(r.fp),
                    v = (function () {
                      function e(e) {
                        this._zeroStart = e || !1;
                      }
                      return (
                        (e.prototype.getConfig = function (e, t) {
                          var i = {};
                          if (0 !== t.from || -1 !== t.to) {
                            var s = void 0;
                            (s =
                              -1 !== t.to
                                ? "bytes=" +
                                  t.from.toString() +
                                  "-" +
                                  t.to.toString()
                                : "bytes=" + t.from.toString() + "-"),
                              (i.Range = s);
                          } else this._zeroStart && (i.Range = "bytes=0-");
                          return { url: e, headers: i };
                        }),
                        (e.prototype.removeURLParameters = function (e) {
                          return e;
                        }),
                        e
                      );
                    })(),
                    _ = (function () {
                      function e(e, t) {
                        (this._startName = e), (this._endName = t);
                      }
                      return (
                        (e.prototype.getConfig = function (e, t) {
                          var i = e;
                          if (0 !== t.from || -1 !== t.to) {
                            var s = !0;
                            -1 === i.indexOf("?") && ((i += "?"), (s = !1)),
                              s && (i += "&"),
                              (i += this._startName + "=" + t.from.toString()),
                              -1 !== t.to &&
                                (i +=
                                  "&" + this._endName + "=" + t.to.toString());
                          }
                          return { url: i, headers: {} };
                        }),
                        (e.prototype.removeURLParameters = function (e) {
                          var t = e.split("?")[0],
                            i = void 0,
                            s = e.indexOf("?");
                          -1 !== s && (i = e.substring(s + 1));
                          var n = "";
                          if (null != i && i.length > 0)
                            for (
                              var o = i.split("&"), r = 0;
                              r < o.length;
                              r++
                            ) {
                              var l = o[r].split("="),
                                a = r > 0;
                              l[0] !== this._startName &&
                                l[0] !== this._endName &&
                                (a && (n += "&"), (n += o[r]));
                            }
                          return 0 === n.length ? t : t + "?" + n;
                        }),
                        e
                      );
                    })(),
                    b = (function () {
                      function e(e, t, i) {
                        (this.TAG = "IOController"),
                          (this._config = t),
                          (this._extraData = i),
                          (this._stashInitialSize = 393216),
                          null != t.stashInitialSize &&
                            t.stashInitialSize > 0 &&
                            (this._stashInitialSize = t.stashInitialSize),
                          (this._stashUsed = 0),
                          (this._stashSize = this._stashInitialSize),
                          (this._bufferSize = 3145728),
                          (this._stashBuffer = new ArrayBuffer(
                            this._bufferSize
                          )),
                          (this._stashByteStart = 0),
                          (this._enableStash = !0),
                          !1 === t.enableStashBuffer &&
                            (this._enableStash = !1),
                          (this._loader = null),
                          (this._loaderClass = null),
                          (this._seekHandler = null),
                          (this._dataSource = e),
                          (this._isWebSocketURL = /wss?:\/\/(.+?)/.test(e.url)),
                          (this._refTotalLength = e.filesize
                            ? e.filesize
                            : null),
                          (this._totalLength = this._refTotalLength),
                          (this._fullRequestFlag = !1),
                          (this._currentRange = null),
                          (this._redirectedURL = null),
                          (this._speedNormalized = 0),
                          (this._speedSampler = new o()),
                          (this._speedNormalizeList = [
                            64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072,
                            4096,
                          ]),
                          (this._isEarlyEofReconnecting = !1),
                          (this._paused = !1),
                          (this._resumeFrom = 0),
                          (this._onDataArrival = null),
                          (this._onSeeked = null),
                          (this._onError = null),
                          (this._onComplete = null),
                          (this._onRedirect = null),
                          (this._onRecoveredEarlyEof = null),
                          this._selectSeekHandler(),
                          this._selectLoader(),
                          this._createLoader();
                      }
                      return (
                        (e.prototype.destroy = function () {
                          this._loader.isWorking() && this._loader.abort(),
                            this._loader.destroy(),
                            (this._loader = null),
                            (this._loaderClass = null),
                            (this._dataSource = null),
                            (this._stashBuffer = null),
                            (this._stashUsed =
                              this._stashSize =
                              this._bufferSize =
                              this._stashByteStart =
                                0),
                            (this._currentRange = null),
                            (this._speedSampler = null),
                            (this._isEarlyEofReconnecting = !1),
                            (this._onDataArrival = null),
                            (this._onSeeked = null),
                            (this._onError = null),
                            (this._onComplete = null),
                            (this._onRedirect = null),
                            (this._onRecoveredEarlyEof = null),
                            (this._extraData = null);
                        }),
                        (e.prototype.isWorking = function () {
                          return (
                            this._loader &&
                            this._loader.isWorking() &&
                            !this._paused
                          );
                        }),
                        (e.prototype.isPaused = function () {
                          return this._paused;
                        }),
                        Object.defineProperty(e.prototype, "status", {
                          get: function () {
                            return this._loader.status;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "extraData", {
                          get: function () {
                            return this._extraData;
                          },
                          set: function (e) {
                            this._extraData = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onDataArrival", {
                          get: function () {
                            return this._onDataArrival;
                          },
                          set: function (e) {
                            this._onDataArrival = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onSeeked", {
                          get: function () {
                            return this._onSeeked;
                          },
                          set: function (e) {
                            this._onSeeked = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onError", {
                          get: function () {
                            return this._onError;
                          },
                          set: function (e) {
                            this._onError = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onComplete", {
                          get: function () {
                            return this._onComplete;
                          },
                          set: function (e) {
                            this._onComplete = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onRedirect", {
                          get: function () {
                            return this._onRedirect;
                          },
                          set: function (e) {
                            this._onRedirect = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(
                          e.prototype,
                          "onRecoveredEarlyEof",
                          {
                            get: function () {
                              return this._onRecoveredEarlyEof;
                            },
                            set: function (e) {
                              this._onRecoveredEarlyEof = e;
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(e.prototype, "currentURL", {
                          get: function () {
                            return this._dataSource.url;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "hasRedirect", {
                          get: function () {
                            return (
                              null != this._redirectedURL ||
                              null != this._dataSource.redirectedURL
                            );
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(
                          e.prototype,
                          "currentRedirectedURL",
                          {
                            get: function () {
                              return (
                                this._redirectedURL ||
                                this._dataSource.redirectedURL
                              );
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(e.prototype, "currentSpeed", {
                          get: function () {
                            return this._loaderClass === f
                              ? this._loader.currentSpeed
                              : this._speedSampler.lastSecondKBps;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "loaderType", {
                          get: function () {
                            return this._loader.type;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype._selectSeekHandler = function () {
                          var e = this._config;
                          if ("range" === e.seekType)
                            this._seekHandler = new v(
                              this._config.rangeLoadZeroStart
                            );
                          else if ("param" === e.seekType) {
                            var t = e.seekParamStart || "bstart",
                              i = e.seekParamEnd || "bend";
                            this._seekHandler = new _(t, i);
                          } else {
                            if ("custom" !== e.seekType)
                              throw new a.OC(
                                "Invalid seekType in config: " + e.seekType
                              );
                            if ("function" != typeof e.customSeekHandler)
                              throw new a.OC(
                                "Custom seekType specified in config but invalid customSeekHandler!"
                              );
                            this._seekHandler = new e.customSeekHandler();
                          }
                        }),
                        (e.prototype._selectLoader = function () {
                          if (null != this._config.customLoader)
                            this._loaderClass = this._config.customLoader;
                          else if (this._isWebSocketURL) this._loaderClass = g;
                          else if (c.isSupported()) this._loaderClass = c;
                          else if (u.isSupported()) this._loaderClass = u;
                          else {
                            if (!f.isSupported())
                              throw new a.OZ(
                                "Your browser doesn't support xhr with arraybuffer responseType!"
                              );
                            this._loaderClass = f;
                          }
                        }),
                        (e.prototype._createLoader = function () {
                          (this._loader = new this._loaderClass(
                            this._seekHandler,
                            this._config
                          )),
                            !1 === this._loader.needStashBuffer &&
                              (this._enableStash = !1),
                            (this._loader.onContentLengthKnown =
                              this._onContentLengthKnown.bind(this)),
                            (this._loader.onURLRedirect =
                              this._onURLRedirect.bind(this)),
                            (this._loader.onDataArrival =
                              this._onLoaderChunkArrival.bind(this)),
                            (this._loader.onComplete =
                              this._onLoaderComplete.bind(this)),
                            (this._loader.onError =
                              this._onLoaderError.bind(this));
                        }),
                        (e.prototype.open = function (e) {
                          (this._currentRange = { from: 0, to: -1 }),
                            e && (this._currentRange.from = e),
                            this._speedSampler.reset(),
                            e || (this._fullRequestFlag = !0),
                            this._loader.open(
                              this._dataSource,
                              Object.assign({}, this._currentRange)
                            );
                        }),
                        (e.prototype.abort = function () {
                          this._loader.abort(),
                            this._paused &&
                              ((this._paused = !1), (this._resumeFrom = 0));
                        }),
                        (e.prototype.pause = function () {
                          this.isWorking() &&
                            (this._loader.abort(),
                            0 !== this._stashUsed
                              ? ((this._resumeFrom = this._stashByteStart),
                                (this._currentRange.to =
                                  this._stashByteStart - 1))
                              : (this._resumeFrom = this._currentRange.to + 1),
                            (this._stashUsed = 0),
                            (this._stashByteStart = 0),
                            (this._paused = !0));
                        }),
                        (e.prototype.resume = function () {
                          if (this._paused) {
                            this._paused = !1;
                            var e = this._resumeFrom;
                            (this._resumeFrom = 0), this._internalSeek(e, !0);
                          }
                        }),
                        (e.prototype.seek = function (e) {
                          (this._paused = !1),
                            (this._stashUsed = 0),
                            (this._stashByteStart = 0),
                            this._internalSeek(e, !0);
                        }),
                        (e.prototype._internalSeek = function (e, t) {
                          this._loader.isWorking() && this._loader.abort(),
                            this._flushStashBuffer(t),
                            this._loader.destroy(),
                            (this._loader = null);
                          var i = { from: e, to: -1 };
                          (this._currentRange = { from: i.from, to: -1 }),
                            this._speedSampler.reset(),
                            (this._stashSize = this._stashInitialSize),
                            this._createLoader(),
                            this._loader.open(this._dataSource, i),
                            this._onSeeked && this._onSeeked();
                        }),
                        (e.prototype.updateUrl = function (e) {
                          if (!e || "string" != typeof e || 0 === e.length)
                            throw new a.OC("Url must be a non-empty string!");
                          this._dataSource.url = e;
                        }),
                        (e.prototype._expandBuffer = function (e) {
                          for (var t = this._stashSize; t + 1048576 < e; )
                            t *= 2;
                          if ((t += 1048576) !== this._bufferSize) {
                            var i = new ArrayBuffer(t);
                            if (this._stashUsed > 0) {
                              var s = new Uint8Array(
                                this._stashBuffer,
                                0,
                                this._stashUsed
                              );
                              new Uint8Array(i, 0, t).set(s, 0);
                            }
                            (this._stashBuffer = i), (this._bufferSize = t);
                          }
                        }),
                        (e.prototype._normalizeSpeed = function (e) {
                          var t = this._speedNormalizeList,
                            i = t.length - 1,
                            s = 0,
                            n = 0,
                            o = i;
                          if (e < t[0]) return t[0];
                          for (; n <= o; ) {
                            if (
                              (s = n + Math.floor((o - n) / 2)) === i ||
                              (e >= t[s] && e < t[s + 1])
                            )
                              return t[s];
                            t[s] < e ? (n = s + 1) : (o = s - 1);
                          }
                        }),
                        (e.prototype._adjustStashSize = function (e) {
                          var t = 0;
                          (t =
                            this._config.isLive || e < 512
                              ? e
                              : e >= 512 && e <= 1024
                              ? Math.floor(1.5 * e)
                              : 2 * e) > 8192 && (t = 8192);
                          var i = 1024 * t + 1048576;
                          this._bufferSize < i && this._expandBuffer(i),
                            (this._stashSize = 1024 * t);
                        }),
                        (e.prototype._dispatchChunks = function (e, t) {
                          return (
                            (this._currentRange.to = t + e.byteLength - 1),
                            this._onDataArrival(e, t)
                          );
                        }),
                        (e.prototype._onURLRedirect = function (e) {
                          (this._redirectedURL = e),
                            this._onRedirect && this._onRedirect(e);
                        }),
                        (e.prototype._onContentLengthKnown = function (e) {
                          e &&
                            this._fullRequestFlag &&
                            ((this._totalLength = e),
                            (this._fullRequestFlag = !1));
                        }),
                        (e.prototype._onLoaderChunkArrival = function (
                          e,
                          t,
                          i
                        ) {
                          if (!this._onDataArrival)
                            throw new a.rT(
                              "IOController: No existing consumer (onDataArrival) callback!"
                            );
                          if (!this._paused) {
                            this._isEarlyEofReconnecting &&
                              ((this._isEarlyEofReconnecting = !1),
                              this._onRecoveredEarlyEof &&
                                this._onRecoveredEarlyEof()),
                              this._speedSampler.addBytes(e.byteLength);
                            var s = this._speedSampler.lastSecondKBps;
                            if (0 !== s) {
                              var n = this._normalizeSpeed(s);
                              this._speedNormalized !== n &&
                                ((this._speedNormalized = n),
                                this._adjustStashSize(n));
                            }
                            if (this._enableStash)
                              if (
                                (0 === this._stashUsed &&
                                  0 === this._stashByteStart &&
                                  (this._stashByteStart = t),
                                this._stashUsed + e.byteLength <=
                                  this._stashSize)
                              )
                                (l = new Uint8Array(
                                  this._stashBuffer,
                                  0,
                                  this._stashSize
                                )).set(new Uint8Array(e), this._stashUsed),
                                  (this._stashUsed += e.byteLength);
                              else if (
                                ((l = new Uint8Array(
                                  this._stashBuffer,
                                  0,
                                  this._bufferSize
                                )),
                                this._stashUsed > 0)
                              ) {
                                var o = this._stashBuffer.slice(
                                  0,
                                  this._stashUsed
                                );
                                (h = this._dispatchChunks(
                                  o,
                                  this._stashByteStart
                                )) < o.byteLength
                                  ? h > 0 &&
                                    ((c = new Uint8Array(o, h)),
                                    l.set(c, 0),
                                    (this._stashUsed = c.byteLength),
                                    (this._stashByteStart += h))
                                  : ((this._stashUsed = 0),
                                    (this._stashByteStart += h)),
                                  this._stashUsed + e.byteLength >
                                    this._bufferSize &&
                                    (this._expandBuffer(
                                      this._stashUsed + e.byteLength
                                    ),
                                    (l = new Uint8Array(
                                      this._stashBuffer,
                                      0,
                                      this._bufferSize
                                    ))),
                                  l.set(new Uint8Array(e), this._stashUsed),
                                  (this._stashUsed += e.byteLength);
                              } else
                                (h = this._dispatchChunks(e, t)) <
                                  e.byteLength &&
                                  ((r = e.byteLength - h) > this._bufferSize &&
                                    (this._expandBuffer(r),
                                    (l = new Uint8Array(
                                      this._stashBuffer,
                                      0,
                                      this._bufferSize
                                    ))),
                                  l.set(new Uint8Array(e, h), 0),
                                  (this._stashUsed += r),
                                  (this._stashByteStart = t + h));
                            else if (0 === this._stashUsed) {
                              var r;
                              (h = this._dispatchChunks(e, t)) < e.byteLength &&
                                ((r = e.byteLength - h) > this._bufferSize &&
                                  this._expandBuffer(r),
                                (l = new Uint8Array(
                                  this._stashBuffer,
                                  0,
                                  this._bufferSize
                                )).set(new Uint8Array(e, h), 0),
                                (this._stashUsed += r),
                                (this._stashByteStart = t + h));
                            } else {
                              var l, h;
                              if (
                                (this._stashUsed + e.byteLength >
                                  this._bufferSize &&
                                  this._expandBuffer(
                                    this._stashUsed + e.byteLength
                                  ),
                                (l = new Uint8Array(
                                  this._stashBuffer,
                                  0,
                                  this._bufferSize
                                )).set(new Uint8Array(e), this._stashUsed),
                                (this._stashUsed += e.byteLength),
                                (h = this._dispatchChunks(
                                  this._stashBuffer.slice(0, this._stashUsed),
                                  this._stashByteStart
                                )) < this._stashUsed && h > 0)
                              ) {
                                var c = new Uint8Array(this._stashBuffer, h);
                                l.set(c, 0);
                              }
                              (this._stashUsed -= h),
                                (this._stashByteStart += h);
                            }
                          }
                        }),
                        (e.prototype._flushStashBuffer = function (e) {
                          if (this._stashUsed > 0) {
                            var t = this._stashBuffer.slice(0, this._stashUsed),
                              i = this._dispatchChunks(t, this._stashByteStart),
                              s = t.byteLength - i;
                            if (i < t.byteLength) {
                              if (!e) {
                                if (i > 0) {
                                  var o = new Uint8Array(
                                      this._stashBuffer,
                                      0,
                                      this._bufferSize
                                    ),
                                    r = new Uint8Array(t, i);
                                  o.set(r, 0),
                                    (this._stashUsed = r.byteLength),
                                    (this._stashByteStart += i);
                                }
                                return 0;
                              }
                              n.Z.w(
                                this.TAG,
                                s +
                                  " bytes unconsumed data remain when flush buffer, dropped"
                              );
                            }
                            return (
                              (this._stashUsed = 0),
                              (this._stashByteStart = 0),
                              s
                            );
                          }
                          return 0;
                        }),
                        (e.prototype._onLoaderComplete = function (e, t) {
                          this._flushStashBuffer(!0),
                            this._onComplete &&
                              this._onComplete(this._extraData);
                        }),
                        (e.prototype._onLoaderError = function (e, t) {
                          switch (
                            (n.Z.e(
                              this.TAG,
                              "Loader error, code = " +
                                t.code +
                                ", msg = " +
                                t.msg
                            ),
                            this._flushStashBuffer(!1),
                            this._isEarlyEofReconnecting &&
                              ((this._isEarlyEofReconnecting = !1),
                              (e = r.nm.UNRECOVERABLE_EARLY_EOF)),
                            e)
                          ) {
                            case r.nm.EARLY_EOF:
                              if (!this._config.isLive && this._totalLength) {
                                var i = this._currentRange.to + 1;
                                return void (
                                  i < this._totalLength &&
                                  (n.Z.w(
                                    this.TAG,
                                    "Connection lost, trying reconnect..."
                                  ),
                                  (this._isEarlyEofReconnecting = !0),
                                  this._internalSeek(i, !1))
                                );
                              }
                              e = r.nm.UNRECOVERABLE_EARLY_EOF;
                              break;
                            case r.nm.UNRECOVERABLE_EARLY_EOF:
                            case r.nm.CONNECTING_TIMEOUT:
                            case r.nm.HTTP_STATUS_CODE_INVALID:
                            case r.nm.EXCEPTION:
                          }
                          if (!this._onError)
                            throw new a.OZ("IOException: " + t.msg);
                          this._onError(e, t);
                        }),
                        e
                      );
                    })();
                },
                939: function (e, t, i) {
                  i.d(t, {
                    GM: function () {
                      return n;
                    },
                    nm: function () {
                      return o;
                    },
                    fp: function () {
                      return r;
                    },
                  });
                  var s = i(29),
                    n = {
                      kIdle: 0,
                      kConnecting: 1,
                      kBuffering: 2,
                      kError: 3,
                      kComplete: 4,
                    },
                    o = {
                      OK: "OK",
                      EXCEPTION: "Exception",
                      HTTP_STATUS_CODE_INVALID: "HttpStatusCodeInvalid",
                      CONNECTING_TIMEOUT: "ConnectingTimeout",
                      EARLY_EOF: "EarlyEof",
                      UNRECOVERABLE_EARLY_EOF: "UnrecoverableEarlyEof",
                    },
                    r = (function () {
                      function e(e) {
                        (this._type = e || "undefined"),
                          (this._status = n.kIdle),
                          (this._needStash = !1),
                          (this._onContentLengthKnown = null),
                          (this._onURLRedirect = null),
                          (this._onDataArrival = null),
                          (this._onError = null),
                          (this._onComplete = null);
                      }
                      return (
                        (e.prototype.destroy = function () {
                          (this._status = n.kIdle),
                            (this._onContentLengthKnown = null),
                            (this._onURLRedirect = null),
                            (this._onDataArrival = null),
                            (this._onError = null),
                            (this._onComplete = null);
                        }),
                        (e.prototype.isWorking = function () {
                          return (
                            this._status === n.kConnecting ||
                            this._status === n.kBuffering
                          );
                        }),
                        Object.defineProperty(e.prototype, "type", {
                          get: function () {
                            return this._type;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "status", {
                          get: function () {
                            return this._status;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "needStashBuffer", {
                          get: function () {
                            return this._needStash;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(
                          e.prototype,
                          "onContentLengthKnown",
                          {
                            get: function () {
                              return this._onContentLengthKnown;
                            },
                            set: function (e) {
                              this._onContentLengthKnown = e;
                            },
                            enumerable: !1,
                            configurable: !0,
                          }
                        ),
                        Object.defineProperty(e.prototype, "onURLRedirect", {
                          get: function () {
                            return this._onURLRedirect;
                          },
                          set: function (e) {
                            this._onURLRedirect = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onDataArrival", {
                          get: function () {
                            return this._onDataArrival;
                          },
                          set: function (e) {
                            this._onDataArrival = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onError", {
                          get: function () {
                            return this._onError;
                          },
                          set: function (e) {
                            this._onError = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "onComplete", {
                          get: function () {
                            return this._onComplete;
                          },
                          set: function (e) {
                            this._onComplete = e;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype.open = function (e, t) {
                          throw new s.do("Unimplemented abstract function!");
                        }),
                        (e.prototype.abort = function () {
                          throw new s.do("Unimplemented abstract function!");
                        }),
                        e
                      );
                    })();
                },
                538: function (e, t) {
                  var i = {};
                  !(function () {
                    var e = self.navigator.userAgent.toLowerCase(),
                      t =
                        /(edge)\/([\w.]+)/.exec(e) ||
                        /(opr)[\/]([\w.]+)/.exec(e) ||
                        /(chrome)[ \/]([\w.]+)/.exec(e) ||
                        /(iemobile)[\/]([\w.]+)/.exec(e) ||
                        /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
                          e
                        ) ||
                        /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(
                          e
                        ) ||
                        /(webkit)[ \/]([\w.]+)/.exec(e) ||
                        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e) ||
                        /(msie) ([\w.]+)/.exec(e) ||
                        (e.indexOf("trident") >= 0 &&
                          /(rv)(?::| )([\w.]+)/.exec(e)) ||
                        (e.indexOf("compatible") < 0 &&
                          /(firefox)[ \/]([\w.]+)/.exec(e)) ||
                        [],
                      s =
                        /(ipad)/.exec(e) ||
                        /(ipod)/.exec(e) ||
                        /(windows phone)/.exec(e) ||
                        /(iphone)/.exec(e) ||
                        /(kindle)/.exec(e) ||
                        /(android)/.exec(e) ||
                        /(windows)/.exec(e) ||
                        /(mac)/.exec(e) ||
                        /(linux)/.exec(e) ||
                        /(cros)/.exec(e) ||
                        [],
                      n = {
                        browser: t[5] || t[3] || t[1] || "",
                        version: t[2] || t[4] || "0",
                        majorVersion: t[4] || t[2] || "0",
                        platform: s[0] || "",
                      },
                      o = {};
                    if (n.browser) {
                      o[n.browser] = !0;
                      var r = n.majorVersion.split(".");
                      (o.version = {
                        major: parseInt(n.majorVersion, 10),
                        string: n.version,
                      }),
                        r.length > 1 && (o.version.minor = parseInt(r[1], 10)),
                        r.length > 2 && (o.version.build = parseInt(r[2], 10));
                    }
                    if (
                      (n.platform && (o[n.platform] = !0),
                      (o.chrome || o.opr || o.safari) && (o.webkit = !0),
                      o.rv || o.iemobile)
                    ) {
                      o.rv && delete o.rv;
                      var l = "msie";
                      (n.browser = l), (o.msie = !0);
                    }
                    if (o.edge) {
                      delete o.edge;
                      var a = "msedge";
                      (n.browser = a), (o.msedge = !0);
                    }
                    if (o.opr) {
                      var h = "opera";
                      (n.browser = h), (o.opera = !0);
                    }
                    if (o.safari && o.android) {
                      var c = "android";
                      (n.browser = c), (o.android = !0);
                    }
                    for (var d in ((o.name = n.browser),
                    (o.platform = n.platform),
                    i))
                      i.hasOwnProperty(d) && delete i[d];
                    Object.assign(i, o);
                  })(),
                    (t.Z = i);
                },
                29: function (e, t, i) {
                  i.d(t, {
                    OZ: function () {
                      return o;
                    },
                    rT: function () {
                      return r;
                    },
                    OC: function () {
                      return l;
                    },
                    do: function () {
                      return a;
                    },
                  });
                  var s,
                    n =
                      ((s = function (e, t) {
                        return (s =
                          Object.setPrototypeOf ||
                          ({ __proto__: [] } instanceof Array &&
                            function (e, t) {
                              e.__proto__ = t;
                            }) ||
                          function (e, t) {
                            for (var i in t)
                              Object.prototype.hasOwnProperty.call(t, i) &&
                                (e[i] = t[i]);
                          })(e, t);
                      }),
                      function (e, t) {
                        if ("function" != typeof t && null !== t)
                          throw new TypeError(
                            "Class extends value " +
                              String(t) +
                              " is not a constructor or null"
                          );
                        function i() {
                          this.constructor = e;
                        }
                        s(e, t),
                          (e.prototype =
                            null === t
                              ? Object.create(t)
                              : ((i.prototype = t.prototype), new i()));
                      }),
                    o = (function () {
                      function e(e) {
                        this._message = e;
                      }
                      return (
                        Object.defineProperty(e.prototype, "name", {
                          get: function () {
                            return "RuntimeException";
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e.prototype, "message", {
                          get: function () {
                            return this._message;
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.prototype.toString = function () {
                          return this.name + ": " + this.message;
                        }),
                        e
                      );
                    })(),
                    r = (function (e) {
                      function t(t) {
                        return e.call(this, t) || this;
                      }
                      return (
                        n(t, e),
                        Object.defineProperty(t.prototype, "name", {
                          get: function () {
                            return "IllegalStateException";
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        t
                      );
                    })(o),
                    l = (function (e) {
                      function t(t) {
                        return e.call(this, t) || this;
                      }
                      return (
                        n(t, e),
                        Object.defineProperty(t.prototype, "name", {
                          get: function () {
                            return "InvalidArgumentException";
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        t
                      );
                    })(o),
                    a = (function (e) {
                      function t(t) {
                        return e.call(this, t) || this;
                      }
                      return (
                        n(t, e),
                        Object.defineProperty(t.prototype, "name", {
                          get: function () {
                            return "NotImplementedException";
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        t
                      );
                    })(o);
                },
                300: function (e, t, i) {
                  var s = i(716),
                    n = i.n(s),
                    o = (function () {
                      function e() {}
                      return (
                        (e.e = function (t, i) {
                          (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
                          var s = "[" + t + "] > " + i;
                          e.ENABLE_CALLBACK &&
                            e.emitter.emit("log", "error", s),
                            e.ENABLE_ERROR &&
                              (console.error
                                ? console.error(s)
                                : console.warn
                                ? console.warn(s)
                                : console.log(s));
                        }),
                        (e.i = function (t, i) {
                          (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
                          var s = "[" + t + "] > " + i;
                          e.ENABLE_CALLBACK && e.emitter.emit("log", "info", s),
                            e.ENABLE_INFO &&
                              (console.info ? console.info(s) : console.log(s));
                        }),
                        (e.w = function (t, i) {
                          (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
                          var s = "[" + t + "] > " + i;
                          e.ENABLE_CALLBACK && e.emitter.emit("log", "warn", s),
                            e.ENABLE_WARN &&
                              (console.warn ? console.warn(s) : console.log(s));
                        }),
                        (e.d = function (t, i) {
                          (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
                          var s = "[" + t + "] > " + i;
                          e.ENABLE_CALLBACK &&
                            e.emitter.emit("log", "debug", s),
                            e.ENABLE_DEBUG &&
                              (console.debug
                                ? console.debug(s)
                                : console.log(s));
                        }),
                        (e.v = function (t, i) {
                          (t && !e.FORCE_GLOBAL_TAG) || (t = e.GLOBAL_TAG);
                          var s = "[" + t + "] > " + i;
                          e.ENABLE_CALLBACK &&
                            e.emitter.emit("log", "verbose", s),
                            e.ENABLE_VERBOSE && console.log(s);
                        }),
                        e
                      );
                    })();
                  (o.GLOBAL_TAG = "flv.js"),
                    (o.FORCE_GLOBAL_TAG = !1),
                    (o.ENABLE_ERROR = !0),
                    (o.ENABLE_INFO = !0),
                    (o.ENABLE_WARN = !0),
                    (o.ENABLE_DEBUG = !0),
                    (o.ENABLE_VERBOSE = !0),
                    (o.ENABLE_CALLBACK = !1),
                    (o.emitter = new (n())()),
                    (t.Z = o);
                },
                846: function (e, t, i) {
                  var s = i(716),
                    n = i.n(s),
                    o = i(300),
                    r = (function () {
                      function e() {}
                      return (
                        Object.defineProperty(e, "forceGlobalTag", {
                          get: function () {
                            return o.Z.FORCE_GLOBAL_TAG;
                          },
                          set: function (t) {
                            (o.Z.FORCE_GLOBAL_TAG = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "globalTag", {
                          get: function () {
                            return o.Z.GLOBAL_TAG;
                          },
                          set: function (t) {
                            (o.Z.GLOBAL_TAG = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableAll", {
                          get: function () {
                            return (
                              o.Z.ENABLE_VERBOSE &&
                              o.Z.ENABLE_DEBUG &&
                              o.Z.ENABLE_INFO &&
                              o.Z.ENABLE_WARN &&
                              o.Z.ENABLE_ERROR
                            );
                          },
                          set: function (t) {
                            (o.Z.ENABLE_VERBOSE = t),
                              (o.Z.ENABLE_DEBUG = t),
                              (o.Z.ENABLE_INFO = t),
                              (o.Z.ENABLE_WARN = t),
                              (o.Z.ENABLE_ERROR = t),
                              e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableDebug", {
                          get: function () {
                            return o.Z.ENABLE_DEBUG;
                          },
                          set: function (t) {
                            (o.Z.ENABLE_DEBUG = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableVerbose", {
                          get: function () {
                            return o.Z.ENABLE_VERBOSE;
                          },
                          set: function (t) {
                            (o.Z.ENABLE_VERBOSE = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableInfo", {
                          get: function () {
                            return o.Z.ENABLE_INFO;
                          },
                          set: function (t) {
                            (o.Z.ENABLE_INFO = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableWarn", {
                          get: function () {
                            return o.Z.ENABLE_WARN;
                          },
                          set: function (t) {
                            (o.Z.ENABLE_WARN = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        Object.defineProperty(e, "enableError", {
                          get: function () {
                            return o.Z.ENABLE_ERROR;
                          },
                          set: function (t) {
                            (o.Z.ENABLE_ERROR = t), e._notifyChange();
                          },
                          enumerable: !1,
                          configurable: !0,
                        }),
                        (e.getConfig = function () {
                          return {
                            globalTag: o.Z.GLOBAL_TAG,
                            forceGlobalTag: o.Z.FORCE_GLOBAL_TAG,
                            enableVerbose: o.Z.ENABLE_VERBOSE,
                            enableDebug: o.Z.ENABLE_DEBUG,
                            enableInfo: o.Z.ENABLE_INFO,
                            enableWarn: o.Z.ENABLE_WARN,
                            enableError: o.Z.ENABLE_ERROR,
                            enableCallback: o.Z.ENABLE_CALLBACK,
                          };
                        }),
                        (e.applyConfig = function (e) {
                          (o.Z.GLOBAL_TAG = e.globalTag),
                            (o.Z.FORCE_GLOBAL_TAG = e.forceGlobalTag),
                            (o.Z.ENABLE_VERBOSE = e.enableVerbose),
                            (o.Z.ENABLE_DEBUG = e.enableDebug),
                            (o.Z.ENABLE_INFO = e.enableInfo),
                            (o.Z.ENABLE_WARN = e.enableWarn),
                            (o.Z.ENABLE_ERROR = e.enableError),
                            (o.Z.ENABLE_CALLBACK = e.enableCallback);
                        }),
                        (e._notifyChange = function () {
                          var t = e.emitter;
                          if (t.listenerCount("change") > 0) {
                            var i = e.getConfig();
                            t.emit("change", i);
                          }
                        }),
                        (e.registerListener = function (t) {
                          e.emitter.addListener("change", t);
                        }),
                        (e.removeListener = function (t) {
                          e.emitter.removeListener("change", t);
                        }),
                        (e.addLogListener = function (t) {
                          o.Z.emitter.addListener("log", t),
                            o.Z.emitter.listenerCount("log") > 0 &&
                              ((o.Z.ENABLE_CALLBACK = !0), e._notifyChange());
                        }),
                        (e.removeLogListener = function (t) {
                          o.Z.emitter.removeListener("log", t),
                            0 === o.Z.emitter.listenerCount("log") &&
                              ((o.Z.ENABLE_CALLBACK = !1), e._notifyChange());
                        }),
                        e
                      );
                    })();
                  (r.emitter = new (n())()), (t.Z = r);
                },
                219: function (e, t, i) {
                  var s = (function () {
                    function e() {}
                    return (
                      (e.install = function () {
                        (Object.setPrototypeOf =
                          Object.setPrototypeOf ||
                          function (e, t) {
                            return (e.__proto__ = t), e;
                          }),
                          (Object.assign =
                            Object.assign ||
                            function (e) {
                              if (null == e)
                                throw new TypeError(
                                  "Cannot convert undefined or null to object"
                                );
                              for (
                                var t = Object(e), i = 1;
                                i < arguments.length;
                                i++
                              ) {
                                var s = arguments[i];
                                if (null != s)
                                  for (var n in s)
                                    s.hasOwnProperty(n) && (t[n] = s[n]);
                              }
                              return t;
                            }),
                          "function" != typeof self.Promise &&
                            i(264).polyfill();
                      }),
                      e
                    );
                  })();
                  s.install(), (t.Z = s);
                },
              },
              i = {};
            function s(e) {
              var n = i[e];
              if (void 0 !== n) return n.exports;
              var o = (i[e] = { exports: {} });
              return t[e].call(o.exports, o, o.exports, s), o.exports;
            }
            return (
              (s.m = t),
              (s.n = function (e) {
                var t =
                  e && e.__esModule
                    ? function () {
                        return e.default;
                      }
                    : function () {
                        return e;
                      };
                return s.d(t, { a: t }), t;
              }),
              (s.d = function (e, t) {
                for (var i in t)
                  s.o(t, i) &&
                    !s.o(e, i) &&
                    Object.defineProperty(e, i, { enumerable: !0, get: t[i] });
              }),
              (s.g = (function () {
                if ("object" == typeof globalThis) return globalThis;
                try {
                  return this || new Function("return this")();
                } catch (t) {
                  if ("object" == typeof window) return window;
                }
              })()),
              (s.o = function (e, t) {
                return Object.prototype.hasOwnProperty.call(e, t);
              }),
              s(324)
            );
          })();
        });
      }).call(this, i("f28c"), i("dd40")(e));
    },
    "6eef": function (e, t, i) {},
    7319: function (e, t, i) {
      "use strict";
      function s(e) {
        let t = e.getBoundingClientRect();
        return t.left;
      }
      function n(e) {
        let t = e.getBoundingClientRect();
        return t.bottom - e.offsetHeight;
      }
      function o(e) {
        let t = e.getBoundingClientRect();
        return { left: t.left, top: t.bottom - e.offsetHeight };
      }
      i.d(t, "a", function () {
        return s;
      }),
        i.d(t, "c", function () {
          return n;
        }),
        i.d(t, "b", function () {
          return o;
        });
    },
    "756c": function (e, t, i) {
      "use strict";
      var s = i("3727"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "774a": function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: e.$style.layout,
              staticStyle: { background: "#E8EAED", padding: "0px" },
            },
            [
              i(
                "div",
                {
                  ref: "top",
                  staticStyle: {
                    display: "flex",
                    "flex-flow": "column",
                    width: "100%",
                    height: "100%",
                    "border-top": "0",
                    border: "1px solid #AEBAC5",
                  },
                },
                [
                  i("div", { ref: "videos", class: e.$style.videos }),
                  i(
                    "div",
                    {
                      staticStyle: {
                        overflow: "unset",
                        display: "flex",
                        width: "100%",
                        padding: "5px",
                        "background-color": "#fff",
                      },
                    },
                    [
                      i(
                        "Button",
                        {
                          directives: [
                            {
                              name: "show",
                              rawName: "v-show",
                              value: 3 != e.model,
                              expression: "model!=3",
                            },
                          ],
                          staticStyle: {
                            "margin-right": "5px",
                            flex: "0 0 auto",
                          },
                          attrs: { borderColor: e.theme.border_color_light },
                          on: {
                            click: function (t) {
                              return e.closeAll();
                            },
                          },
                        },
                        [e._v("全部关闭")]
                      ),
                      i("InputSelect", {
                        directives: [
                          {
                            name: "show",
                            rawName: "v-show",
                            value: 3 != e.model,
                            expression: "model!=3",
                          },
                        ],
                        staticStyle: {
                          "margin-right": "5px",
                          flex: "0 0 auto",
                        },
                        attrs: {
                          showArrow: !0,
                          borderColor: e.theme.border_color_light,
                          options: [
                            { label: "单路回放", value: 1 },
                            { label: "多路回放", value: 2 },
                          ],
                        },
                        model: {
                          value: e.mode,
                          callback: function (t) {
                            e.mode = t;
                          },
                          expression: "mode",
                        },
                      }),
                      i("InputSelect", {
                        directives: [
                          {
                            name: "show",
                            rawName: "v-show",
                            value: 3 != e.model,
                            expression: "model!=3",
                          },
                        ],
                        staticStyle: {
                          "margin-right": "5px",
                          flex: "0 0 auto",
                        },
                        attrs: {
                          disabled: e.tools.loading || !e.fromTmn,
                          showArrow: !0,
                          borderColor: e.theme.border_color_light,
                          dropdownWidth: "120px",
                          maxListNum: 12,
                          options: [
                            { label: "快进1倍", value: 31 },
                            { label: "快进2倍", value: 32 },
                            { label: "快进4倍", value: 33 },
                            { label: "快进8倍", value: 34 },
                            { label: "快进16倍", value: 35 },
                            { label: "关键帧快退1倍", value: 41 },
                            { label: "关键帧快退2倍", value: 42 },
                            { label: "关键帧快退4倍", value: 43 },
                            { label: "关键帧快退8倍", value: 44 },
                            { label: "关键帧快退16倍", value: 45 },
                            { label: "关键帧播放", value: 6 },
                            { label: "正常回放", value: 0 },
                          ],
                        },
                        model: {
                          value: e.way_multiple,
                          callback: function (t) {
                            e.way_multiple = t;
                          },
                          expression: "way_multiple",
                        },
                      }),
                      i(
                        "div",
                        {
                          staticStyle: {
                            overflow: "unset",
                            border: "0px solid",
                            height: "32px",
                            flex: "1 1 auto",
                            width: "100%",
                            "margin-right": "5px",
                            position: "relative",
                          },
                          style: { borderColor: e.theme.border_color_light },
                        },
                        [
                          i("Slider", {
                            staticStyle: {
                              position: "absolute",
                              top: "5px",
                              left: "10px",
                              right: "10px",
                            },
                            attrs: {
                              max: e.seeker.max,
                              getTooltip: e._getSeekerTime,
                            },
                            on: {
                              change: e._seekTo,
                              dragstart: function (t) {
                                e.seeker.ing = !0;
                              },
                            },
                            model: {
                              value: e.seeker.value,
                              callback: function (t) {
                                e.$set(e.seeker, "value", t);
                              },
                              expression: "seeker.value",
                            },
                          }),
                          e.tools.playing && !e.tools.loading && e.fromTmn
                            ? e._e()
                            : i("div", { class: e.$style.disabled }),
                        ],
                        1
                      ),
                      i("InputSelect", {
                        staticStyle: {
                          "text-align": "center",
                          "margin-right": "5px",
                          flex: "0 0 auto",
                        },
                        attrs: {
                          showArrow: !0,
                          borderColor: e.theme.border_color_light,
                          listStyle: {
                            paddingRight: "10px",
                            textAlign: "right",
                          },
                          options: [
                            { label: "满画面", value: 0 },
                            { label: "2:1 显示", value: 2 },
                            { label: "16:9 显示", value: 16 / 9 },
                            { label: "4:3 显示", value: 4 / 3 },
                            { label: "1:1 显示", value: 1 },
                            { label: "3:4 显示", value: 0.75 },
                            { label: "9:16 显示", value: 9 / 16 },
                            { label: "1:2 显示", value: 0.5 },
                          ],
                        },
                        on: {
                          change: function (t) {
                            return e._onResize();
                          },
                        },
                        model: {
                          value: e.ratio,
                          callback: function (t) {
                            e.ratio = t;
                          },
                          expression: "ratio",
                        },
                      }),
                      3 != e.model && e.fromTmn && e.avh_dnl
                        ? i(
                            "Button",
                            {
                              staticStyle: {
                                "margin-right": "5px",
                                flex: "0 0 auto",
                              },
                              attrs: {
                                borderColor: e.theme.border_color_light,
                                padding: "0 7px",
                                icon: "el-icon-download",
                              },
                              on: {
                                click: function (t) {
                                  return e.$refs.grid.batchFtpClick();
                                },
                              },
                            },
                            [e._v("批量上传下载")]
                          )
                        : e._e(),
                      i(
                        "Button",
                        {
                          staticStyle: {
                            "margin-right": "5px",
                            flex: "0 0 auto",
                          },
                          attrs: {
                            borderColor: e.theme.border_color_light,
                            padding: "0 7px",
                            icon: "el-icon-download",
                          },
                          on: {
                            click: function (t) {
                              return e._downloadPlayer();
                            },
                          },
                        },
                        [e._v("播放器下载")]
                      ),
                      i("Button", {
                        staticStyle: { flex: "0 0 auto" },
                        attrs: {
                          borderColor: e.theme.border_color_light,
                          padding: "0 7px",
                          icon: "el-icon-full-screen",
                        },
                        on: {
                          click: function (t) {
                            return e._fullScreen();
                          },
                        },
                      }),
                    ],
                    1
                  ),
                ]
              ),
              i(
                "div",
                {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: 3 != e.model,
                      expression: "model!=3",
                    },
                  ],
                  ref: "bottom",
                  staticStyle: { width: "100%", position: "relative" },
                },
                [
                  i("SearchToolbar", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: 2 == e.model,
                        expression: "model==2",
                      },
                    ],
                    ref: "search",
                    on: {
                      queryResult: e._queryResult,
                      querying: function (t) {
                        return (e.querying = t);
                      },
                    },
                  }),
                  i("FileTimeChart", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: "time" == e.tab,
                        expression: "tab=='time'",
                      },
                    ],
                    ref: "chart",
                    class: e.$style.item,
                    staticStyle: {
                      border: "1px solid #AEBAC5",
                      background: "#fff",
                    },
                    style: { top: 1 == e.model ? "0px" : "43px" },
                    attrs: { tab: e.tab, chartPlay: e._chartPlay },
                  }),
                  i("PlaybackGrid", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: "file" == e.tab,
                        expression: "tab=='file'",
                      },
                    ],
                    ref: "grid",
                    class: [e.$style.grid, e.$style.item],
                    style: [
                      1 == e.model
                        ? { top: "0px", height: "100%" }
                        : { top: "43px", height: "calc(100% - 43px)" },
                    ],
                    attrs: {
                      avh_dnl: e.avh_dnl,
                      avh_del: e.avh_del,
                      avh_ftp: e.avh_ftp,
                      tooglePlay: e._tooglePlay,
                    },
                  }),
                  i("ButtonBar", {
                    staticStyle: {
                      position: "absolute",
                      bottom: "0px",
                      width: "35px",
                    },
                    style: { top: 1 == e.model ? "0px" : "43px" },
                    attrs: {
                      options: [
                        { label: "时间", value: "time" },
                        { label: "文件", value: "file" },
                      ],
                      vertical: "",
                      buttonStyle: { whiteSpace: "normal" },
                    },
                    model: {
                      value: e.tab,
                      callback: function (t) {
                        e.tab = t;
                      },
                      expression: "tab",
                    },
                  }),
                  e.querying
                    ? i("div", {
                        class: e.$style.waiting,
                        style: { top: 1 == e.model ? "0px" : "43px" },
                      })
                    : e._e(),
                ],
                1
              ),
              i("Split", {
                directives: [
                  {
                    name: "show",
                    rawName: "v-show",
                    value: 3 != e.model,
                    expression: "model!=3",
                  },
                ],
                attrs: {
                  topRef: "top",
                  topHeight: "65%",
                  bottomRef: "bottom",
                  minSide: "bottom",
                },
              }),
            ],
            1
          );
        },
        n = [],
        o = (i("6b54"), i("28a5"), i("3835")),
        r = (i("386d"), i("ac6a"), i("2b0e")),
        l = function () {
          var e = this,
            t = e.$createElement,
            s = e._self._c || t;
          return "h" == e.model
            ? s(
                "div",
                {
                  class: [
                    e.$style.horizontal,
                    e.dragging && e.$style.draggingH,
                  ],
                  style: { cursor: e.expand ? "w-resize" : "default" },
                  on: {
                    mouseenter: function (t) {
                      e.hover = !0;
                    },
                    mouseleave: function (t) {
                      e.hover = !1;
                    },
                    mousedown: function (t) {
                      e.expand && e.onDragStartH(t);
                    },
                  },
                },
                [
                  "left" == e.hideSide
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          top: "calc(50% - 40px)",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 0 : 180) + "deg)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: e.toogleL,
                        },
                      })
                    : e._e(),
                  "right" == e.hideSide
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          top: "calc(50% - 40px)",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 180 : 0) + "deg)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: e.toogleR,
                        },
                      })
                    : e._e(),
                  "both" == e.hideSide && e.expandR
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 0 : 180) + "deg)",
                          top: "calc(50% - " + (e.expand ? 80 : 40) + "px)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: function (t) {
                            (e.expandL = !e.expandL), e.toogleL();
                          },
                        },
                      })
                    : e._e(),
                  "both" == e.hideSide && e.expandL
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 180 : 0) + "deg)",
                          top: "calc(50% - " + (e.expand ? 0 : 40) + "px)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: function (t) {
                            (e.expandR = !e.expandR), e.toogleR();
                          },
                        },
                      })
                    : e._e(),
                  e.swapable && "both" != e.hideSide && e.hover && e.expand
                    ? s("Button", {
                        staticStyle: {
                          position: "fixed",
                          top: "calc(50% + 65px)",
                          "margin-left": "-6px",
                        },
                        style: { zIndex: e.theme.zindex() },
                        attrs: {
                          title: "左右布局对换",
                          borderColor: e.theme.border_color_dark,
                          icon: "el-icon-refresh",
                          padding: "0 2px",
                          height: 22,
                          radius: "11px",
                        },
                        on: {
                          mousedown: function (e) {
                            return (
                              e.stopPropagation(),
                              (function (e) {
                                return e.preventDefault();
                              })(e)
                            );
                          },
                          click: function (t) {
                            return e.swap();
                          },
                        },
                      })
                    : e._e(),
                ],
                1
              )
            : "v" == e.model
            ? s(
                "div",
                {
                  class: [e.$style.vertical, e.dragging && e.$style.draggingV],
                  style: { cursor: e.expand ? "n-resize" : "default" },
                  on: {
                    mousedown: function (t) {
                      e.expand && e.onDragStartV(t);
                    },
                  },
                },
                [
                  "bottom" == e.hideSide
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          left: "calc(50% - 5px)",
                          top: "-34px",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? -90 : 90) + "deg)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: e.toogleB,
                        },
                      })
                    : e._e(),
                  "top" == e.hideSide
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          left: "calc(50% - 5px)",
                          top: "-34px",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 90 : -90) + "deg)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: e.toogleT,
                        },
                      })
                    : e._e(),
                  "both" == e.hideSide && e.expandT
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          top: "-34px",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? -90 : 90) + "deg)",
                          left: "calc(50% - " + (e.expand ? 45 : 5) + "px)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: function (t) {
                            (e.expandB = !e.expandB), e.toogleB();
                          },
                        },
                      })
                    : e._e(),
                  "both" == e.hideSide && e.expandB
                    ? s("img", {
                        staticStyle: {
                          cursor: "pointer",
                          top: "-34px",
                          position: "absolute",
                        },
                        style: {
                          transform: "rotate(" + (e.expand ? 90 : -90) + "deg)",
                          left: "calc(50% - " + (e.expand ? -35 : 5) + "px)",
                        },
                        attrs: { src: i("0e09") },
                        on: {
                          mousedown: function (e) {
                            e.stopPropagation();
                          },
                          click: function (t) {
                            (e.expandT = !e.expandT), e.toogleT();
                          },
                        },
                      })
                    : e._e(),
                ]
              )
            : e._e();
        },
        a = [],
        h = i("7319"),
        c = i("2a7d"),
        d = i("a963"),
        u = {
          name: "Split",
          components: { Button: c["a"] },
          props: {
            leftRef: String,
            rightRef: String,
            leftWidth: { type: String, default: "20%" },
            minWidth: { type: Number, default: 20 },
            topRef: String,
            bottomRef: String,
            topHeight: { type: String, default: "65%" },
            minSide: { type: String, default: "left" },
            min: { type: Boolean, default: !1 },
            id: String,
            swapable: { type: Boolean, default: !1 },
            minstate: { type: Boolean, default: !1 },
          },
          data() {
            return {
              model: "",
              expand: !0,
              expandL: !0,
              expandR: !0,
              expandT: !0,
              expandB: !0,
              dragging: !1,
              hideSide: null,
              hover: !1,
            };
          },
          watch: {
            dragging: function (e) {
              document[e ? "addEventListener" : "removeEventListener"](
                "mousemove",
                "h" == this.model ? this.onDragingH : this.onDragingV
              ),
                document[e ? "addEventListener" : "removeEventListener"](
                  "mouseup",
                  "h" == this.model ? this.onDragEndH : this.onDragEndV
                );
            },
            expand: function (e) {
              this.minstate && this.id && d["a"].set(this.id + "_min", !e),
                this.$emit("expand", e);
            },
          },
          beforeDestroy() {
            this._onResize &&
              window.removeResizeListener(this._resize_el, this._onResize);
          },
          mounted() {
            (this.hideSide = this.minSide),
              (this.model = this.leftRef ? "h" : "v"),
              (this.offset = this.leftRef ? this.minWidth : 20),
              this.$nextTick(() => {
                "h" == this.model
                  ? ((this._leftEl = this.$parent.$refs[this.leftRef]),
                    (this._leftEl = this._leftEl.$el || this._leftEl),
                    (this._rightEl = this.$parent.$refs[this.rightRef]),
                    (this._rightEl = this._rightEl.$el || this._rightEl),
                    (this._leftEl.style.width = this.leftWidth),
                    (this._rightEl.style.width = `calc(100% - ${this.leftWidth} - 8px)`),
                    (this.$el.style.left = `calc(${this._leftEl.style.width} - 1px)`),
                    this.swapable &&
                      this.id &&
                      this.hideSide !=
                        d["a"].get(this.id + "_swap", this.hideSide) &&
                      this.swap(),
                    this.minWidth > 20 &&
                      ((this._resize_el = this[`_${this.hideSide}El`]),
                      (this._onResize = () => {
                        if (this._resize_el.clientWidth < this.minWidth) {
                          let e, t, i;
                          "left" == this.hideSide
                            ? ((e = this.minWidth + "px"),
                              (t = `calc(100% - ${this.minWidth + 8}px)`),
                              (i = `${this.minWidth - 1}px`))
                            : ((t = this.minWidth + "px"),
                              (e = `calc(100% - ${this.minWidth + 8}px)`),
                              (i = `calc(100% - ${this.minWidth + 9}px)`)),
                            (this._leftEl.style.width = e),
                            (this._rightEl.style.width = t),
                            (this.$el.style.left = i);
                        }
                      }),
                      this._onResize(),
                      window.addResizeListener(
                        this._resize_el,
                        this._onResize
                      )))
                  : ((this._topEl = this.$parent.$refs[this.topRef]),
                    (this._topEl = this._topEl.$el || this._topEl),
                    (this._bottomEl = this.$parent.$refs[this.bottomRef]),
                    (this._bottomEl = this._bottomEl.$el || this._bottomEl),
                    (this._topEl.style.height = this.topHeight),
                    (this._topEl.style["margin-bottom"] = "8px"),
                    (this._bottomEl.style.height = `calc(100% - ${this.topHeight} - 8px)`),
                    (this.$el.style.top = `calc(${this._topEl.style.height} - 1px)`)),
                  this.minstate && this.id
                    ? d["a"].get(this.id + "_min", this.min) && this.hide()
                    : this.min && this.hide();
              });
          },
          methods: {
            hide() {
              if ("both" != this.hideSide && this.expand)
                switch (this.hideSide) {
                  case "left":
                    return this.toogleL();
                  case "right":
                    return this.toogleR();
                  case "top":
                    return this.toogleT();
                  case "bottom":
                    return this.toogleB();
                }
            },
            toogleL() {
              (this.expand = !this.expand),
                this.expand
                  ? ((this._leftEl.style.display = this._leftDisplay),
                    (this._rightEl.style.width = this._rightWidth),
                    (this.$el.style.left = `calc(${this._leftEl.style.width} - 1px`))
                  : ((this._leftDisplay = this._leftEl.style.display),
                    (this._rightWidth = this._rightEl.style.width),
                    (this._leftEl.style.display = "none"),
                    (this._rightEl.style.width = "100%"),
                    (this.$el.style.left = "0px"));
            },
            toogleR() {
              (this.expand = !this.expand),
                this.expand
                  ? ((this._rightEl.style.display = this._rightDisplay),
                    (this._leftEl.style.width = this._leftWidth),
                    (this.$el.style.left = `calc(${this._leftEl.style.width} - 1px`))
                  : ((this._rightDisplay = this._rightEl.style.display),
                    (this._leftWidth = this._leftEl.style.width),
                    (this._rightEl.style.display = "none"),
                    (this._leftEl.style.width = "100%"),
                    (this.$el.style.left = "calc(100% - 10px)"));
            },
            toogleT() {
              (this.expand = !this.expand),
                this.expand
                  ? ((this._topEl.style.display = this._topDisplay),
                    (this._bottomEl.style.height = this._bottomHeight),
                    (this.$el.style.top = `calc(${this._topEl.style.height} - 1px`))
                  : ((this._topDisplay = this._topEl.style.display),
                    (this._bottomHeight = this._bottomEl.style.height),
                    (this._topEl.style.display = "none"),
                    (this._bottomEl.style.height = "100%"),
                    (this.$el.style.top = "0px"));
            },
            toogleB() {
              (this.expand = !this.expand),
                this.expand
                  ? ((this._bottomEl.style.display = this._bottomDisplay),
                    (this._topEl.style.height = this._topHeight),
                    (this.$el.style.top = `calc(${this._topEl.style.height} - 1px`))
                  : ((this._bottomDisplay = this._bottomEl.style.display),
                    (this._topHeight = this._topEl.style.height),
                    (this._bottomEl.style.display = "none"),
                    (this._topEl.style.height = "100%"),
                    (this.$el.style.top = "calc(100% - 10px)"));
            },
            onDragStartH(e) {
              (this.dragging = !0),
                (this._divX =
                  e.clientX -
                  Object(h["a"])(this.$el) +
                  Object(h["a"])(this.$el.parentNode)),
                (this._maxX = this.$el.parentNode.clientWidth - this.offset),
                e.preventDefault();
            },
            onDragingH(e) {
              this.$el.style.left =
                Math.min(
                  this._maxX,
                  Math.max(e.clientX - this._divX, this.offset)
                ) + "px";
            },
            onDragEndH(e) {
              this.dragging = !1;
              let t = Math.min(
                  this._maxX,
                  Math.max(e.clientX - this._divX, this.offset)
                ),
                i = (100 * t) / (this._maxX + this.offset);
              (this._leftEl.style.width = i + "%"),
                (this._rightEl.style.width = `calc(${100 - i}% - 8px`),
                (this.$el.style.left = `calc(${this._leftEl.style.width} - 1px`);
            },
            onDragStartV(e) {
              (this.dragging = !0),
                (this._divY =
                  e.clientY -
                  Object(h["c"])(this.$el) +
                  Object(h["c"])(this.$el.parentNode)),
                (this._maxY = this.$el.parentNode.clientHeight - this.offset),
                e.preventDefault();
            },
            onDragingV(e) {
              this.$el.style.top =
                Math.min(
                  this._maxY,
                  Math.max(e.clientY - this._divY, this.offset)
                ) + "px";
            },
            onDragEndV(e) {
              this.dragging = !1;
              let t = Math.min(
                  this._maxY,
                  Math.max(e.clientY - this._divY, this.offset)
                ),
                i = (100 * t) / (this._maxY + this.offset);
              (this._topEl.style.height = i + "%"),
                (this._bottomEl.style.height = `calc(${100 - i}% - 8px`),
                (this.$el.style.top = `calc(${this._topEl.style.height} - 1px`);
            },
            swap() {
              (this._leftEl.style.float = "right"),
                (this._rightEl.style.float = "left");
              let e = this._leftEl;
              (this._leftEl = this._rightEl),
                (this._rightEl = e),
                (this.$el.style.left = `calc(${this._leftEl.style.width} - 1px)`),
                (this.hideSide = "left" == this.hideSide ? "right" : "left"),
                this.id && d["a"].set(this.id + "_swap", this.hideSide);
            },
          },
        },
        p = u,
        f = i("4d00"),
        m = i("2877");
      function g(e) {
        this["$style"] = f["default"].locals || f["default"];
      }
      var v = Object(m["a"])(p, l, a, !1, g, null, null),
        _ = v.exports,
        b = i("3d56"),
        y = i("89fb"),
        x = i("f4c2"),
        w = i("a852"),
        S = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: e.$style.container,
              style: [
                e.tools.playing &&
                  !e.tools.loading && {
                    backgroundColor: "#000",
                    backgroundSize: "0,0",
                  },
              ],
              on: {
                mouseenter: function (t) {
                  e.hover = !0;
                },
                mouseleave: function (t) {
                  e.hover = !1;
                },
              },
            },
            [
              i(
                "div",
                {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: e.tools.playing,
                      expression: "tools.playing",
                    },
                  ],
                  class: e.$style.bar,
                  staticStyle: { top: "0" },
                },
                [
                  i(
                    "span",
                    {
                      staticStyle: {
                        "flex-grow": "1",
                        width: "1px",
                        "margin-left": "6px",
                      },
                    },
                    [e._v(e._s(e.title))]
                  ),
                  i("i", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: e.hover,
                        expression: "hover",
                      },
                    ],
                    staticClass: "el-icon-close",
                    staticStyle: {
                      "font-size": "18px",
                      cursor: "pointer",
                      position: "absolute",
                      top: "0",
                      right: "0",
                      padding: "4px",
                      "background-color": "#202020",
                    },
                    attrs: { title: "关闭播放" },
                    on: {
                      dblclick: function (t) {
                        return t.stopPropagation(), e.close();
                      },
                      click: function (t) {
                        return t.stopPropagation(), e.close();
                      },
                    },
                  }),
                ]
              ),
              i(
                "span",
                {
                  class: e.reverse && e.$style.reverse,
                  staticStyle: {
                    display: "block",
                    "margin-top": "26px",
                    width: "100%",
                    height: "calc(100% - 26px)",
                    position: "relative",
                  },
                  style: { rotate: e.rotate + "deg" },
                },
                [
                  i("video", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: e.tools.playing,
                        expression: "tools.playing",
                      },
                    ],
                    ref: "video",
                    staticStyle: { position: "absolute", "object-fit": "fill" },
                    attrs: { autoplay: "autoplay" },
                    domProps: { muted: !e.voice },
                  }),
                ]
              ),
              i("audio", {
                ref: "audio",
                staticStyle: { display: "none" },
                attrs: { autoplay: "autoplay" },
              }),
              i(
                "span",
                {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: e.tip,
                      expression: "tip",
                    },
                  ],
                  staticStyle: {
                    color: "#fff",
                    position: "absolute",
                    top: "calc(50% - 13px)",
                    "text-align": "center",
                    width: "100%",
                  },
                },
                [e._v(e._s(e.tip))]
              ),
              e.record.ing
                ? i(
                    "span",
                    {
                      staticStyle: {
                        position: "absolute",
                        right: "8px",
                        padding: "2px",
                        "background-color": "#000",
                        color: "#f00",
                        display: "inline-block",
                      },
                      style: { bottom: e.hover ? "34px" : "8px" },
                    },
                    [e._v(e._s(e.record.time))]
                  )
                : e._e(),
              e.tools.playing && !e.tools.loading
                ? i(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.hover,
                          expression: "hover",
                        },
                      ],
                      class: e.$style.bar,
                      staticStyle: {
                        bottom: "0",
                        "background-color": "#303030",
                      },
                    },
                    [
                      i("i", {
                        class: [
                          e.pause
                            ? "el-icon-video-play"
                            : "el-icon-video-pause",
                        ],
                        staticStyle: {
                          "font-size": "18px",
                          cursor: "pointer",
                          margin: "0 6px",
                        },
                        attrs: { title: e.pause ? "恢复播放" : "暂停播放" },
                        on: {
                          click: function (t) {
                            return e._tooglePause();
                          },
                        },
                      }),
                      i(
                        "span",
                        {
                          staticStyle: {
                            "flex-grow": "1",
                            width: "1px",
                            "text-align": "center",
                          },
                        },
                        [
                          i(
                            "span",
                            {
                              directives: [
                                {
                                  name: "show",
                                  rawName: "v-show",
                                  value: e.reply && !e.file.file,
                                  expression: "reply && !file.file",
                                },
                              ],
                            },
                            [
                              e._v(
                                e._s(parseInt(e.flow.kbs / 1024)) +
                                  "KB/S | " +
                                  e._s(parseInt(e.flow.total / 1024)) +
                                  "KB "
                              ),
                            ]
                          ),
                        ]
                      ),
                      i("i", {
                        class: [
                          e.voice ? "el-icon-sound-on" : "el-icon-sound-off",
                        ],
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          margin: "0 5px",
                        },
                        on: {
                          click: function (t) {
                            return e._toogleVoice();
                          },
                        },
                      }),
                      i("i", {
                        staticClass: "el-icon-camera",
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          "margin-right": "5px",
                        },
                        attrs: { title: "视频截图" },
                        on: {
                          click: function (t) {
                            return e.snapshot();
                          },
                        },
                      }),
                      e.record.show
                        ? i("i", {
                            staticClass: "el-icon-video-camera",
                            staticStyle: {
                              "font-size": "16px",
                              cursor: "pointer",
                              "margin-right": "5px",
                            },
                            attrs: {
                              title: e.record.ing ? "停止录像" : "开始录像",
                            },
                            on: {
                              click: function (t) {
                                return e.toogleRecord();
                              },
                            },
                          })
                        : e._e(),
                      i("i", {
                        staticClass: "el-icon-refresh",
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          "margin-right": "5px",
                        },
                        attrs: { title: "镜像反转" },
                        on: {
                          click: function (t) {
                            e.reverse = !e.reverse;
                          },
                        },
                      }),
                      i("i", {
                        staticClass: "el-icon-refresh-right",
                        staticStyle: {
                          "font-size": "16px",
                          cursor: "pointer",
                          "margin-right": "5px",
                        },
                        attrs: { title: "旋转画面" },
                        on: {
                          click: function (t) {
                            e.rotate = (e.rotate + 180) % 360;
                          },
                        },
                      }),
                    ]
                  )
                : e._e(),
              i("i", {
                directives: [
                  {
                    name: "show",
                    rawName: "v-show",
                    value: e.tools.loading,
                    expression: "tools.loading",
                  },
                ],
                staticClass: "el-icon-loading",
                staticStyle: {
                  color: "#ddd",
                  "font-size": "40px",
                  position: "absolute",
                  left: "calc(50% - 20px)",
                  top: "calc(50% - 20px)",
                },
              }),
              e.border ? i("div", { class: e.$style.border_top }) : e._e(),
              e.border ? i("div", { class: e.$style.border_bottom }) : e._e(),
              e.border ? i("div", { class: e.$style.border_left }) : e._e(),
              e.border ? i("div", { class: e.$style.border_right }) : e._e(),
            ]
          );
        },
        E = [],
        k = (i("a481"), i("d0ee")),
        C = i("eb5b"),
        T = {
          props: {
            uuid: String,
            user_pwd: String,
            onClose: Function,
            onVoiceOpen: Function,
            getSocket: Function,
          },
          data() {
            return {
              hover: !1,
              border: !1,
              file: null,
              stime: null,
              title: null,
              reply: !1,
              voice: !1,
              pause: !1,
              record: {
                show: !1,
                ing: !1,
                time: null,
                second: 0,
                interval: null,
              },
              tools: { playing: !1, loading: !1 },
              seeker: { max: 0, value: 0, ing: !1 },
              flow: { total: 0, kbs: 0 },
              tip: null,
              rotate: 0,
              reverse: !1,
            };
          },
          watch: {
            voice: function (e) {
              this._audio && (this._audio.muted = !e);
            },
          },
          mounted() {
            this._date = new Date();
          },
          methods: {
            play(e, t, i, s) {
              this.tools.playing && this.close(),
                this._timer &&
                  (clearInterval(this._timer), (this._timer = null)),
                this._owner._cfg.onBeforePlay &&
                  this._owner._cfg.onBeforePlay({
                    sim: e.sim,
                    chn: e.channel,
                    stime: t,
                    etime: e.etime,
                  }),
                (this.file = e),
                (this.file.play = !0),
                (this.stime = t),
                (this._stime = Object(k["g"])(t).getTime()),
                (this.title =
                  e.plate +
                  " - " +
                  e.chnName +
                  " [" +
                  t +
                  " -> " +
                  e.etime +
                  "]"),
                (this.tools.playing = this.tools.loading = !0),
                (this.reply = !1),
                (this.tip = null),
                (this.flow.total = this.flow.kbs = 0),
                (this.seeker.max = Object(k["b"])(t, e.etime)),
                (this.seeker.value = 0),
                (this.record.show = !e.file),
                this.$nextTick(() => {
                  if (e.file) {
                    let t = e.fileName.split(/\*|\//)[0],
                      i =
                        t.indexOf("M2") > 0 ||
                        t.indexOf("M3") > 0 ||
                        t.indexOf("M4") > 0;
                    i && (this.voice = !0),
                      this.flvjsplay(
                        "/his_srv_play/" + e.carId + "/" + e.fileName,
                        !1,
                        i
                      );
                  } else {
                    let n =
                      "/his_tmn_play/" +
                      [
                        this._owner._sessionId,
                        this.user_pwd,
                        this.uuid,
                        e.carId,
                        e.channel,
                        e.avType,
                        e.streamType,
                        e.storeType,
                        i,
                        s,
                        this.YYMMDDJJNNSS(t),
                        e.endTime,
                      ].join("/");
                    this.flvjsplay(n, !0);
                  }
                  this.$emit("play", this);
                });
            },
            way_multiple(e, t) {
              this.tools.playing &&
                this.getSocket().send({
                  cmd: "his_tmn_ctr",
                  uuid: this.uuid,
                  carId: this.file.carId,
                  channel: this.file.channel,
                  ctr: e,
                  multiple: t,
                  seek: this.YYMMDDJJNNSS(this.stime),
                });
            },
            flvjsplay(e, t) {
              let i =
                  arguments.length > 2 &&
                  void 0 !== arguments[2] &&
                  arguments[2],
                s = this._owner._videoUrl + e;
              (this._player = flvjs.createPlayer(
                {
                  type: "flv",
                  isLive: !0,
                  hasAudio: !0,
                  hasVideo: !i,
                  cors: !0,
                  url: s,
                },
                {
                  enableStashBuffer: !1,
                  stashInitialSize: 128,
                  fixAudioTimestampGap: !1,
                }
              )),
                this._player.attachMediaElement(this.$refs.video),
                this._player.load(),
                this._player.play(),
                this._player.on(flvjs.Events.METADATA_ARRIVED, () => {
                  (this.tools.loading = !1),
                    (this.reply = !0),
                    t && this.flvjsaudio();
                  let e = this.seeker.value;
                  !this._timer &&
                    (this._timer = setInterval(
                      () =>
                        !this.pause &&
                        !this.seeker.ing &&
                        (this.seeker.value = parseInt(
                          e + this._player.currentTime
                        )),
                      1e3
                    ));
                });
            },
            flvjsaudio() {
              let e = this._owner._videoUrl + "/his_tmn_audio/" + this.uuid;
              (this._audio = flvjs.createPlayer(
                {
                  type: "flv",
                  isLive: !0,
                  hasAudio: !0,
                  hasVideo: !1,
                  cors: !0,
                  url: e,
                },
                { enableStashBuffer: !1, fixAudioTimestampGap: !1 }
              )),
                this._audio.attachMediaElement(this.$refs.audio),
                this._audio.load(),
                this._audio.play(),
                (this._audio.muted = !this.voice);
            },
            seekTo(e, t, i, s) {
              this._timer && (clearInterval(this._timer), (this._timer = null)),
                !this.file.file &&
                  this.getSocket().send({
                    cmd: "his_tmn_ctr",
                    uuid: this.uuid,
                    carId: this.file.carId,
                    channel: this.file.channel,
                    ctr: 2,
                    multiple: 0,
                    seek: this.YYMMDDJJNNSS(this.stime),
                  }),
                this._player && (this._player.destroy(), (this._player = null)),
                this._audio && (this._audio.destroy(), (this._audio = null)),
                (this.seeker.ing = !1),
                (this.seeker.value = Object(k["b"])(this.stime, e)),
                (this.tools.loading = !0),
                (this.reply = !1),
                (this.flow.total = this.flow.kbs = 0),
                (this.tip = null),
                (this.uuid = t);
              let n =
                "/his_tmn_play/" +
                [
                  this._owner._sessionId,
                  this.user_pwd,
                  this.uuid,
                  this.file.carId,
                  this.file.channel,
                  this.file.avType,
                  this.file.streamType,
                  this.file.storeType,
                  i,
                  s,
                  this.YYMMDDJJNNSS(e),
                  this.file.endTime,
                ].join("/");
              this.flvjsplay(n);
            },
            YYMMDDJJNNSS(e) {
              return e
                .substr(2)
                .split(/[-| |:]/)
                .join("");
            },
            getSeekerTime(e) {
              return this._date
                ? (this._date.setTime(this._stime + 1e3 * e),
                  Object(k["c"])(this._date, "YYYY-MM-DD HH:NN:SS"))
                : e;
            },
            on_his_tmn_play(e) {
              if (e.uuid == this.uuid && ((this.reply = !0), 0 !== e.ret)) {
                this.tools.loading = !1;
                let t = this.file.chnName + " " + Object(C["a"])(e.ret);
                this._clear(), (this.tip = t);
              }
            },
            on_play_flow(e) {
              e.uuid == this.uuid &&
                ((this.flow.kbs = e.flow - this.flow.total),
                (this.flow.total = e.flow),
                e.flow > 0 && (this.reply = !0));
            },
            _tooglePause() {
              (this.pause = !this.pause),
                this.pause ? this.$refs.video.pause() : this.$refs.video.play();
            },
            _toogleVoice() {
              (this.voice = !this.voice), this.voice && this.onVoiceOpen(this);
            },
            snapshot() {
              this._player.snapshot(this.file.plate + "-" + this.file.chnName),
                this.pause && this._player.pause();
            },
            toogleRecord() {
              if (this.record.ing) {
                (this.record.ing = !1),
                  this.record.interval &&
                    (clearInterval(this.record.interval),
                    (this.record.interval = null));
                let e = (t) => {
                  let i = t.downloadPort;
                  this.getSocket().removeListener("cfg", e);
                  let s =
                    ("https:" == location.protocol ? "https:" : "http:") +
                    "//" +
                    this._owner._cfg.ip +
                    ":" +
                    i +
                    "/download/92&" +
                    this.uuid +
                    "/" +
                    encodeURIComponent(this.file.plate) +
                    "_" +
                    this.file.chnName +
                    "(" +
                    this.record.stime.replace(" ", "_") +
                    ")(" +
                    this.record.second +
                    ").flv";
                  window.open(s);
                };
                this.getSocket().addListener("cfg", e),
                  this.getSocket().send({ cmd: "cfg" });
              } else
                this.getSocket().send({ cmd: "record_start", uuid: this.uuid });
            },
            on_record_start() {
              (this.record.second = 0),
                (this.record.time = "00:00:00"),
                (this.record.ing = !0),
                (this.record.stime = this.getSeekerTime(this.seeker.value)),
                (this.record.interval = setInterval(() => {
                  this.pause ||
                    ((this.record.second += 1),
                    (this.record.time = Object(k["i"])(this.record.second)));
                }, 1e3));
            },
            close() {
              if (!this.tools.playing) return !1;
              (this.file.play = !1),
                !this.file.file &&
                  this.getSocket().send({
                    cmd: "his_tmn_ctr",
                    uuid: this.uuid,
                    carId: this.file.carId,
                    channel: this.file.channel,
                    ctr: 2,
                    multiple: 0,
                    seek: this.YYMMDDJJNNSS(this.stime),
                  }),
                this._player && (this._player.destroy(), (this._player = null)),
                this._audio && (this._audio.destroy(), (this._audio = null)),
                this._owner._cfg.onPlayClose &&
                  this._owner._cfg.onPlayClose({
                    sim: this.file.sim,
                    chn: this.file.channel,
                    stime: this.stime,
                    etime: this.file.etime,
                  }),
                this._clear(),
                this.onClose(this);
            },
            _clear() {
              this._timer && (clearInterval(this._timer), (this._timer = null)),
                this.file && ((this.file.play = !1), (this.file = null)),
                (this.tools.playing = this.tools.loading = !1),
                (this.tip = null),
                (this.pause = !1),
                (this.voice = !1),
                (this.flow.total = this.flow.kbs = 0),
                (this.seeker = { max: 0, value: 0, ing: !1 }),
                (this.rotate = 0),
                (this.reverse = !1),
                this.record.ing &&
                  (clearInterval(this.record.interval),
                  (this.record.ing = !1),
                  (this.record.interval = null)),
                (this.record.show = !1);
            },
            resize(e, t, i, s) {
              this.$refs.video &&
                (this.$refs.video.setAttribute("width", e + "px"),
                this.$refs.video.setAttribute("height", t + "px"),
                (this.$refs.video.style.left = i),
                (this.$refs.video.style.top = s),
                this._player && this._player.onResize());
            },
          },
        },
        O = T,
        $ = i("cf59");
      function R(e) {
        this["$style"] = $["default"].locals || $["default"];
      }
      var A = Object(m["a"])(O, S, E, !1, R, null, null),
        L = A.exports,
        D = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              staticStyle: {
                width: "100%",
                border: "1px solid #AEBAC5",
                background: "#E8EAED",
                padding: "5px",
                position: "relative",
                "white-space": "nowrap",
              },
            },
            [
              e.plate
                ? i(
                    "div",
                    {
                      staticStyle: {
                        "vertical-align": "middle",
                        "font-size": "15px",
                        "font-weight": "bold",
                        color: "#2C78BF",
                        "line-height": "30px",
                        height: "32px",
                        border: "1px solid #D6D6D6",
                        display: "inline-block",
                        padding: "0 5px",
                        background: "#fff",
                      },
                    },
                    [e._v(" " + e._s(e.plate) + " ")]
                  )
                : e._e(),
              i("InputDateTime", {
                key: "a",
                staticStyle: {
                  "margin-left": "5px",
                  "vertical-align": "middle",
                },
                attrs: { type: "YMDHN" },
                model: {
                  value: e.stime,
                  callback: function (t) {
                    e.stime = t;
                  },
                  expression: "stime",
                },
              }),
              i("InputDateTime", {
                key: "b",
                staticStyle: {
                  "margin-left": "-1px",
                  "vertical-align": "middle",
                },
                attrs: { type: "YMDHN" },
                model: {
                  value: e.etime,
                  callback: function (t) {
                    e.etime = t;
                  },
                  expression: "etime",
                },
              }),
              i("InputSelect", {
                key: "c",
                staticStyle: {
                  "margin-left": "5px",
                  "vertical-align": "middle",
                },
                attrs: { options: e.chnlist },
                model: {
                  value: e.chn,
                  callback: function (t) {
                    e.chn = t;
                  },
                  expression: "chn",
                },
              }),
              i("InputSelect", {
                key: "d",
                staticStyle: {
                  "margin-left": "5px",
                  "vertical-align": "middle",
                },
                attrs: {
                  options: [
                    { label: "设备", value: 0 },
                    { label: "服务器", value: 1 },
                  ],
                },
                model: {
                  value: e.from,
                  callback: function (t) {
                    e.from = t;
                  },
                  expression: "from",
                },
              }),
              0 == e.from
                ? i("InputSelect", {
                    key: "e",
                    staticStyle: {
                      "margin-left": "5px",
                      "vertical-align": "middle",
                    },
                    attrs: {
                      options: [
                        { label: "音视频", value: 0 },
                        { label: "音频", value: 1 },
                        { label: "视频", value: 2 },
                        { label: "视频或音视频", value: 3 },
                      ],
                    },
                    model: {
                      value: e.avtype,
                      callback: function (t) {
                        e.avtype = t;
                      },
                      expression: "avtype",
                    },
                  })
                : e._e(),
              0 == e.from
                ? i("InputSelect", {
                    key: "f",
                    staticStyle: {
                      "margin-left": "5px",
                      "vertical-align": "middle",
                    },
                    attrs: {
                      options: [
                        { label: "所有码流", value: 0 },
                        { label: "主码流", value: 1 },
                        { label: "子码流", value: 2 },
                      ],
                    },
                    model: {
                      value: e.stream,
                      callback: function (t) {
                        e.stream = t;
                      },
                      expression: "stream",
                    },
                  })
                : e._e(),
              0 == e.from
                ? i("InputSelect", {
                    key: "g",
                    staticStyle: {
                      "margin-left": "5px",
                      "vertical-align": "middle",
                    },
                    attrs: {
                      options: [
                        { label: "所有存储器", value: 0 },
                        { label: "主存储器", value: 1 },
                        { label: "灾备存储器", value: 2 },
                      ],
                    },
                    model: {
                      value: e.storage,
                      callback: function (t) {
                        e.storage = t;
                      },
                      expression: "storage",
                    },
                  })
                : e._e(),
              1 == e.from
                ? i("InputSelect", {
                    key: "h",
                    staticStyle: {
                      "margin-left": "5px",
                      "vertical-align": "middle",
                    },
                    attrs: {
                      options: [
                        { label: "所有类型", value: "" },
                        { label: "FTP上传", value: "FTP" },
                        { label: "实时调阅", value: "M0" },
                        { label: "历史调阅", value: "M1" },
                      ],
                    },
                    model: {
                      value: e.type,
                      callback: function (t) {
                        e.type = t;
                      },
                      expression: "type",
                    },
                  })
                : e._e(),
              i(
                "Button",
                {
                  staticStyle: {
                    "margin-left": "5px",
                    "vertical-align": "middle",
                  },
                  attrs: { icon: "el-icon-search", type: "primary" },
                  on: {
                    click: function (t) {
                      return e.toogleQuery();
                    },
                  },
                },
                [e._v(e._s(e.querying ? "取消" : "查询"))]
              ),
            ],
            1
          );
        },
        I = [],
        M =
          (i("55dd"),
          function () {
            var e = this,
              t = e.$createElement,
              i = e._self._c || t;
            return i(
              "div",
              {
                class: [e.$style.container, e.border && e.$style.border],
                style: e.containerStyle,
                attrs: { tabindex: "0" },
                on: {
                  focus: function (t) {
                    e.focused = !0;
                  },
                  blur: function (t) {
                    e.focused = !1;
                  },
                },
              },
              [
                e.label
                  ? i(
                      "span",
                      {
                        class: e.$style.label,
                        style: e.labelStyle,
                        attrs: { "is-label": "" },
                      },
                      [e._v(e._s(e.label))]
                    )
                  : e._e(),
                e.required
                  ? i("span", {
                      class: [e.$style.required, "el-icon-star-on"],
                      style: { backgroundColor: e.theme.bg_color },
                    })
                  : e._e(),
                e.unit
                  ? i("span", { class: e.$style.unit }, [e._v(e._s(e.unit))])
                  : e._e(),
                i(
                  "div",
                  {
                    class: e.$style.radioGroup,
                    style: { display: e.vertical ? "inline-block" : "flex" },
                  },
                  e._l(e.options, function (t) {
                    return i(
                      "label",
                      {
                        key: t[e.valueField],
                        class: [
                          e.$style.radioItem,
                          e.isChecked(t)
                            ? e.$style.checked
                            : e.$style.unchecked,
                        ],
                        style: [
                          {
                            color: e.isChecked(t) ? e.theme.menubar_color : "",
                          },
                          e.radioLabelStyle,
                        ],
                      },
                      [
                        i("input", {
                          staticStyle: { display: "none" },
                          attrs: {
                            type: "radio",
                            disabled: e.disabled,
                            name: e.groupName,
                          },
                          domProps: {
                            value: t[e.valueField],
                            checked: e.isChecked(t),
                          },
                          on: {
                            change: function (i) {
                              return e.handleChange(i, t);
                            },
                          },
                        }),
                        i("span", { staticStyle: { "margin-left": "18px" } }, [
                          e._v(e._s(t[e.labelField])),
                        ]),
                      ]
                    );
                  }),
                  0
                ),
                e._t("default"),
                e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
              ],
              2
            );
          }),
        P = [],
        N = {
          name: "InputRadio",
          props: {
            label: String,
            value: [String, Number, Boolean],
            options: Array,
            labelField: { type: String, default: "label" },
            valueField: { type: String, default: "value" },
            unit: String,
            required: Boolean,
            disabled: Boolean,
            border: { type: Boolean, default: !0 },
            vertical: { type: Boolean, default: !1 },
            height: { type: Number, default: $_theme.inputHeight },
            labelMinWidth: { type: Number, default: 10 },
          },
          data() {
            return { groupName: window.$_uuid("RadioGroup"), focused: !1 };
          },
          methods: {
            isChecked(e) {
              return (
                (e = e[this.valueField]),
                e === this.value || "" + e === "" + this.value
              );
            },
            handleChange(e, t) {
              if (this.disabled) return !1;
              let i = e.target.value;
              "number" == this.valueType
                ? (i = Number(i))
                : "boolean" == this.valueType && (i = "true" == i),
                this.value !== i &&
                  (this.$emit("input", i), this.$emit("change", i, t));
            },
          },
          computed: {
            valueType() {
              return this.options && this.options.length > 0
                ? typeof this.options[0][this.valueField]
                : null;
            },
            containerStyle() {
              return {
                height: this.height + "px",
                borderColor: this.focused
                  ? this.theme.color
                  : this.theme.border_color_light,
                zIndex: this.focused ? this.theme.zindex() : "",
              };
            },
            labelStyle() {
              return {
                minWidth: this.labelMinWidth + "px",
                borderRightColor: this.theme.border_color_light,
                backgroundColor: this.theme.bg_color,
              };
            },
            radioLabelStyle() {
              return { display: this.vertical ? "block" : "inline-block" };
            },
          },
        },
        B = N,
        F = i("756c");
      function V(e) {
        this["$style"] = F["default"].locals || F["default"];
      }
      var z = Object(m["a"])(B, M, P, !1, V, null, null),
        j = z.exports,
        H = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [e.$style.container, e.border && e.$style.border],
              style: e.containerStyle,
              attrs: { tabindex: "0" },
              on: {
                focus: function (t) {
                  e.focused = !0;
                },
                mouseenter: function (t) {
                  e.hover = !0;
                },
                mouseleave: function (t) {
                  e.hover = !1;
                },
              },
            },
            [
              e.label
                ? i(
                    "span",
                    {
                      class: e.$style.label,
                      style: [
                        {
                          borderRightColor: e.theme.border_color_light,
                          backgroundColor: e.theme.bg_color,
                        },
                        e.labelStyle,
                      ],
                      attrs: { "is-label": "" },
                      on: {
                        click: function (t) {
                          e.popup = null;
                        },
                      },
                    },
                    [e._v(e._s(e.label))]
                  )
                : e._e(),
              e.required
                ? i("span", {
                    class: [e.$style.required, "el-icon-star-on"],
                    style: { backgroundColor: e.theme.bg_color },
                    on: {
                      click: function (t) {
                        e.popup = null;
                      },
                    },
                  })
                : e._e(),
              i("span", {
                class:
                  e.needs.year || e.needs.month || e.needs.day
                    ? "el-icon-date"
                    : "el-icon-time",
                staticStyle: {
                  float: "right",
                  "font-size": "18px",
                  "padding-right": "5px",
                  cursor: "pointer",
                },
                on: {
                  click: function (t) {
                    return e.setShowDropdown("all");
                  },
                },
              }),
              e.clearable
                ? i("i", {
                    staticClass: "el-icon-close",
                    class: e.$style.clear,
                    style: {
                      lineHeight: e.lineHeight + "px",
                      visibility: e.value && e.hover ? "visible" : "hidden",
                    },
                    on: { click: e.clear },
                  })
                : e._e(),
              i(
                "div",
                {
                  ref: "datatime",
                  class: e.$style.datatime,
                  style: { minWidth: e.textMinWidth + "px" },
                  on: {
                    click: function (t) {
                      t.target == e.$refs.datatime && e.setShowDropdown("all");
                    },
                  },
                },
                [
                  e.placeholder && !e.value
                    ? i("span", { staticStyle: { color: "#B0B0B0" } }, [
                        e._v(" " + e._s(e.placeholder) + " "),
                      ])
                    : e._e(),
                  e.needs.year
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              (e.yearStep = 0), e.setShowDropdown("year");
                            },
                          },
                        },
                        [e._v("   " + e._s(e.values.year) + "   ")]
                      )
                    : e._e(),
                  e.needs.month && e.needs.year
                    ? i(
                        "span",
                        {
                          directives: [
                            {
                              name: "show",
                              rawName: "v-show",
                              value: e.values.month && e.values.year,
                              expression: "values.month && values.year",
                            },
                          ],
                        },
                        [e._v(" - ")]
                      )
                    : e._e(),
                  e.needs.month
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              return e.setShowDropdown("month");
                            },
                          },
                        },
                        [e._v("  " + e._s(e.fillzero(e.values.month)) + "  ")]
                      )
                    : e._e(),
                  e.needs.day && e.needs.month
                    ? i(
                        "span",
                        {
                          directives: [
                            {
                              name: "show",
                              rawName: "v-show",
                              value: e.values.day && e.values.month,
                              expression: "values.day && values.month",
                            },
                          ],
                        },
                        [e._v(" - ")]
                      )
                    : e._e(),
                  e.needs.day
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              return e.setShowDropdown("day");
                            },
                          },
                        },
                        [e._v("    " + e._s(e.fillzero(e.values.day)) + "    ")]
                      )
                    : e._e(),
                  e.needs.hour && e.needs.day
                    ? i("span", [e._v("    ")])
                    : e._e(),
                  e.needs.hour
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              return e.setShowDropdown("hour");
                            },
                          },
                        },
                        [e._v("   " + e._s(e.fillzero(e.values.hour)) + "   ")]
                      )
                    : e._e(),
                  e.needs.minute && e.needs.hour
                    ? i(
                        "span",
                        {
                          directives: [
                            {
                              name: "show",
                              rawName: "v-show",
                              value:
                                null !== e.values.minute &&
                                null !== e.values.hour,
                              expression:
                                "values.minute!==null && values.hour!==null",
                            },
                          ],
                        },
                        [e._v(" : ")]
                      )
                    : e._e(),
                  e.needs.minute
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              return e.setShowDropdown("minute");
                            },
                          },
                        },
                        [e._v(" " + e._s(e.fillzero(e.values.minute)) + " ")]
                      )
                    : e._e(),
                  e.needs.second && e.needs.minute
                    ? i(
                        "span",
                        {
                          directives: [
                            {
                              name: "show",
                              rawName: "v-show",
                              value:
                                null !== e.values.second &&
                                null !== e.values.minute,
                              expression:
                                "values.second!==null && values.minute!==null",
                            },
                          ],
                        },
                        [e._v(" : ")]
                      )
                    : e._e(),
                  e.needs.second
                    ? i(
                        "span",
                        {
                          class: e.$style.text,
                          on: {
                            click: function (t) {
                              return e.setShowDropdown("second");
                            },
                          },
                        },
                        [e._v(" " + e._s(e.fillzero(e.values.second)) + " ")]
                      )
                    : e._e(),
                ]
              ),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
              "year" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "150px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: { width: "calc(100% + 10px)" },
                          style: { backgroundColor: e.theme.color },
                        },
                        [e._v(" 年 ")]
                      ),
                      i("i", {
                        staticClass: "el-icon-arrow-left",
                        class: e.$style.arrow,
                        staticStyle: {
                          color: "#fff",
                          position: "absolute",
                          top: "2.5px",
                          left: "10px",
                          "font-size": "16px",
                        },
                        on: {
                          click: function (t) {
                            e.yearStep -= 9;
                          },
                        },
                      }),
                      i("i", {
                        staticClass: "el-icon-arrow-right",
                        class: e.$style.arrow,
                        staticStyle: {
                          color: "#fff",
                          position: "absolute",
                          top: "2.5px",
                          right: "10px",
                          "font-size": "16px",
                        },
                        on: {
                          click: function (t) {
                            e.yearStep += 9;
                          },
                        },
                      }),
                      e._l(9, function (t) {
                        return i(
                          "span",
                          {
                            key: t,
                            class: e.$style.drop_item,
                            staticStyle: { width: "33.3%" },
                            style: [
                              e.values.year + t - 5 + e.yearStep ==
                                e.nows[0] && {
                                fontWeight: "bold",
                                color: "#f00",
                              },
                              t + e.yearStep == 5 && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.setValueClick(
                                  e.values.year + t - 5 + e.yearStep,
                                  "year",
                                  "month"
                                );
                              },
                            },
                          },
                          [
                            e._v(
                              " \n        " +
                                e._s(e.values.year + t - 5 + e.yearStep) +
                                " \n      "
                            ),
                          ]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "month" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "150px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: { width: "calc(100% + 10px)" },
                          style: { backgroundColor: e.theme.color },
                        },
                        [e._v(" 月 ")]
                      ),
                      e._l(12, function (t) {
                        return i(
                          "span",
                          {
                            key: t,
                            class: e.$style.drop_item,
                            staticStyle: { width: "25%" },
                            style: [
                              t == e.nows[1] && {
                                fontWeight: "bold",
                                color: "#f00",
                              },
                              t == e.values.month && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.setValueClick(t, "month", "day");
                              },
                            },
                          },
                          [e._v(" \n        " + e._s(t) + " \n      ")]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "day" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "180px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: {
                            width: "calc(100% + 10px)",
                            padding: "0 5px",
                          },
                          style: { backgroundColor: e.theme.color },
                        },
                        e._l(
                          ["日", "一", "二", "三", "四", "五", "六"],
                          function (t) {
                            return i(
                              "span",
                              {
                                key: t,
                                staticStyle: {
                                  width: "14.28%",
                                  float: "left",
                                  margin: "0",
                                },
                              },
                              [e._v(" \n          " + e._s(t) + "\n        ")]
                            );
                          }
                        ),
                        0
                      ),
                      e._l(e.days, function (t, s) {
                        return i(
                          "span",
                          {
                            key: s,
                            class: e.$style.drop_item,
                            staticStyle: { width: "14.28%" },
                            style: [
                              t == e.nows[2] && {
                                fontWeight: "bold",
                                color: "#f00",
                              },
                              t == e.values.day && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                              !t && {
                                backgroundColor: "#fff",
                                cursor: "default",
                              },
                            ],
                            on: {
                              click: function (i) {
                                t && e.setValueClick(t, "day", "hour");
                              },
                            },
                          },
                          [e._v(" \n        " + e._s(t || " ") + " \n      ")]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "hour" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "166px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: { width: "calc(100% + 10px)" },
                          style: { backgroundColor: e.theme.color },
                        },
                        [e._v(" 时 ")]
                      ),
                      e._l(24, function (t) {
                        return i(
                          "span",
                          {
                            key: t,
                            class: e.$style.drop_item,
                            staticStyle: { width: "16.6%" },
                            style: [
                              t - 1 == e.nows[3] && {
                                fontWeight: "bold",
                                color: "#f00",
                              },
                              t - 1 == e.values.hour && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.setValueClick(t - 1, "hour", "minute");
                              },
                            },
                          },
                          [e._v(" \n        " + e._s(t - 1) + " \n      ")]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "minute" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "270px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: { width: "calc(100% + 10px)" },
                          style: { backgroundColor: e.theme.color },
                        },
                        [e._v(" 分 ")]
                      ),
                      e._l(60, function (t) {
                        return i(
                          "span",
                          {
                            key: t,
                            class: e.$style.drop_item,
                            staticStyle: { width: "10%" },
                            style: [
                              t - 1 == e.nows[4] && {
                                fontWeight: "bold",
                                color: "#f00",
                              },
                              t - 1 == e.values.minute && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.setValueClick(
                                  t - 1,
                                  "minute",
                                  "second"
                                );
                              },
                            },
                          },
                          [e._v(" \n        " + e._s(t - 1) + " \n      ")]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "second" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "270px" },
                      style: e.dropdownStyle,
                    },
                    [
                      i(
                        "span",
                        {
                          staticStyle: { width: "calc(100% + 10px)" },
                          style: { backgroundColor: e.theme.color },
                        },
                        [e._v(" 秒 ")]
                      ),
                      e._l(60, function (t) {
                        return i(
                          "span",
                          {
                            key: t,
                            class: e.$style.drop_item,
                            staticStyle: { width: "10%" },
                            style: [
                              t - 1 == e.values.second && {
                                backgroundColor: e.theme.color,
                                color: "#fff",
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.setValueClick(t - 1, "second");
                              },
                            },
                          },
                          [e._v(" \n        " + e._s(t - 1) + " \n      ")]
                        );
                      }),
                    ],
                    2
                  )
                : e._e(),
              "all" == e.popup
                ? i(
                    "div",
                    {
                      class: e.$style.dropdown,
                      staticStyle: { width: "200px", "padding-bottom": "0px" },
                      style: e.dropdownStyle,
                    },
                    [
                      e.needs.year
                        ? i(
                            "div",
                            {
                              staticStyle: {
                                display: "inline-block",
                                "text-align": "center",
                                "line-height": "30px",
                                "padding-bottom": "5px",
                              },
                              style: {
                                width: e.needs.month
                                  ? "calc(50% + 5px)"
                                  : "calc(100% + 10px)",
                              },
                            },
                            [
                              i("i", {
                                staticClass: "el-icon-arrow-left",
                                class: e.$style.arrow,
                                on: {
                                  click: function (t) {
                                    return e.allArrowClick("year", -1);
                                  },
                                },
                              }),
                              i(
                                "span",
                                {
                                  staticStyle: {
                                    position: "relative",
                                    top: "-2px",
                                    "font-size": "14px",
                                  },
                                },
                                [e._v(" " + e._s(e.values.year) + "年 ")]
                              ),
                              i("i", {
                                staticClass: "el-icon-arrow-right",
                                class: e.$style.arrow,
                                on: {
                                  click: function (t) {
                                    return e.allArrowClick("year", 1);
                                  },
                                },
                              }),
                            ]
                          )
                        : e._e(),
                      e.needs.month
                        ? i(
                            "div",
                            {
                              staticStyle: {
                                display: "inline-block",
                                "text-align": "center",
                                "line-height": "30px",
                                "padding-bottom": "5px",
                              },
                              style: {
                                width: e.needs.year
                                  ? "calc(50% + 5px)"
                                  : "calc(100% + 10px)",
                              },
                            },
                            [
                              i("i", {
                                staticClass: "el-icon-arrow-left",
                                class: e.$style.arrow,
                                on: {
                                  click: function (t) {
                                    return e.allArrowClick("month", -1);
                                  },
                                },
                              }),
                              i(
                                "span",
                                {
                                  staticStyle: {
                                    position: "relative",
                                    top: "-2px",
                                    "font-size": "14px",
                                  },
                                },
                                [e._v(" " + e._s(e.values.month) + "月 ")]
                              ),
                              i("i", {
                                staticClass: "el-icon-arrow-right",
                                class: e.$style.arrow,
                                on: {
                                  click: function (t) {
                                    return e.allArrowClick("month", 1);
                                  },
                                },
                              }),
                            ]
                          )
                        : e._e(),
                      e.needs.day
                        ? i(
                            "div",
                            {
                              staticStyle: {
                                display: "inline-block",
                                "padding-bottom": "5px",
                                float: "left",
                              },
                            },
                            [
                              i(
                                "span",
                                {
                                  staticStyle: {
                                    width: "calc(100% + 10px)",
                                    padding: "0 5px",
                                    "margin-left": "-5px",
                                    "margin-bottom": "5px",
                                    color: "#fff",
                                  },
                                  style: { backgroundColor: e.theme.color },
                                },
                                e._l(
                                  ["日", "一", "二", "三", "四", "五", "六"],
                                  function (t) {
                                    return i(
                                      "span",
                                      {
                                        key: t,
                                        staticStyle: {
                                          width: "14.28%",
                                          margin: "0",
                                          float: "left",
                                        },
                                      },
                                      [
                                        e._v(
                                          " \n            " +
                                            e._s(t) +
                                            "\n          "
                                        ),
                                      ]
                                    );
                                  }
                                ),
                                0
                              ),
                              e._l(e.days, function (t, s) {
                                return i(
                                  "span",
                                  {
                                    key: s,
                                    class: e.$style.drop_item,
                                    staticStyle: { width: "14.28%" },
                                    style: [
                                      t == e.nows[2] && {
                                        fontWeight: "bold",
                                        color: "#f00",
                                      },
                                      t == e.values.day && {
                                        backgroundColor: e.theme.color,
                                        color: "#fff",
                                      },
                                      !t && {
                                        backgroundColor: "#fff",
                                        cursor: "default",
                                      },
                                    ],
                                    on: {
                                      click: function (i) {
                                        t &&
                                          (e.values.day = t) &&
                                          e.onAllChg("day");
                                      },
                                    },
                                  },
                                  [
                                    e._v(
                                      " \n          " +
                                        e._s(t || " ") +
                                        " \n        "
                                    ),
                                  ]
                                );
                              }),
                            ],
                            2
                          )
                        : e._e(),
                      e.needs.hour || e.needs.minute || e.needs.second
                        ? i(
                            "div",
                            {
                              staticStyle: {
                                clear: "both",
                                padding: "0 10px 5px 10px",
                              },
                            },
                            [
                              e.needs.hour
                                ? i("Slider", {
                                    attrs: {
                                      showValueBar: !1,
                                      valueColor: e.theme.selected_color,
                                      tooltip: "{}时",
                                      min: 0,
                                      max: 23,
                                      signs: [0, 12, 23],
                                    },
                                    on: {
                                      change: function (t) {
                                        return e.onAllChg("hour");
                                      },
                                    },
                                    model: {
                                      value: e.values.hour,
                                      callback: function (t) {
                                        e.$set(e.values, "hour", t);
                                      },
                                      expression: "values.hour",
                                    },
                                  })
                                : e._e(),
                              e.needs.minute
                                ? i("Slider", {
                                    attrs: {
                                      showValueBar: !1,
                                      valueColor: e.theme.selected_color,
                                      tooltip: "{}分",
                                      min: 0,
                                      max: 59,
                                      signs: [0, 10, 20, 30, 40, 50, 59],
                                    },
                                    on: {
                                      change: function (t) {
                                        return e.onAllChg("minute");
                                      },
                                    },
                                    model: {
                                      value: e.values.minute,
                                      callback: function (t) {
                                        e.$set(e.values, "minute", t);
                                      },
                                      expression: "values.minute",
                                    },
                                  })
                                : e._e(),
                              e.needs.second
                                ? i("Slider", {
                                    attrs: {
                                      showValueBar: !1,
                                      valueColor: e.theme.selected_color,
                                      tooltip: "{}秒",
                                      min: 0,
                                      max: 59,
                                      signs: [0, 30, 59],
                                    },
                                    on: {
                                      change: function (t) {
                                        return e.onAllChg("second");
                                      },
                                    },
                                    model: {
                                      value: e.values.second,
                                      callback: function (t) {
                                        e.$set(e.values, "second", t);
                                      },
                                      expression: "values.second",
                                    },
                                  })
                                : e._e(),
                            ],
                            1
                          )
                        : e._e(),
                      e.needs.day || e.needs.hour
                        ? i(
                            "div",
                            {
                              staticStyle: {
                                clear: "both",
                                "line-height": "30px",
                                "text-align": "center",
                                "border-top-width": "1px",
                                "border-top-style": "solid",
                                "border-top-color": "#eee",
                              },
                            },
                            [
                              e.needs.day
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickDate(-1);
                                        },
                                      },
                                    },
                                    [e._v(" 昨天 ")]
                                  )
                                : e._e(),
                              e.needs.day
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickDate(0);
                                        },
                                      },
                                    },
                                    [e._v("  今天 ")]
                                  )
                                : e._e(),
                              e.needs.day
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickDate(1);
                                        },
                                      },
                                    },
                                    [e._v("  明天 ")]
                                  )
                                : e._e(),
                              e.needs.hour
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickTime("00");
                                        },
                                      },
                                    },
                                    [e._v("  00 ")]
                                  )
                                : e._e(),
                              e.needs.hour
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickTime("12");
                                        },
                                      },
                                    },
                                    [e._v("  12 ")]
                                  )
                                : e._e(),
                              e.needs.hour
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickTime("24");
                                        },
                                      },
                                    },
                                    [e._v("  24 ")]
                                  )
                                : e._e(),
                              e.needs.hour
                                ? i(
                                    "a",
                                    {
                                      class: e.$style.quickbtn,
                                      on: {
                                        click: function (t) {
                                          return e.quickTime("now");
                                        },
                                      },
                                    },
                                    [e._v(" 现在")]
                                  )
                                : e._e(),
                            ]
                          )
                        : e._e(),
                    ]
                  )
                : e._e(),
            ]
          );
        },
        U = [],
        W = {
          name: "InputDateTime",
          components: { Slider: y["a"] },
          props: {
            label: String,
            value: String,
            type: { type: String, default: "YMDHN" },
            placeholder: String,
            required: Boolean,
            disabled: Boolean,
            clearable: Boolean,
            border: { type: Boolean, default: !0 },
            borderColor: { type: String, default: $_theme.border_color_light },
            height: { type: Number, default: $_theme.inputHeight },
            labelMaxWidth: { type: Number },
            labelMinWidth: { type: Number },
          },
          _format: null,
          data() {
            return {
              values: {
                year: null,
                month: null,
                day: null,
                hour: null,
                minute: null,
                second: null,
              },
              needs: {
                year: !1,
                month: !1,
                day: !1,
                hour: !1,
                minute: !1,
                second: !1,
              },
              yearStep: 0,
              popup: null,
              nows: null,
              days: [],
              dropdownStyle: {
                zIndex: 0,
                left: 0,
                top: 0,
                borderColor: $_theme.color,
              },
              focused: !1,
              hover: !1,
            };
          },
          watch: {
            focused: function (e) {
              document[e ? "addEventListener" : "removeEventListener"](
                "click",
                this.checkFocus
              ),
                !e && (this.popup = null);
            },
            popup: function (e) {
              e &&
                ((this.focused = !0),
                "day" == e && this.resetDays(),
                "all" == e && !this.value && this.setValue(Object(k["f"])()),
                "all" == e && this.needs.day && this.resetDays());
            },
            value: function (e) {
              e ? this.setValue(e, !1) : this.clear(!1);
            },
            type: function (e) {
              this.typeChg(e), this.value && this.setValue(this.value, !0);
            },
          },
          mounted() {
            this.typeChg(this.type),
              this.value && this.setValue(this.value, !1);
          },
          methods: {
            typeChg(e) {
              (this.needs.year = e.indexOf("Y") > -1),
                (this.needs.month = e.indexOf("M") > -1),
                (this.needs.day = e.indexOf("D") > -1),
                (this.needs.hour = e.indexOf("H") > -1),
                (this.needs.minute = e.indexOf("N") > -1),
                (this.needs.second = e.indexOf("S") > -1),
                (this._format = this.needs.year ? "YYYY" : ""),
                this.needs.month && (this._format += "MM"),
                this.needs.day && (this._format += "DD"),
                this.needs.hour && (this._format += "HH"),
                this.needs.minute && (this._format += "NN"),
                this.needs.second && (this._format += "SS"),
                (this._format = this._format
                  .replace("YM", "Y-M")
                  .replace("MD", "M-D")
                  .replace("DH", "D H")
                  .replace("HN", "H:N")
                  .replace("NS", "N:S"));
            },
            checkFocus(e) {
              this.focused = this.$el.contains(e.target);
            },
            resetDays() {
              if (!this.needs.day) return;
              let e = Object(k["d"])(
                Number(this.values.year || this.nows[0]),
                Number(this.values.month || this.nows[1])
              );
              Number(this.values.day) > e &&
                ((this.values.day = e), this.submit());
              let t = [],
                i = new Date(
                  Number(this.values.year || this.nows[0]),
                  Number(this.values.month || this.nows[1]) - 1,
                  1
                ).getDay();
              while (t.length % 7 < i) t.push(null);
              for (let s = 0; s < e; s++) t.push(s + 1);
              this.days = t;
            },
            onAllChg(e) {
              this.submit(),
                ("year" == e || "month" == e) && this.resetDays(),
                "day" == e &&
                  !this.needs.hour &&
                  !this.needs.minute &&
                  !this.needs.second &&
                  (this.popup = null);
            },
            allArrowClick(e, t) {
              let i = this.values[e] + t;
              "year" == e
                ? (this.values[e] = i)
                : i < 1
                ? ((this.values.year -= 1), (this.values.month = 12))
                : i > 12
                ? ((this.values.year += 1), (this.values.month = 1))
                : (this.values.month = i),
                this.submit(),
                this.resetDays();
            },
            setShowDropdown(e) {
              this.popup != e
                ? (this.resetNows(),
                  (this.popup = e),
                  this.$nextTick(this.setDropdownStyle))
                : (this.popup = null);
            },
            setDropdownStyle() {
              this.dropdownStyle.zIndex = $_theme.zindex();
              let e = this.$el.children[this.$el.children.length - 1],
                t = this.$refs.datatime,
                i = Object(h["b"])(t),
                s = i.left,
                n = i.top;
              (this.dropdownStyle.left = s + "px"),
                n + e.clientHeight + t.clientHeight <
                document.documentElement.clientHeight
                  ? (this.dropdownStyle.top = n + t.offsetHeight + "px")
                  : (this.dropdownStyle.top = n - e.offsetHeight + "px");
            },
            setValueClick(e, t, i) {
              (this.values[t] = e),
                this.submit(),
                (!i || !this.needs[i]) && (this.popup = null),
                i &&
                  this.needs[i] &&
                  (this.popup = i) &&
                  this.$nextTick(this.setDropdownStyle);
            },
            setValue(e) {
              let t =
                !(arguments.length > 1 && void 0 !== arguments[1]) ||
                arguments[1];
              this.resetNows();
              let i = e.split(" ");
              if (this.needs.year || this.needs.month || this.needs.day) {
                let e = i[0].split("-"),
                  t = 0;
                this.needs.year &&
                  (this.values.year = Number(
                    (e.length > t && e[t++]) || this.nows[0]
                  )),
                  this.needs.month &&
                    (this.values.month = Number(
                      (e.length > t && e[t++]) || this.nows[1]
                    )),
                  this.needs.day &&
                    (this.values.day = Number(
                      (e.length > t && e[t++]) || this.nows[2]
                    ));
              }
              if (this.needs.hour || this.needs.minute || this.needs.second) {
                let e = i[i.length - 1].split(":"),
                  t = 0;
                this.needs.hour &&
                  (this.values.hour = Number(
                    (e.length > t && e[t++]) || this.nows[3]
                  )),
                  this.needs.minute &&
                    (this.values.minute = Number(
                      (e.length > t && e[t++]) || this.nows[4]
                    )),
                  this.needs.second &&
                    (this.values.second = Number(
                      (e.length > t && e[t++]) || this.nows[5]
                    ));
              }
              t && this.submit();
            },
            quickDate(e) {
              let t = Object(k["a"])(e).split(/[-| |:]/);
              this.needs.year && (this.values.year = Number(t[0])),
                this.needs.month && (this.values.month = Number(t[1])),
                this.needs.day && (this.values.day = Number(t[2])),
                this.submit(),
                this.resetDays();
            },
            quickTime(e) {
              let t = null;
              if ("now" == e) {
                let e = new Date();
                t = [e.getHours(), e.getMinutes() + 1, e.getSeconds()];
              } else
                t =
                  "00" == e ? [0, 0, 0] : "12" == e ? [12, 0, 0] : [23, 59, 59];
              this.needs.hour && (this.values.hour = t[0]),
                this.needs.minute && (this.values.minute = t[1]),
                this.needs.second && (this.values.second = t[2]),
                this.submit();
            },
            resetNows() {
              let e = Object(k["f"])().split(/[-| |:]/);
              for (let t = 0, i = e.legnth; t < i; t++) e[t] = Number(e[t]);
              this.nows = e;
            },
            fillzero(e) {
              return null === e ? "" : (e < 10 ? "0" : "") + e;
            },
            submit() {
              let e = this._format;
              this.needs.year && (e = e.replace("YYYY", this.values.year)),
                this.needs.month &&
                  (e = e.replace("MM", this.fillzero(this.values.month))),
                this.needs.day &&
                  (e = e.replace("DD", this.fillzero(this.values.day))),
                this.needs.hour &&
                  (e = e.replace("HH", this.fillzero(this.values.hour))),
                this.needs.minute &&
                  (e = e.replace("NN", this.fillzero(this.values.minute))),
                this.needs.second &&
                  (e = e.replace("SS", this.fillzero(this.values.second))),
                this.value != e &&
                  (this.$emit("input", e), this.$emit("change", e));
            },
            clear() {
              let e =
                !(arguments.length > 0 && void 0 !== arguments[0]) ||
                arguments[0];
              (this.values.year =
                this.values.month =
                this.values.day =
                this.values.hour =
                this.values.minute =
                this.values.second =
                  null),
                (this.popup = null),
                e && (this.$emit("input", null), this.$emit("change", null));
            },
          },
          computed: {
            containerStyle() {
              return {
                height: this.height + "px",
                borderColor: this.focused ? this.theme.color : this.borderColor,
                zIndex: this.focused ? this.theme.zindex() : "",
              };
            },
            lineHeight() {
              return this.height - (this.border ? 2 : 0);
            },
            textMinWidth() {
              let e = 0;
              return (
                this.needs.year && (e += 28.92),
                this.needs.month && this.needs.year && (e += 4.34),
                this.needs.month && (e += 14.47),
                this.needs.day && this.needs.month && (e += 4.34),
                this.needs.day && (e += 14.47),
                this.needs.hour && this.needs.day && (e += 7.23),
                this.needs.hour && (e += 14.47),
                this.needs.minute && this.needs.hour && (e += 3.63),
                this.needs.minute && (e += 14.47),
                this.needs.second && this.needs.minute && (e += 3.63),
                this.needs.second && (e += 14.47),
                e + 16
              );
            },
            labelStyle() {
              return {
                minWidth: this.labelMinWidth + "px",
                maxWidth: this.labelMaxWidth + "px",
                borderRightColor: this.theme.border_color_light,
                backgroundColor: this.theme.bg_color,
              };
            },
          },
        },
        G = W,
        Z = i("332c");
      function Y(e) {
        this["$style"] = Z["default"].locals || Z["default"];
      }
      var q = Object(m["a"])(G, H, U, !1, Y, null, null),
        X = q.exports,
        K = {
          components: {
            InputRadio: j,
            InputDateTime: X,
            InputSelect: x["a"],
            Button: c["a"],
          },
          data() {
            return {
              user_pwd: null,
              plate: null,
              sim: null,
              chns: null,
              stime: Object(k["e"])() + " 00:00",
              etime: Object(k["e"])() + " 23:59",
              chn: 0,
              from: 0,
              avtype: 0,
              stream: 0,
              storage: 0,
              alarms:
                "0000000000000000000000000000000000000000000000000000000000000000",
              type: "",
              querying: !1,
            };
          },
          mounted() {},
          computed: {
            chnlist: function () {
              let e = [{ label: "所有通道", value: 0 }];
              return this.chns && this.chns.forEach((t) => e.push(t)), e;
            },
          },
          methods: {
            init(e) {
              (this.user_pwd = e.user_pwd || null),
                (this.plate = e.plate || null),
                (this.sim = e.sim || null),
                (this.chns = e.chns || null);
            },
            toogleQuery() {
              let e =
                arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
              if (this.querying)
                return (
                  (this._uuid = null),
                  (this.querying = !1),
                  void this.$emit("querying", this.querying)
                );
              if (!this.sim) return w["a"].warn("请选择查询车辆或通道！");
              if (this.stime > this.etime)
                return w["a"].warn("查询时间不正确！");
              let t = this.stime
                  .split(/[-| |:]/)
                  .join("")
                  .substr(2),
                i = this.etime
                  .split(/[-| |:]/)
                  .join("")
                  .substr(2);
              e ||
                (10 == t.length && (t += "00"), 10 == i.length && (i += "59")),
                (this.querying = !0),
                this.$emit("querying", this.querying),
                (this._uuid = this.$parent._uuid()),
                0 == this.from
                  ? (this.$parent._socket.addListener(
                      "dir_tmn_query",
                      this._on_dir_tmn_query
                    ),
                    this.$parent._socket.send({
                      cmd: "dir_tmn_query",
                      uuid: this._uuid,
                      user_pwd: this.user_pwd,
                      channel: this.chn,
                      carId: "_" + this.sim,
                      stime: t,
                      etime: i,
                      alarm: this.alarms,
                      avtype: this.avtype,
                      stream: this.stream,
                      storage: this.storage,
                    }))
                  : (this.$parent._socket.addListener(
                      "dir_srv_query",
                      this._on_dir_srv_query
                    ),
                    this.$parent._socket.send({
                      cmd: "dir_srv_query",
                      uuid: this._uuid,
                      user_pwd: this.user_pwd,
                      channel: this.chn,
                      carId: "_" + this.sim,
                      stime: t,
                      etime: i,
                      alarm: "",
                      type: this.type,
                    }));
            },
            _on_dir_tmn_query(e) {
              this.$parent._socket.removeListener(
                "dir_tmn_query",
                this._on_dir_tmn_query
              ),
                this._on_query(e);
            },
            _on_dir_srv_query(e) {
              this.$parent._socket.removeListener(
                "dir_srv_query",
                this._on_dir_srv_query
              ),
                this._on_query(e);
            },
            _on_query(e) {
              if (this._uuid == e.uuid) {
                if (
                  ((this.querying = !1),
                  this.$emit("querying", this.querying),
                  0 !== e.ret)
                )
                  return w["a"].error(Object(C["a"])(e.ret));
                if (e.data && 0 != e.data.length) {
                  let t = {};
                  this.chns &&
                    this.chns.forEach((e) => (t[e.value + ""] = e.label)),
                    e.data.forEach((e) => {
                      (e.stime =
                        "20" +
                        String(e.startTime).substr(0, 2) +
                        "-" +
                        String(e.startTime).substr(2, 2) +
                        "-" +
                        String(e.startTime).substr(4, 2) +
                        " " +
                        String(e.startTime).substr(6, 2) +
                        ":" +
                        String(e.startTime).substr(8, 2) +
                        ":" +
                        String(e.startTime).substr(10, 2)),
                        (e.etime =
                          "20" +
                          String(e.endTime).substr(0, 2) +
                          "-" +
                          String(e.endTime).substr(2, 2) +
                          "-" +
                          String(e.endTime).substr(4, 2) +
                          " " +
                          String(e.endTime).substr(6, 2) +
                          ":" +
                          String(e.endTime).substr(8, 2) +
                          ":" +
                          String(e.endTime).substr(10, 2)),
                        (e.second = Object(k["b"])(e.stime, e.etime)),
                        (e.carId = "_" + this.sim),
                        (e.sim = this.sim),
                        (e.plate = this.plate),
                        (e.chnName = t[e.channel + ""] || "通道" + e.channel),
                        (e.file = e.file || !1),
                        (e.ftp = e.ftp || 0),
                        (e.ftpEnabled = !0),
                        (e.ftpTip = e.ftpTip2 = ""),
                        (e.play = !1);
                    }),
                    e.data.sort((e, t) =>
                      e.stime == t.stime ? 0 : e.stime > t.stime ? 1 : -1
                    );
                } else w["a"].warn("无录像数据！");
                this.$emit(
                  "queryResult",
                  e.data,
                  this.stime,
                  this.etime,
                  0 == this.from
                ),
                  this.$parent._cfg.onSearchResult &&
                    this.$parent._cfg.onSearchResult(e.data);
              }
            },
          },
        },
        J = K,
        Q = Object(m["a"])(J, D, I, !1, null, null, null),
        ee = Q.exports,
        te = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "vxe-table",
            {
              ref: "grid",
              style: { borderColor: e.theme.border_color_dark },
              attrs: { data: e.files, height: "auto", "auto-resize": "" },
            },
            [
              i("vxe-table-column", {
                attrs: {
                  type: "index",
                  title: "序号",
                  width: "50",
                  fixed: "left",
                },
              }),
              i("vxe-table-column", {
                attrs: {
                  field: "play",
                  title: "播放",
                  sortable: !1,
                  width: "75",
                  fixed: "left",
                },
                scopedSlots: e._u([
                  {
                    key: "default",
                    fn: function (t) {
                      var s = t.row;
                      return [
                        i(
                          "Button",
                          {
                            attrs: {
                              type: "light",
                              height: 25,
                              padding: "0 5px 0 1px",
                              iconStyle: { marginRight: "2px" },
                              icon: s.play
                                ? "el-icon-close"
                                : "el-icon-caret-right",
                            },
                            on: {
                              click: function (t) {
                                return e.tooglePlay(s);
                              },
                            },
                          },
                          [e._v(e._s(s.play ? "关闭" : "播放"))]
                        ),
                      ];
                    },
                  },
                ]),
              }),
              i("vxe-table-column", {
                key: "01",
                attrs: {
                  field: "plate",
                  title: "车牌号",
                  width: "100px",
                  fixed: "left",
                },
              }),
              i("vxe-table-column", {
                key: "02",
                attrs: {
                  field: "channel",
                  title: "通道号",
                  width: "60px",
                  fixed: "left",
                },
              }),
              i("vxe-table-column", {
                key: "03",
                attrs: { field: "chnName", title: "通道名", width: "65px" },
              }),
              i("vxe-table-column", {
                key: "04",
                attrs: { field: "stime", title: "开始时间", width: "160px" },
              }),
              i("vxe-table-column", {
                key: "05",
                attrs: { field: "etime", title: "结束时间", width: "160px" },
              }),
              i("vxe-table-column", {
                key: "06",
                attrs: {
                  field: "second",
                  title: "录像时长",
                  width: "80px",
                  formatter: function (t) {
                    var i = t.row;
                    return e.secondsToDHMS(i.second);
                  },
                },
              }),
              i("vxe-table-column", {
                key: "07",
                attrs: {
                  field: "fileSize",
                  title: "录像大小",
                  width: "100px",
                  sortBy: "fileSize",
                  formatter: e.fileSize,
                },
              }),
              e.fromTmn
                ? i("vxe-table-column", {
                    key: "08",
                    attrs: {
                      field: "avType",
                      title: "资源类型",
                      width: "80px",
                      formatter: e.avType,
                    },
                  })
                : e._e(),
              e.fromTmn
                ? i("vxe-table-column", {
                    key: "09",
                    attrs: {
                      field: "streamType",
                      title: "码流类型",
                      width: "80px",
                      formatter: e.streamType,
                    },
                  })
                : e._e(),
              e.fromTmn
                ? i("vxe-table-column", {
                    key: "10",
                    attrs: {
                      field: "storeType",
                      title: "存储类型",
                      width: "80px",
                      formatter: e.storeType,
                    },
                  })
                : e._e(),
              i("vxe-table-column", {
                key: "11",
                attrs: {
                  field: "alarmFlag",
                  title: "报警标识",
                  width: "100px",
                  formatter: e.alarmFlag,
                },
              }),
              i("vxe-table-column", {
                key: "12",
                attrs: {
                  field: "src",
                  title: "来源",
                  width: "75px",
                  formatter: e.src,
                },
              }),
              e.fromTmn
                ? e._e()
                : i("vxe-table-column", {
                    key: "13",
                    attrs: {
                      field: "fileName",
                      title: "格式",
                      width: "70px",
                      formatter: e.fmt,
                    },
                  }),
              e.fromTmn || (!e.avh_dnl && !e.avh_del)
                ? e._e()
                : i("vxe-table-column", {
                    key: "14",
                    attrs: { sortable: !1, title: "文件操作", width: "125px" },
                    scopedSlots: e._u(
                      [
                        {
                          key: "default",
                          fn: function (t) {
                            var s = t.row;
                            return [
                              e.avh_dnl && s.file
                                ? i(
                                    "Button",
                                    {
                                      staticStyle: { margin: "0 3px" },
                                      attrs: { type: "light", height: 25 },
                                      on: {
                                        click: function (t) {
                                          return e.onDownloadClick(t, s);
                                        },
                                      },
                                    },
                                    [
                                      e._v(" 下载 "),
                                      s.fileName &&
                                      s.fileName.indexOf("FTP") > 0
                                        ? i("i", {
                                            staticClass: "el-icon-arrow-down",
                                            staticStyle: { margin: "0 -4px" },
                                          })
                                        : e._e(),
                                    ]
                                  )
                                : e._e(),
                              e.avh_del && s.file
                                ? i(
                                    "Button",
                                    {
                                      staticStyle: { margin: "0 3px" },
                                      attrs: { type: "light", height: 25 },
                                      on: {
                                        click: function (t) {
                                          return e.deleteFile(s);
                                        },
                                      },
                                    },
                                    [e._v(" 删除 ")]
                                  )
                                : e._e(),
                            ];
                          },
                        },
                      ],
                      null,
                      !1,
                      129020736
                    ),
                  }),
              e.fromTmn && (e.avh_ftp || e.avh_dnl)
                ? i("vxe-table-column", {
                    key: "15",
                    attrs: { sortable: !1, width: "120px" },
                    scopedSlots: e._u(
                      [
                        {
                          key: "header",
                          fn: function () {
                            return [
                              e.avh_dnl
                                ? i("span", [e._v("上传下载")])
                                : i("span", [e._v("上传到服务器")]),
                            ];
                          },
                          proxy: !0,
                        },
                        {
                          key: "default",
                          fn: function (t) {
                            var s = t.row;
                            return [
                              e.avh_ftp && 0 == s.ftp
                                ? i(
                                    "Button",
                                    {
                                      attrs: {
                                        type: "light",
                                        height: 25,
                                        disabled: !s.ftpEnabled,
                                      },
                                      on: {
                                        click: function (t) {
                                          return e.ftpUpload(s);
                                        },
                                      },
                                    },
                                    [
                                      e._v(
                                        " " +
                                          e._s(
                                            e.avh_dnl ? "上传下载" : "上传"
                                          ) +
                                          " "
                                      ),
                                    ]
                                  )
                                : e._e(),
                              !e.avh_dnl || (1 != s.ftp && 4 != s.ftp)
                                ? e._e()
                                : i(
                                    "Button",
                                    {
                                      attrs: { type: "light", height: 25 },
                                      on: {
                                        click: function (t) {
                                          return e.onDownloadClick(t, s);
                                        },
                                      },
                                    },
                                    [
                                      e._v(" 下载 "),
                                      s.fileName &&
                                      s.fileName.indexOf("FTP") > 0
                                        ? i("i", {
                                            staticClass: "el-icon-arrow-down",
                                            staticStyle: { margin: "0 -4px" },
                                          })
                                        : e._e(),
                                    ]
                                  ),
                              e.avh_ftp && 2 == s.ftp
                                ? i(
                                    "Button",
                                    {
                                      staticStyle: { margin: "0 3px" },
                                      attrs: {
                                        type: "light",
                                        height: 25,
                                        disabled: !s.ftpEnabled,
                                      },
                                      on: {
                                        click: function (t) {
                                          return e.ftpCtr(s, 0);
                                        },
                                      },
                                    },
                                    [e._v(" 暂停 ")]
                                  )
                                : e._e(),
                              e.avh_ftp && 3 == s.ftp
                                ? i(
                                    "Button",
                                    {
                                      staticStyle: { margin: "0 3px" },
                                      attrs: {
                                        type: "light",
                                        height: 25,
                                        disabled: !s.ftpEnabled,
                                      },
                                      on: {
                                        click: function (t) {
                                          return e.ftpCtr(s, 1);
                                        },
                                      },
                                    },
                                    [e._v(" 继续 ")]
                                  )
                                : e._e(),
                              !e.avh_ftp || (2 != s.ftp && 3 != s.ftp)
                                ? e._e()
                                : i(
                                    "Button",
                                    {
                                      staticStyle: { margin: "0 3px" },
                                      attrs: {
                                        type: "light",
                                        height: 25,
                                        disabled: !s.ftpEnabled,
                                      },
                                      on: {
                                        click: function (t) {
                                          return e.ftpCtr(s, 2);
                                        },
                                      },
                                    },
                                    [e._v(" 取消 ")]
                                  ),
                              e.avh_dnl || 1 != s.ftp
                                ? e._e()
                                : i("span", [e._v(" 已上传  ")]),
                            ];
                          },
                        },
                      ],
                      null,
                      !1,
                      2304092642
                    ),
                  })
                : e._e(),
              i("vxe-table-column", {
                key: "16",
                attrs: {
                  field: "ftpTip",
                  sortable: !1,
                  "min-width": "135px",
                  align: "left",
                },
              }),
            ],
            1
          );
        },
        ie = [],
        se = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [e.$style.container, e.border && e.$style.border],
              style: { borderColor: e.theme.border_color_dark },
              attrs: { tabindex: "0" },
              on: {
                dragover: function (t) {
                  return e.onDrag(t);
                },
                blur: function (t) {
                  return e.blur();
                },
              },
            },
            [
              i(
                "ul",
                { class: e.$style.ul },
                e._l(e.list, function (t, s) {
                  return i(
                    "li",
                    {
                      key: s,
                      class: e.$style.item,
                      style: [
                        { lineHeight: e.lineHeight + "px" },
                        e.divider
                          ? {
                              borderBottomColor: e.theme.border_color_light,
                              borderBottomWidth: "1px",
                            }
                          : null,
                        e._itemStyle(t, s, e.selectedIndex),
                        e.itemStyle,
                      ],
                      attrs: { draggable: e.draggable },
                      on: {
                        dragstart: function (i) {
                          e.draggable && e.onDragStart(i, t, s);
                        },
                        dragend: function (t) {
                          e.draggable && e.onDragEnd();
                        },
                        mouseenter: function (i) {
                          e._dragend
                            ? (e._dragend = !1)
                            : !e._dragging && (e.hoverItem = t);
                        },
                        mouseleave: function (t) {
                          e.hoverItem = null;
                        },
                        mousedown: function (i) {
                          e.draggable && e.itemClick(t, s, !1);
                        },
                        click: function (i) {
                          return e.itemClick(t, s);
                        },
                        dblclick: function (i) {
                          return e.itemDbClick(t, s);
                        },
                      },
                    },
                    [
                      e.iconUrlFunction
                        ? i("img", {
                            class: e.$style.icon_url,
                            style: e.iconStyle,
                            attrs: {
                              src: e.iconUrlFunction(t),
                              draggable: "false",
                            },
                          })
                        : e._e(),
                      e.iconCssFunction
                        ? i(
                            "span",
                            {
                              class: [e.iconCssFunction(t), e.$style.icon_css],
                              style: e.iconStyle,
                            },
                            [e._v(" ")]
                          )
                        : e._e(),
                      i("span", {
                        domProps: {
                          innerHTML: e._s(
                            e.labelFunction
                              ? e.labelFunction(t)
                              : e.labelField
                              ? t[e.labelField]
                              : t
                          ),
                        },
                      }),
                      t.disabled
                        ? i("div", { class: e.$style.disabled })
                        : e._e(),
                      e.closable && e.hoverItem == t
                        ? i("div", {
                            class: e.$style.btn_close,
                            on: {
                              click: function (i) {
                                return i.stopPropagation(), e.$emit("close", t);
                              },
                            },
                          })
                        : e._e(),
                    ]
                  );
                }),
                0
              ),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
            ]
          );
        },
        ne = [];
      let oe;
      var re = {
          name: "List",
          props: {
            list: { type: Array, default: [] },
            labelField: { type: String, default: "" },
            labelFunction: Function,
            iconUrlFunction: Function,
            iconCssFunction: Function,
            border: { type: Boolean, default: !0 },
            divider: { type: Boolean, default: !1 },
            draggable: { type: Boolean, default: !1 },
            closable: { type: Boolean, default: !1 },
            disabled: { type: Boolean, default: !1 },
            lineHeight: { type: Number, default: $_theme.inputHeight },
            itemStyle: { default: null },
            iconStyle: { default: null },
          },
          data() {
            return { selectedItem: null, selectedIndex: -1, hoverItem: null };
          },
          watch: {
            selectedItem: function (e) {
              this.selectedIndex = this.list.indexOf(e);
            },
          },
          created() {
            this._dragend = this._dragging = !1;
          },
          methods: {
            wxClick(e) {
              this.$emit("wxCopy", e);
            },
            blur() {
              this.$emit("blur");
            },
            _itemStyle(e, t) {
              return e == this.selectedItem || t == this.selectedIndex
                ? { backgroundColor: this.theme.selected_color }
                : e == this.hoverItem
                ? { backgroundColor: this.theme.list_hover_color }
                : { backgroundColor: this.theme.alternate_colors[t % 2] };
            },
            itemClick(e, t) {
              let i =
                  !(arguments.length > 2 && void 0 !== arguments[2]) ||
                  arguments[2],
                s = this.selectedItem;
              this.selectedItem != e
                ? ((this.selectedItem = e),
                  (this.selectedIndex = t),
                  i && this.$emit("click", e, s, t),
                  this.$emit("change", e, s, t))
                : i && this.$emit("click", e, s, t);
            },
            itemDbClick(e, t) {
              this.$emit("dbclick", e, t);
            },
            onDragStart(e, t, i) {
              let s = e.target;
              (this._dragging = !0),
                (this._dragend = !1),
                (this.hoverItem = null),
                (this.selectedItem = t),
                (this.selectedIndex = -1),
                (oe = {
                  dom: s,
                  y: Object(h["c"])(this.$el),
                  oldIndex: i,
                  newIndex: i,
                });
            },
            onDrag(e) {
              let t = this.getIndex(e);
              t != oe.newIndex &&
                (this.list.splice(t, 0, this.list.splice(oe.newIndex, 1)[0]),
                (oe.newIndex = t)),
                e.preventDefault();
            },
            onDragEnd() {
              (this._dragend = !0),
                (this._dragging = !1),
                oe.oldIndex != oe.newIndex &&
                  this.$emit(
                    "dragend",
                    this.selectedItem,
                    oe.newIndex,
                    oe.oldIndex
                  ),
                (oe = null);
            },
            getIndex(e) {
              let t = e.clientY || e.y,
                i = Math.floor(
                  (t + this.$el.scrollTop - oe.y) / oe.dom.offsetHeight
                );
              return i < 0 ? 0 : Math.min(i, this.list.length - 1);
            },
          },
        },
        le = re,
        ae = i("911a");
      function he(e) {
        this["$style"] = ae["default"].locals || ae["default"];
      }
      var ce = Object(m["a"])(le, se, ne, !1, he, null, null),
        de = ce.exports,
        ue = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "Window",
            {
              ref: "w",
              staticStyle: { height: "70%" },
              attrs: {
                title: "设备文件批量上传下载",
                width: 1e3,
                fitLabel: !1,
                showClose: 0 == e.state,
                contentStyle: {
                  height:
                    0 != e.state ? "calc(100% - 89px)" : "calc(100% - 40px)",
                },
              },
            },
            [
              i(
                "div",
                {
                  staticStyle: {
                    padding: "5px",
                    height: "100%",
                    overflow: "auto",
                  },
                },
                [
                  i(
                    "div",
                    {
                      staticStyle: {
                        display: "flex",
                        "padding-bottom": "5px",
                        "align-items": "center",
                      },
                    },
                    [
                      i("InputRadio", {
                        attrs: {
                          disabled: 0 != e.state,
                          options: [
                            { label: "按文件列表", value: "files" },
                            { label: "按通道时间", value: "times" },
                          ],
                        },
                        model: {
                          value: e.type,
                          callback: function (t) {
                            e.type = t;
                          },
                          expression: "type",
                        },
                      }),
                      i("InputCheckbox", {
                        staticStyle: { "margin-left": "5px" },
                        attrs: {
                          disabled: 0 != e.state,
                          label: "网络条件",
                          options: [
                            { label: "WIFI", value: 1 },
                            { label: "LAN", value: 2 },
                            { label: "3G/4G", value: 3 },
                          ],
                        },
                        model: {
                          value: e.conditions,
                          callback: function (t) {
                            e.conditions = t;
                          },
                          expression: "conditions",
                        },
                      }),
                      "times" == e.type
                        ? i("InputDateTime", {
                            staticStyle: { "margin-left": "5px" },
                            attrs: { disabled: 0 != e.state, type: "YMDHNS" },
                            on: {
                              change: function (t) {
                                return e.timeChg();
                              },
                            },
                            model: {
                              value: e.stime,
                              callback: function (t) {
                                e.stime = t;
                              },
                              expression: "stime",
                            },
                          })
                        : e._e(),
                      "times" == e.type ? i("span", [e._v("~")]) : e._e(),
                      "times" == e.type
                        ? i("InputDateTime", {
                            attrs: { disabled: 0 != e.state, type: "YMDHNS" },
                            on: {
                              change: function (t) {
                                return e.timeChg();
                              },
                            },
                            model: {
                              value: e.etime,
                              callback: function (t) {
                                e.etime = t;
                              },
                              expression: "etime",
                            },
                          })
                        : e._e(),
                      i("InputSelect", {
                        staticStyle: { "margin-left": "5px" },
                        attrs: {
                          disabled: 0 != e.state,
                          options: [
                            { label: "原始格式", value: "" },
                            { label: "MP4格式", value: "mp4" },
                            { label: "FLV格式", value: "flv" },
                            { label: "MPEG-TS格式", value: "mpegts" },
                          ],
                        },
                        model: {
                          value: e.format,
                          callback: function (t) {
                            e.format = t;
                          },
                          expression: "format",
                        },
                      }),
                      i(
                        "Button",
                        {
                          staticStyle: { "margin-left": "5px" },
                          attrs: { type: "primary", disabled: 0 != e.state },
                          on: {
                            click: function (t) {
                              return e.startBtnClick();
                            },
                          },
                        },
                        [e._v(" 开始上传下载 ")]
                      ),
                    ],
                    1
                  ),
                  "files" == e.type
                    ? i(
                        "vxe-table",
                        {
                          ref: "files_grid",
                          staticStyle: { height: "calc(100% - 37px)" },
                          attrs: {
                            data: e.files,
                            "auto-resize": "",
                            "checkbox-config": {
                              checkMethod: function () {
                                return 0 == e.state;
                              },
                            },
                          },
                        },
                        [
                          i("vxe-table-column", {
                            attrs: { type: "checkbox", width: "40" },
                          }),
                          i("vxe-table-column", {
                            attrs: {
                              type: "index",
                              title: "序号",
                              width: "50",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a1",
                            attrs: {
                              field: "plate",
                              title: "车牌号",
                              width: "100px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a2",
                            attrs: {
                              field: "chnName",
                              title: "通道名",
                              width: "65px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a3",
                            attrs: {
                              field: "channel",
                              title: "通道号",
                              width: "65px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a4",
                            attrs: {
                              field: "stime",
                              title: "开始时间",
                              width: "160px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a5",
                            attrs: {
                              field: "etime",
                              title: "结束时间",
                              width: "160px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a6",
                            attrs: {
                              field: "second",
                              title: "录像时长",
                              width: "80px",
                              formatter: function (t) {
                                var i = t.row;
                                return e.secondsToDHMS(i.second);
                              },
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a7",
                            attrs: {
                              field: "fileSize",
                              title: "录像大小",
                              width: "100px",
                              sortBy: "fileSize",
                              formatter: e.getFileSize,
                            },
                          }),
                          i("vxe-table-column", {
                            key: "a8",
                            attrs: {
                              field: "ftpTip2",
                              title: "上传状态",
                              sortable: !1,
                              align: "left",
                            },
                          }),
                        ],
                        1
                      )
                    : e._e(),
                  "times" == e.type
                    ? i(
                        "vxe-table",
                        {
                          ref: "times_grid",
                          staticStyle: { height: "calc(100% - 37px)" },
                          attrs: {
                            data: e.times,
                            "auto-resize": "",
                            "checkbox-config": {
                              checkMethod: function () {
                                return 0 == e.state;
                              },
                            },
                          },
                        },
                        [
                          i("vxe-table-column", {
                            attrs: { type: "checkbox", width: "40" },
                          }),
                          i("vxe-table-column", {
                            attrs: {
                              type: "index",
                              title: "序号",
                              width: "50",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b1",
                            attrs: {
                              field: "plate",
                              title: "车牌号",
                              width: "100px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b2",
                            attrs: {
                              field: "chnName",
                              title: "通道名",
                              width: "65px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b3",
                            attrs: {
                              field: "channel",
                              title: "通道号",
                              width: "65px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b4",
                            attrs: {
                              field: "stime",
                              title: "开始时间",
                              width: "160px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b5",
                            attrs: {
                              field: "etime",
                              title: "结束时间",
                              width: "160px",
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b6",
                            attrs: {
                              field: "second",
                              title: "录像时长",
                              width: "80px",
                              formatter: function (t) {
                                var i = t.row;
                                return e.secondsToDHMS(i.second);
                              },
                            },
                          }),
                          i("vxe-table-column", {
                            key: "b7",
                            attrs: {
                              field: "ftpTip2",
                              title: "上传状态",
                              sortable: !1,
                              align: "left",
                            },
                          }),
                        ],
                        1
                      )
                    : e._e(),
                ],
                1
              ),
              0 != e.state
                ? i(
                    "template",
                    { slot: "footer" },
                    [
                      1 == e.state
                        ? i(
                            "Button",
                            {
                              staticStyle: {
                                margin: "8px 4px",
                                "min-width": "80px",
                              },
                              attrs: { type: "primary" },
                              on: {
                                click: function (t) {
                                  return e.ftpCtr(0);
                                },
                              },
                            },
                            [e._v(" 暂停上传 ")]
                          )
                        : e._e(),
                      2 == e.state
                        ? i(
                            "Button",
                            {
                              staticStyle: {
                                margin: "8px 4px",
                                "min-width": "80px",
                              },
                              attrs: { type: "primary" },
                              on: {
                                click: function (t) {
                                  return e.ftpCtr(1);
                                },
                              },
                            },
                            [e._v(" 继续上传 ")]
                          )
                        : e._e(),
                      i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          attrs: { type: "primary" },
                          on: {
                            click: function (t) {
                              return e.ftpCtr(2);
                            },
                          },
                        },
                        [e._v(" 取消上传 ")]
                      ),
                    ],
                    1
                  )
                : e._e(),
            ],
            2
          );
        },
        pe = [],
        fe = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              ref: "window",
              class: [
                e.$style.container,
                e.isFullScreen && e.$style.fullScreen,
              ],
              style: [
                {
                  width: e.width > 0 && e.width + "px",
                  left: e.left + "px",
                  top: e.top + "px",
                  maxWidth: e.maxWidth,
                },
                e.theme.window,
              ],
            },
            [
              e.showHead
                ? i(
                    "div",
                    {
                      ref: "header",
                      class: e.$style.header,
                      staticStyle: { "z-index": "2" },
                      style: [
                        { backgroundColor: e.theme.color },
                        e.titleHeight && { height: e.titleHeight + "px" },
                        e.movable && { cursor: "move" },
                      ],
                      on: {
                        mousedown: function (t) {
                          e.movable && e.onDragStart(t);
                        },
                      },
                    },
                    [
                      e._t("icon"),
                      e._t("title", [
                        i(
                          "span",
                          {
                            class: e.$style.title,
                            style: {
                              lineHeight: e.headerHeight + "px",
                              width:
                                "calc(100% - " +
                                (e.showFullScreen ? "100px" : "50px") +
                                ")",
                            },
                          },
                          [
                            e.titleImg
                              ? i("img", {
                                  staticStyle: {
                                    "vertical-align": "middle",
                                    "margin-right": "5px",
                                  },
                                  attrs: { src: e.titleImg, alt: "" },
                                })
                              : e._e(),
                            e._v(e._s(e.title)),
                          ]
                        ),
                      ]),
                      e.showClose
                        ? i(
                            "button",
                            {
                              class: e.$style.closebtn,
                              style: { width: e.headerHeight + "px" },
                              attrs: { type: "button" },
                              on: {
                                click: function (t) {
                                  return e.close(t);
                                },
                              },
                            },
                            [
                              i("i", {
                                staticClass: "el-icon-close",
                                staticStyle: { "font-size": "20px" },
                              }),
                            ]
                          )
                        : e._e(),
                      e.showFullScreen
                        ? i(
                            "button",
                            {
                              class: e.$style.fullScreenbtn,
                              style: { width: e.headerHeight + "px" },
                              attrs: {
                                type: "button",
                                title: e.isFullScreen ? "还原" : "最大化",
                              },
                              on: {
                                click: function (t) {
                                  e.isFullScreen
                                    ? e.restoreScreen()
                                    : e.fullScreen();
                                },
                              },
                            },
                            [
                              i("i", {
                                class: e.isFullScreen
                                  ? "el-icon-copy-document"
                                  : "el-icon-full-screen",
                              }),
                            ]
                          )
                        : e._e(),
                      e._t("button"),
                    ],
                    2
                  )
                : e._e(),
              i(
                "div",
                {
                  ref: "content",
                  staticStyle: { "background-color": "#fff", overflow: "auto" },
                  style: e.contentStyle,
                },
                [e._t("default")],
                2
              ),
              e.$slots.footer
                ? i(
                    "div",
                    {
                      ref: "footer",
                      class: e.$style.footer,
                      style: [
                        {
                          backgroundColor: e.theme.bg_color,
                          borderTop: "1px solid " + e.theme.border_color_light,
                        },
                        e.footerStyle,
                      ],
                    },
                    [e._t("footer")],
                    2
                  )
                : e._e(),
              e.waiting ? i("div", { class: e.$style.waiting }) : e._e(),
            ]
          );
        },
        me = [];
      let ge,
        ve,
        _e = "is-label";
      function be(e) {
        let t =
            arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,
          i = [],
          s = ye([e], i, 0);
        return (
          (t = 0 == t ? s : Math.min(s, t)),
          t > 0 &&
            i.length > 0 &&
            i.forEach((e) => {
              e.scrollWidth > t &&
                ((e.style["text-overflow"] = "ellipsis"),
                (e.style["overflow"] = "hidden"),
                (e.title = e.innerHTML)),
                (e.style.width = t + "px");
            }),
          t
        );
      }
      function ye(e, t, i) {
        for (let s, n = 0, o = e.length; n < o; n++)
          (s = e[n]),
            void 0 !== s.hasAttribute &&
              (s.hasAttribute(_e)
                ? (t.push(s), (i = Math.max(i, s.scrollWidth)))
                : s.childNodes.length > 0 && (i = ye(s.childNodes, t, i)));
        return i;
      }
      var xe = {
          name: "Window",
          props: {
            title: String,
            titleHeight: { type: Number, default: 0 },
            titleColor: { type: String, default: null },
            width: { type: Number, default: 0 },
            fitLabel: { type: Boolean, default: !0 },
            modal: { type: Boolean, default: !0 },
            waiting: Boolean,
            showClose: { type: Boolean, default: !0 },
            showHead: { type: Boolean, default: !0 },
            movable: { type: Boolean, default: !0 },
            showFullScreen: { type: Boolean, default: !1 },
            titleImg: { type: String, default: null },
            beforeClose: Function,
            afterFullScreen: Function,
            afterRestoreScreen: Function,
            contentStyle: { default: null },
            footerStyle: { default: null },
          },
          _modalDom: null,
          data() {
            return {
              left: 0,
              top: 0,
              isFullScreen: !1,
              maxWidth: "none",
              headerHeight: 0,
              labelWidth: 0,
            };
          },
          mounted() {
            (this.headerHeight = this.showHead
              ? this.$refs.header.clientHeight || this.titleHeight
              : 0),
              this.overWidthOrHeight(),
              this.modal &&
                ((this._modalDom = document.createElement("div")),
                (this._modalDom.className = this.$style.modal),
                (this._modalDom.style["z-index"] = $_theme.zindex()),
                this.$el.parentElement.appendChild(this._modalDom));
          },
          methods: {
            overWidthOrHeight() {
              this.$nextTick(() => {
                let e;
                (this.left = parseInt(this.$el.style.left.replace("px", ""))),
                  (this.top = parseInt(this.$el.style.top.replace("px", ""))),
                  this.contentStyle && this.contentStyle.maxHeight
                    ? (this._oldMaxHeight = e =
                        parseInt(this.contentStyle.maxHeight.replace("px", "")))
                    : ((this._oldMaxHeight = e =
                        document.documentElement.clientHeight -
                        this.headerHeight -
                        (this.$slots.footer
                          ? this.$refs.footer.clientHeight
                          : 0) -
                        this.top),
                      (this.$refs.content.style["max-height"] = e + "px")),
                  (this._oldMaxWidth =
                    this.contentStyle && this.contentStyle.maxWidth
                      ? this.contentStyle.maxWidth
                      : "none"),
                  this.$refs.content.clientHeight > e &&
                    ((this.width += 16), (this.left -= 8)),
                  this.fitLabel && (this.labelWidth = be(this.$refs.content)),
                  this.$nextTick(() => {
                    document.documentElement.clientWidth - this.left <
                      this.$refs.content.clientWidth &&
                      (this.left -=
                        this.$refs.content.clientWidth -
                        (document.documentElement.clientWidth - this.left)),
                      this.left < 0 && (this.left = 0);
                  });
              });
            },
            close(e) {
              (this.beforeClose && !1 === this.beforeClose()) ||
                (null != this._modalDom &&
                  (this.$el.parentElement.removeChild(this._modalDom),
                  (this._modalDom = null)),
                this.$el.parentElement.removeChild(this.$el),
                this.$emit("closed", e),
                this.$parent.$destroy());
            },
            fullScreen() {
              (this._oldLeft = this.left),
                (this._oldTop = this.top),
                (this.left = 0),
                (this.top = 0),
                (this.isFullScreen = !0);
              let e =
                document.documentElement.clientHeight -
                this.headerHeight -
                (this.$slots.footer ? this.$refs.footer.clientHeight : 0);
              (this.$refs.content.style["max-height"] = e + "px"),
                (this.$refs.content.style["max-width"] = "100%"),
                this.afterFullScreen && this.$nextTick(this.afterFullScreen);
            },
            restoreScreen() {
              (this.left = this._oldLeft),
                (this.top = this._oldTop),
                (this.isFullScreen = !1),
                (this.$refs.content.style["max-height"] =
                  this._oldMaxHeight + "px"),
                (this.$refs.content.style["max-width"] = this._oldMaxWidth),
                this.afterRestoreScreen &&
                  this.$nextTick(this.afterRestoreScreen);
            },
            onDragStart(e) {
              (ge = e.clientX - this.$el.offsetLeft),
                (ve = e.clientY - this.$el.offsetTop),
                document.addEventListener("mousemove", this.onDraging),
                document.addEventListener("mouseup", this.onDragEnd);
            },
            onDraging(e) {
              (this.left = e.clientX - ge), (this.top = e.clientY - ve);
            },
            onDragEnd() {
              document.removeEventListener("mousemove", this.onDraging),
                document.removeEventListener("mouseup", this.onDragEnd),
                (this.left = Math.max(this.left, 0)),
                (this.top = Math.max(this.top, 0)),
                this.left + 100 > document.documentElement.clientWidth &&
                  (this.left =
                    document.documentElement.clientWidth -
                    this.$el.clientWidth),
                this.top + 30 > document.documentElement.clientHeight &&
                  (this.top =
                    document.documentElement.clientHeight -
                    this.$el.clientHeight);
            },
            resize(e) {
              (e = e || document.body),
                "string" === typeof e &&
                  (e = document.getElementById(e) || document.body);
              let t = Object(h["b"])(e),
                i = t.left,
                s = t.top,
                n = e.offsetWidth,
                o = e.offsetHeight,
                r = this.$el.clientWidth,
                l = this.$el.clientHeight;
              (this.left = Math.max(0, i + (n - r) / 2)),
                (this.top = Math.max(0, s + (o - l) / 3)),
                this.overWidthOrHeight();
            },
          },
        },
        we = xe,
        Se = i("ae31");
      function Ee(e) {
        this["$style"] = Se["default"].locals || Se["default"];
      }
      var ke = Object(m["a"])(we, fe, me, !1, Ee, null, null),
        Ce = ke.exports,
        Te = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [e.$style.container, e.border && e.$style.border],
              style: e.containerStyle,
              attrs: { tabindex: "0" },
              on: {
                focus: function (t) {
                  e.focused = !0;
                },
                blur: function (t) {
                  e.focused = !1;
                },
              },
            },
            [
              e.label
                ? i(
                    "span",
                    {
                      class: e.$style.label,
                      style: e.labelStyle,
                      attrs: { "is-label": e.isLabel },
                    },
                    [e._v(e._s(e.label))]
                  )
                : e._e(),
              e.required
                ? i("span", {
                    class: [e.$style.required, "el-icon-star-on"],
                    style: { backgroundColor: e.theme.input_label_bg_color },
                  })
                : e._e(),
              e.unit
                ? i("span", { class: e.$style.unit }, [e._v(e._s(e.unit))])
                : e._e(),
              i(
                "div",
                {
                  class: e.$style.checkboxGroup,
                  style: [
                    { display: e.vertical ? "inline-block" : "flex" },
                    e.groupStyle,
                  ],
                },
                [
                  e.options
                    ? e._l(e.options, function (t) {
                        return i(
                          "label",
                          {
                            key: t[e.valueField],
                            class: [
                              e.$style.checkboxItem,
                              e.vertical
                                ? e.$style.checkboxItemVertical
                                : e.$style.checkboxItemNoVertical,
                              e.values.indexOf(t[e.valueField]) >= 0
                                ? [e.$style.checked, "el-icon-yixuan1"]
                                : [e.$style.unchecked, "el-icon-weixuan"],
                            ],
                            style: [
                              e.checkboxLabelStyle,
                              {
                                "--checkedColor":
                                  e.checkedColor || e.theme.color,
                                "--checkedHoverColor":
                                  e.checkedHoverColor || e.theme.color,
                                "--uncheckedColor": e.uncheckedColor,
                                "--uncheckedHoverColor":
                                  e.uncheckedHoverColor || e.theme.color,
                              },
                            ],
                            on: {
                              click: function (i) {
                                return e.checkClick(i, t[e.valueField]);
                              },
                            },
                          },
                          [
                            i("input", {
                              directives: [
                                {
                                  name: "model",
                                  rawName: "v-model",
                                  value: e.values,
                                  expression: "values",
                                },
                              ],
                              staticStyle: { display: "none" },
                              attrs: {
                                type: "checkbox",
                                disabled: e.disabled,
                                name: e.name,
                              },
                              domProps: {
                                value: t[e.valueField],
                                checked: Array.isArray(e.values)
                                  ? e._i(e.values, t[e.valueField]) > -1
                                  : e.values,
                              },
                              on: {
                                change: [
                                  function (i) {
                                    var s = e.values,
                                      n = i.target,
                                      o = !!n.checked;
                                    if (Array.isArray(s)) {
                                      var r = t[e.valueField],
                                        l = e._i(s, r);
                                      n.checked
                                        ? l < 0 && (e.values = s.concat([r]))
                                        : l > -1 &&
                                          (e.values = s
                                            .slice(0, l)
                                            .concat(s.slice(l + 1)));
                                    } else e.values = o;
                                  },
                                  e.multipleChange,
                                ],
                              },
                            }),
                            i("span", {
                              staticStyle: { "margin-left": "4px" },
                              domProps: { innerHTML: e._s(t[e.labelField]) },
                            }),
                          ]
                        );
                      })
                    : i(
                        "label",
                        {
                          class: [
                            e.$style.checkboxItem,
                            e.$style.single,
                            e.singleIsChecked
                              ? [e.$style.checked, "el-icon-yixuan1"]
                              : [e.$style.unchecked, "el-icon-weixuan"],
                          ],
                          style: [
                            !e.option && { paddingRight: "3px" },
                            {
                              "--checkedColor": e.checkedColor || e.theme.color,
                              "--checkedHoverColor":
                                e.checkedHoverColor || e.theme.color,
                              "--uncheckedColor": e.uncheckedColor,
                              "--uncheckedHoverColor":
                                e.uncheckedHoverColor || e.theme.color,
                            },
                          ],
                        },
                        [
                          i("input", {
                            staticStyle: { display: "none" },
                            attrs: {
                              type: "checkbox",
                              disabled: e.disabled,
                              name: e.name,
                            },
                            domProps: { checked: e.singleIsChecked },
                            on: { change: e.singleChange },
                          }),
                          i("span", { staticStyle: { "margin-left": "4px" } }, [
                            e._v(e._s(e.option)),
                          ]),
                        ]
                      ),
                ],
                2
              ),
              e.disabled
                ? i("div", {
                    class: e.$style.disabled,
                    style: { borderRadius: e.radius },
                  })
                : e._e(),
            ]
          );
        },
        Oe = [],
        $e = {
          name: "InputCheckbox",
          props: {
            value: [Array, String, Number, Boolean],
            option: String,
            true: { default: !0 },
            false: { default: !1 },
            options: Array,
            labelField: { type: String, default: "label" },
            valueField: { type: String, default: "value" },
            label: String,
            unit: String,
            required: Boolean,
            disabled: Boolean,
            name: String,
            border: { type: Boolean, default: !0 },
            borderColor: { type: String, default: $_theme.border_color_light },
            radius: { type: String, default: $_theme.input_radius },
            vertical: { type: Boolean, default: !1 },
            height: { type: Number, default: $_theme.inputHeight },
            labelMinWidth: { type: Number, default: 10 },
            groupStyle: { default: null },
            labelColor: { type: String, default: null },
            checkedColor: { type: String, default: null },
            checkedHoverColor: { type: String, default: null },
            uncheckedColor: { type: String, default: null },
            uncheckedHoverColor: { type: String, default: null },
            searchKey: { type: String, default: null },
            isLabel: { type: Boolean, default: !0 },
            allowChangeFun: { default: null },
          },
          data() {
            return { values: [], focused: !1 };
          },
          mounted() {
            Array.isArray(this.value) && (this.values = this.value);
          },
          methods: {
            singleChange(e) {
              let t = e.target.checked ? this.true : this.false;
              this.$emit("input", t), this.$emit("change", t);
            },
            multipleChange(e) {
              this.$emit("input", this.values),
                this.$emit("change", this.values);
            },
            checkClick(e, t) {
              this.allowChangeFun &&
                0 == this.allowChangeFun(t) &&
                e.preventDefault();
            },
          },
          watch: {
            value(e) {
              Array.isArray(e) && (this.values = e);
            },
          },
          computed: {
            singleIsChecked() {
              return this.value === this.true;
            },
            containerStyle() {
              return {
                borderRadius: this.radius,
                height: `${this.height}px`,
                borderColor: this.focused
                  ? this.theme.menubar_color
                  : this.borderColor,
                zIndex: this.focused ? this.theme.zindex() : "",
              };
            },
            labelStyle() {
              return {
                minWidth: this.labelMinWidth + "px",
                borderRightColor: this.theme.border_color_light,
                backgroundColor: this.labelColor
                  ? this.labelColor
                  : this.theme.input_label_bg_color,
              };
            },
            checkboxLabelStyle() {
              return { display: this.vertical ? "block" : "inline-block" };
            },
          },
        },
        Re = $e,
        Ae = i("dc0a");
      function Le(e) {
        this["$style"] = Ae["default"].locals || Ae["default"];
      }
      var De = Object(m["a"])(Re, Te, Oe, !1, Le, null, null),
        Ie = De.exports,
        Me = {
          components: {
            Window: Ce,
            Button: c["a"],
            InputRadio: j,
            InputCheckbox: Ie,
            InputDateTime: X,
            InputSelect: x["a"],
          },
          data() {
            return {
              files: null,
              type: "files",
              stime: null,
              etime: null,
              format: "",
              conditions: [1, 2, 3],
              times: [],
              state: 0,
            };
          },
          watch: {
            state: function (e) {
              0 == e &&
                (this._owner._socket.removeListener(
                  "ftp_size",
                  this.setFileSize
                ),
                this._timer && clearInterval(this._timer),
                (this._timer = null));
            },
          },
          beforeDestroy() {
            this.destroy = !0;
          },
          computed: { secondsToDHMS: () => k["h"] },
          created() {
            let e = new Set();
            this.files.forEach((t) => {
              (this.stime =
                !this.stime || this.stime > t.stime ? t.stime : this.stime),
                (this.etime =
                  !this.etime || this.etime < t.etime ? t.etime : this.etime),
                e.has(t.channel) ||
                  (e.add(t.channel),
                  this.times.push({
                    fileId: this._uuid(),
                    carId: t.carId,
                    plate: t.plate,
                    chnName: t.chnName,
                    channel: t.channel,
                    stime: "",
                    etime: "",
                    second: null,
                    ftp: 0,
                    ftpTip: "",
                    ftpTip2: "",
                    alarmFlag:
                      "0000000000000000000000000000000000000000000000000000000000000000",
                    avType: "0",
                    streamType: "0",
                    storeType: "1",
                    fileSize: "",
                  }));
            }),
              this.timeChg();
          },
          methods: {
            _uuid() {
              let e = () =>
                ((65536 * (1 + Math.random())) | 0).toString(16).substring(1);
              return e() + e() + e() + e() + e() + e() + e() + e();
            },
            init(e) {
              this._owner = e;
            },
            timeChg() {
              let e = Object(k["b"])(this.stime, this.etime);
              this.times.forEach((t) => {
                (t.stime = this.stime), (t.etime = this.etime), (t.second = e);
              });
            },
            startBtnClick() {
              if (0 == this.conditions.length)
                return w["a"].warn("请勾选网络条件！");
              if ("times" == this.type && this.stime > this.etime)
                return w["a"].warn("开始时间不能大于结束时间！");
              if (
                ((this._checks =
                  this.$refs[this.type + "_grid"].getCheckboxRecords()),
                0 == this._checks.length)
              )
                return w["a"].warn("请勾选要上传下载的记录！", this.$el);
              this.state = 1;
              let e = [
                -1 == this.conditions.indexOf(3) ? "0" : "1",
                -1 == this.conditions.indexOf(2) ? "0" : "1",
                -1 == this.conditions.indexOf(1) ? "0" : "1",
              ];
              (this._condition = parseInt(e.join(""), 2)),
                (this._ftp_index = this._ftp_count_ing = 0),
                this._checks.forEach((e) => (e.ftpTip2 = "排队等待..."));
              for (
                let t = 0;
                this._ftp_index < this._checks.length && t <= 4;
                this._ftp_index++
              ) {
                let e = this._checks[this._ftp_index];
                if (1 == e.ftp || 4 == e.ftp)
                  this._owner.downloadFile(e), (e.ftpTip2 = e.ftpTip);
                else {
                  switch ((this._ftp_count_ing++, this.type)) {
                    case "times":
                      this._owner.doFtpUpload(
                        e,
                        this._condition,
                        this.stime,
                        this.etime,
                        this.format,
                        this.onFtpEnd
                      );
                      break;
                    case "files":
                      this._owner.doFtpUpload(
                        e,
                        this._condition,
                        e.stime,
                        e.etime,
                        this.format,
                        this.onFtpEnd
                      );
                      break;
                  }
                  (e.ftpTip2 = "开始请求上传"), t++;
                }
              }
              this.endIf() ||
                (this._owner._socket.addListener("ftp_size", this.setFileSize),
                (this._timer = setInterval(
                  () =>
                    this._checks.forEach(
                      (e) =>
                        2 === e.ftp &&
                        this._owner._socket.send({
                          cmd: "ftp_size",
                          fileId: e.fileId,
                        })
                    ),
                  1e3
                )));
            },
            onFtpEnd() {
              this._ftp_count_ing--,
                this.destroy ||
                  1 != this.state ||
                  (this.ftpNext(), this.endIf());
            },
            ftpNext() {
              for (
                let e;
                this._ftp_index < this._checks.length;
                this._ftp_index++
              ) {
                if (
                  ((e = this._checks[this._ftp_index]),
                  1 != e.ftp && 4 != e.ftp)
                ) {
                  switch (
                    (this._ftp_index++, this._ftp_count_ing++, this.type)
                  ) {
                    case "times":
                      this._owner.doFtpUpload(
                        e,
                        this._condition,
                        this.stime,
                        this.etime,
                        this.format,
                        this.onFtpEnd
                      );
                      break;
                    case "files":
                      this._owner.doFtpUpload(
                        e,
                        this._condition,
                        e.stime,
                        e.etime,
                        this.format,
                        this.onFtpEnd
                      );
                      break;
                  }
                  return (
                    (e.ftpTip2 = "开始请求上传"),
                    this._ftp_index < this._checks.length
                  );
                }
                this._owner.downloadFile(e), (e.ftpTip2 = e.ftpTip);
              }
              return !1;
            },
            endIf() {
              for (let e = 0; e < this._checks.length; e++) {
                let t = this._checks[e];
                if (
                  0 == t.ftp &&
                  ("排队等待..." == t.ftpTip2 || "开始请求上传" == t.ftpTip2)
                )
                  return !1;
                if (2 == t.ftp || 3 == t.ftp) return !1;
              }
              return (this.state = 0), w["a"].success("上传任务全部结束"), !0;
            },
            setFileSize(e) {
              let t = e.data;
              console.log(t);
              let i = this.getFileItem(t[0]);
              i &&
                2 === i.ftp &&
                ((t = Number(t[1] || 0)),
                t > 0 &&
                  ((i.ftpTip2 = i.fileSize
                    ? Math.min(100, parseInt((100 * t) / Number(i.fileSize))) +
                      "% (" +
                      this.getFileSize({ row: { fileSize: t } }) +
                      ")"
                    : this.getFileSize({ row: { fileSize: t } })),
                  console.log(i.ftpTip2)));
            },
            getFileSize(e) {
              return this._owner.fileSize(e);
            },
            getFileItem(e) {
              if (!this._checks || 0 == this._checks.length) return null;
              for (let t, i = 0, s = this._checks.length; i < s; i++)
                if (((t = this._checks[i]), t.fileId == e)) return t;
              return null;
            },
            ftpCtr(e) {
              switch (e) {
                case 0:
                  this._checks.forEach(
                    (t) => 2 == t.ftp && this._owner.ftpCtr(t, e)
                  ),
                    (this.state = 2);
                  break;
                case 1:
                  this._checks.forEach(
                    (t) => 3 == t.ftp && this._owner.ftpCtr(t, e)
                  ),
                    (this.state = 1);
                  while (
                    this._ftp_index < this._checks.length &&
                    this._ftp_count_ing < 4
                  )
                    this.ftpNext();
                  break;
                case 2:
                  this._checks.forEach((t) => {
                    (2 != t.ftp && 3 != t.ftp) || this._owner.ftpCtr(t, e),
                      "排队等待..." == t.ftpTip2 && (t.ftpTip2 = "");
                  }),
                    (this.state = 0);
                  break;
              }
            },
          },
        },
        Pe = Me,
        Ne = Object(m["a"])(Pe, ue, pe, !1, null, null, null),
        Be = Ne.exports,
        Fe = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "Window",
            { ref: "w", attrs: { title: "设备文件上传", width: 310 } },
            [
              i(
                "div",
                { staticStyle: { padding: "5px" } },
                [
                  i("InputCheckbox", {
                    staticStyle: { width: "100%" },
                    attrs: {
                      disabled: e.file,
                      label: "网络条件",
                      options: [
                        { label: "WIFI", value: 1 },
                        { label: "LAN", value: 2 },
                        { label: "3G/4G", value: 3 },
                      ],
                    },
                    model: {
                      value: e.conditions,
                      callback: function (t) {
                        e.conditions = t;
                      },
                      expression: "conditions",
                    },
                  }),
                  i("InputDateTime", {
                    staticStyle: { width: "100%", "margin-top": "5px" },
                    attrs: {
                      disabled: e.file,
                      label: "开始时间",
                      type: "YMDHNS",
                    },
                    model: {
                      value: e.stime,
                      callback: function (t) {
                        e.stime = t;
                      },
                      expression: "stime",
                    },
                  }),
                  i("InputDateTime", {
                    staticStyle: { width: "100%", "margin-top": "5px" },
                    attrs: {
                      disabled: e.file,
                      label: "结束时间",
                      type: "YMDHNS",
                    },
                    model: {
                      value: e.etime,
                      callback: function (t) {
                        e.etime = t;
                      },
                      expression: "etime",
                    },
                  }),
                  i("InputSelect", {
                    staticStyle: { width: "100%", "margin-top": "5px" },
                    attrs: {
                      disabled: e.file,
                      label: "下载格式",
                      options: [
                        { label: "原始格式", value: "" },
                        { label: "MP4格式", value: "mp4" },
                        { label: "FLV格式", value: "flv" },
                        { label: "MPEG-TS格式", value: "mpegts" },
                      ],
                    },
                    model: {
                      value: e.format,
                      callback: function (t) {
                        e.format = t;
                      },
                      expression: "format",
                    },
                  }),
                ],
                1
              ),
              i(
                "InputLabel",
                {
                  directives: [
                    {
                      name: "show",
                      rawName: "v-show",
                      value: e.file,
                      expression: "file",
                    },
                  ],
                  staticStyle: {
                    margin: "0 5px 5px 5px",
                    width: "calc(100% - 10px)",
                    "line-height": "32px",
                  },
                  attrs: { label: "上传结果" },
                },
                [
                  e._v(
                    "\n      " +
                      e._s(e.result) +
                      "  " +
                      e._s(e.file ? e.sizeUnit(e.file.fileSize) : "") +
                      "\n  "
                  ),
                ]
              ),
              i(
                "template",
                { slot: "footer" },
                [
                  e.file
                    ? e._e()
                    : i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          on: {
                            click: function (t) {
                              return e.$refs.w.close();
                            },
                          },
                        },
                        [e._v("取消")]
                      ),
                  e.file
                    ? e._e()
                    : i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          attrs: { type: "primary" },
                          on: {
                            click: function (t) {
                              return e.submit();
                            },
                          },
                        },
                        [e._v("确定")]
                      ),
                  e.file && 2 == e.file.ftp
                    ? i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          attrs: { disabled: !e.file.ftpEnabled },
                          on: {
                            click: function (t) {
                              return e.ftpCtr(0);
                            },
                          },
                        },
                        [e._v(" 暂停上传 ")]
                      )
                    : e._e(),
                  e.file && 3 == e.file.ftp
                    ? i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          attrs: { disabled: !e.file.ftpEnabled },
                          on: {
                            click: function (t) {
                              return e.ftpCtr(1);
                            },
                          },
                        },
                        [e._v(" 继续上传 ")]
                      )
                    : e._e(),
                  !e.file || (2 != e.file.ftp && 3 != e.file.ftp)
                    ? e._e()
                    : i(
                        "Button",
                        {
                          staticStyle: {
                            margin: "8px 4px",
                            "min-width": "80px",
                          },
                          attrs: { disabled: !e.file.ftpEnabled },
                          on: {
                            click: function (t) {
                              return e.ftpCtr(2);
                            },
                          },
                        },
                        [e._v(" 取消上传 ")]
                      ),
                ],
                1
              ),
            ],
            2
          );
        },
        Ve = [],
        ze = {
          components: {
            Window: Ce,
            Button: c["a"],
            InputLabel: j,
            InputRadio: j,
            InputCheckbox: Ie,
            InputDateTime: X,
            InputSelect: x["a"],
          },
          data() {
            return {
              conditions: [1, 2, 3],
              stime: null,
              etime: null,
              format: "",
              callback: null,
              file: null,
            };
          },
          beforeDestroy() {
            this._timer && (clearInterval(this._timer), (this._timer = null)),
              this._callback &&
                (this._socket.removeListener("ftp_ctr", this._callback),
                (this._callback = null)),
              this.file &&
                (2 == this.file.ftp || 3 == this.file.ftp) &&
                this._socket.send({
                  cmd: "ftp_ctr",
                  fileId: this.file.fileId,
                  ctr: 2,
                }),
              this._socket &&
                (this._socket.removeListener("ftp_size", this.getFileSize),
                (this._socket = null)),
              (this._now_ws = null);
          },
          computed: {
            result: function () {
              return this.file
                ? 0 == this.file.ftp
                  ? this.file.ftpTip
                  : 2 == this.file.ftp
                  ? this.file.ftpTip
                  : 3 == this.file.ftp
                  ? this.file.ftpTip
                  : 4 == this.file.ftp
                  ? "上传完成"
                  : this.file.ftpTip
                : "";
            },
          },
          methods: {
            submit() {
              if (0 == this.conditions.length)
                return w["a"].warn("请勾选网络条件！");
              if (this.stime > this.etime)
                return w["a"].warn("开始时间不能大于结束时间！");
              let e = [
                  -1 == this.conditions.indexOf(3) ? "0" : "1",
                  -1 == this.conditions.indexOf(2) ? "0" : "1",
                  -1 == this.conditions.indexOf(1) ? "0" : "1",
                ],
                t = this.callback(
                  parseInt(e.join(""), 2),
                  this.stime,
                  this.etime,
                  this.format
                );
              if (null == t) return this.$refs.w.close();
              (this.file = t[0]),
                this.$nextTick(() => labelWidthFit(this.$refs.t)),
                (this._socket = t[1]),
                this._socket.addListener("ftp_size", this.getFileSize),
                (this._onTimer = () =>
                  2 === this.file.ftp &&
                  this._socket.send({
                    cmd: "ftp_size",
                    fileId: this.file.fileId,
                  })),
                (this._timer = setInterval(() => this._onTimer(), 1e3));
            },
            getFileSize(e) {
              let t = e.data;
              this.file.fileId == t[0] &&
                2 === this.file.ftp &&
                ((t = Number(t[1])), (this.file.fileSize = t));
            },
            sizeUnit(e) {
              if (e && e > 0) {
                let t = "KB";
                return (
                  (e = parseInt(e / 1024)),
                  e >= 1024 && ((e /= 1024), (t = "MB")),
                  e >= 1024 && ((e /= 1024), (t = "GB")),
                  Number(e.toFixed(2)) + t
                );
              }
              return "";
            },
            ftpCtr(e) {
              (this.file.ftpEnabled = !1),
                (this.file.ftpTip =
                  0 === e ? "正在暂停" : 1 === e ? "正在继续" : "正在取消"),
                (this._callback = (t) => {
                  let i = t.data.split(".");
                  i[0] == this.file.fileId &&
                    ((this.file.ftpEnabled = !0),
                    this._socket.removeListener("ftp_ctr", this._callback),
                    (this._callback = null),
                    0 === e
                      ? 0 === t.ret
                        ? ((this.file.ftp = 3), (this.file.ftpTip = "已暂停"))
                        : (this.file.ftpTip =
                            "暂停失败:" + Object(C["a"])(t.ret))
                      : 1 === e
                      ? 0 === t.ret
                        ? ((this.file.ftp = 2), (this.file.ftpTip = "正在上传"))
                        : (this.file.ftpTip =
                            "继续失败:" + Object(C["a"])(t.ret))
                      : 2 === e &&
                        (0 === t.ret
                          ? ((this.file.ftp = 0),
                            (this.file.ftpTip = "取消成功"))
                          : (this.file.ftpTip =
                              "取消失败:" + Object(C["a"])(t.ret))));
                }),
                this._socket.addListener("ftp_ctr", this._callback),
                this._socket.send({
                  cmd: "ftp_ctr",
                  fileId: this.file.fileId,
                  ctr: e,
                });
            },
          },
        },
        je = ze,
        He = Object(m["a"])(je, Fe, Ve, !1, null, null, null),
        Ue = He.exports;
      function We(e) {
        let t =
          arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null;
        if (!e) return e;
        let i = {};
        for (let s in e) (t && t.has(s)) || (i[s] = e[s]);
        return i;
      }
      var Ge = i("4a66"),
        Ze = {
          components: { Button: c["a"] },
          props: {
            avh_dnl: { type: Boolean, default: !1 },
            avh_del: { type: Boolean, default: !1 },
            avh_ftp: { type: Boolean, default: !1 },
            tooglePlay: Function,
          },
          data() {
            return { files: null, fromTmn: !1 };
          },
          _socket: null,
          activated() {
            this._onTimer &&
              !this._timer &&
              (this._timer = setInterval(() => this._onTimer(), 1e3));
          },
          deactivated() {
            this._timer && (clearInterval(this._timer), (this._timer = null));
          },
          beforeDestroy() {
            this.destroy();
          },
          mounted() {
            this.secondsToDHMS = k["h"];
          },
          methods: {
            destroy() {
              (this._socket = null),
                this._timer &&
                  (clearInterval(this._timer), (this._timer = null));
            },
            batchFtpClick() {
              if (!this.files || 0 == this.files.length)
                return w["a"].warn("无下载文件！");
              Ge["a"].open(Be, { files: [...this.files] }).init(this);
            },
            setSocket(e) {
              (this._socket = e),
                this._socket.addListener("ftp_size", this.getFileSize),
                (this._onTimer = () => {
                  this._socket &&
                    this.$parent.socketIsOpen &&
                    this.files &&
                    this.files.forEach(
                      (e) =>
                        2 === e.ftp &&
                        this._socket.send({ cmd: "ftp_size", fileId: e.fileId })
                    );
                }),
                (this._timer = setInterval(() => this._onTimer(), 1e3));
            },
            setFiles(e, t) {
              (this.files = e),
                (this.fromTmn = t),
                this.$refs.grid.clearCurrentRow(),
                e &&
                  e.forEach(
                    (e) => 2 === e.ftp && (e.ftpTip = e.ftpTip2 = "正在上传")
                  );
            },
            fileSize(e) {
              let t = e.row;
              if (((t = t.fileSize), 0 === t)) return "0KB";
              if (!t) return "";
              let i = "KB";
              return (
                (t = parseInt(t / 1024)),
                t >= 1024 && ((t /= 1024), (i = "MB")),
                t >= 1024 && ((t /= 1024), (i = "GB")),
                Number(t.toFixed(2)) + i
              );
            },
            avType(e) {
              let t = e.row;
              return ["音视频", "音频", "视频"][parseInt(t.avType || 0)];
            },
            streamType(e) {
              let t = e.row;
              return ["", "主码流", "子码流"][parseInt(t.streamType || 1)];
            },
            storeType(e) {
              let t = e.row;
              return ["", "主存储器", "灾备存储器"][parseInt(t.storeType || 1)];
            },
            src(e) {
              let t = e.row;
              return {
                TMN: "设备",
                M0: "实时调阅",
                M1: "历史调阅",
                FTP: "FTP上传",
                M2: "对讲(来自设备)",
                M3: "对讲(来自平台)",
                M4: "广播(来自平台)",
              }[t.src];
            },
            alarmFlag(e) {
              let t = e.row;
              if (!t.alarmFlag || String(t.alarmFlag).length < 64) return "";
              let i = [];
              return (
                this._getAlarmList().forEach(
                  (e) =>
                    "1" == String(t.alarmFlag).charAt(63 - e.id) &&
                    i.push(e.name)
                ),
                0 == i.length ? "" : i.join(",")
              );
            },
            fmt(e) {
              let t = e.row;
              return t.fileName
                ? ((t = t.fileName.split(".")),
                  1 == t.length
                    ? ""
                    : ((t = t[t.length - 1]), { raw: "rtp" }[t] || t))
                : "";
            },
            onDownloadClick(e, t) {
              if (t.fileName) {
                if (-1 == t.fileName.indexOf("FTP"))
                  return this.downloadFile(t);
                this._onMouseClick && this._onMouseClick(),
                  (this._menu = Ge["a"].open(de, null, null, null, null, null, {
                    list: [
                      { format: "", name: "下载原始格式" },
                      { format: "mp4", name: "下载MP4格式" },
                      { format: "flv", name: "下载FLV格式" },
                      { format: "mpegts", name: "下载MPEG-TS格式" },
                    ],
                    labelField: "name",
                    itemStyle: { cursor: "pointer" },
                    iconCssFunction: () => "el-icon-download",
                    iconStyle: {
                      margin: "-2px 2px 0 0",
                      fontSize: "16px",
                      verticalAlign: "middle",
                    },
                  })),
                  this._menu.$el.classList.add(this.$style.menu),
                  this._menu.$on("click", (e) =>
                    this.downloadFile(t, e.format)
                  ),
                  (this._menu.$el.style.left = e.clientX + 10 + "px"),
                  (this._menu.$el.style.top = e.clientY + "px"),
                  e.clientY + this._menu.$el.clientHeight >
                    document.body.offsetHeight - 33 &&
                    (this._menu.$el.style.top =
                      document.body.offsetHeight -
                      this._menu.$el.clientHeight -
                      33 +
                      "px"),
                  setTimeout(() => {
                    document.addEventListener(
                      "click",
                      (this._onMouseClick = () => {
                        this._menu.$destroy(),
                          document.body.removeChild(this._menu.$el),
                          document.removeEventListener(
                            "click",
                            this._onMouseClick
                          ),
                          (this._menu = this._onMouseClick = null);
                      })
                    );
                  }, 100);
              }
            },
            downloadFile(e) {
              let t =
                arguments.length > 1 && void 0 !== arguments[1]
                  ? arguments[1]
                  : "";
              if (!e.fileName) return;
              let i = (s) => {
                let n = s.downloadPort;
                this._socket.removeListener("cfg", i);
                let o =
                  ("https:" == location.protocol ? "https:" : "http:") +
                  "//" +
                  this.$parent._cfg.ip +
                  ":" +
                  n +
                  "/download/44&" +
                  e.carId +
                  "&" +
                  e.fileName +
                  "&" +
                  t;
                window.open(o);
              };
              this._socket.addListener("cfg", i),
                this._socket.send({ cmd: "cfg" });
            },
            deleteFile(e) {
              w["a"].comfirm("你确定要删除该文件吗？", (t) => {
                if (!t) return;
                let i = (t) => {
                  let s = t.ret,
                    n = t.data;
                  if (n == e.fileName) {
                    if (0 != s) return w["a"].warn("文件删除失败");
                    this._socket.removeListener("file_delete", i);
                    let t = this.files.indexOf(e);
                    this.files.splice(t, 1),
                      w["a"].success("文件删除成功"),
                      this.$refs.grid.clearCurrentRow();
                  }
                };
                this._socket.addListener("file_delete", i),
                  this._socket.send({
                    cmd: "file_delete",
                    carId: e.carId,
                    fileName: e.fileName,
                  });
              });
            },
            getFileSize(e) {
              let t = e.data,
                i = this.getFileItem(t[0]);
              i &&
                2 === i.ftp &&
                ((t = Number(t[1])),
                t > 0 &&
                  (i.ftpTip = i.ftpTip2 =
                    i.fileSize
                      ? Math.min(
                          100,
                          parseInt((100 * t) / Number(i.fileSize))
                        ) +
                        "% (" +
                        this.fileSize({ row: { fileSize: t } }) +
                        ")"
                      : this.fileSize({ row: { fileSize: t } })));
            },
            getFileItem(e) {
              if (!this.files || 0 == this.files.length) return null;
              for (let t, i = 0, s = this.files.length; i < s; i++)
                if (((t = this.files[i]), t.fileId == e)) return t;
              return null;
            },
            selectedItem(e) {
              e
                ? this.$refs.grid.setCurrentRow(e)
                : this.$refs.grid.clearCurrentRow(),
                e && this.$refs.grid.scrollToRow(e);
            },
            _getAlarmList() {
              return this._alarms
                ? this._alarms
                : (this._alarms = [
                    { id: 0, name: "紧急报警" },
                    { id: 1, name: "超速报警" },
                    { id: 2, name: "疲劳驾驶" },
                    { id: 3, name: "危险预警" },
                    { id: 4, name: "GNSS模块故障" },
                    { id: 5, name: "GNSS天线未接/被剪" },
                    { id: 6, name: "GNSS天线短路" },
                    { id: 7, name: "终端主电源欠压" },
                    { id: 8, name: "终端主电源掉电" },
                    { id: 9, name: "终端LCD或显示器故障" },
                    { id: 10, name: "TTS模块故障" },
                    { id: 11, name: "摄像头故障" },
                    { id: 12, name: "道路运输证IC卡模块故障" },
                    { id: 13, name: "超速预警" },
                    { id: 14, name: "疲劳驾驶预警" },
                    { id: 15, name: "违规行驶报警" },
                    { id: 16, name: "胎压预警" },
                    { id: 17, name: "右转盲区异常报警" },
                    { id: 18, name: "当天累计驾驶超时" },
                    { id: 19, name: "超时停车" },
                    { id: 20, name: "进出区域" },
                    { id: 21, name: "进出路线" },
                    { id: 22, name: "路段行驶时间不足/过长" },
                    { id: 23, name: "路线偏离报警" },
                    { id: 24, name: "车辆VSS故障" },
                    { id: 25, name: "车辆油量异常" },
                    { id: 26, name: "车辆被盗" },
                    { id: 27, name: "车辆非法点火" },
                    { id: 28, name: "车辆非法位移" },
                    { id: 29, name: "碰撞预警" },
                    { id: 30, name: "侧翻预警" },
                    { id: 31, name: "非法开门报警" },
                    { id: 32, name: "视频信号丢失报警" },
                    { id: 33, name: "视频信号遮挡报警" },
                    { id: 34, name: "存储单元故障报警" },
                    { id: 35, name: "其它视频设备故障报警" },
                    { id: 36, name: "客车超员报警" },
                    { id: 37, name: "异常驾驶行为报警" },
                    { id: 38, name: "特殊报警录像达到存储阈值" },
                  ]);
            },
            ftpUpload(e) {
              Ge["a"].open(Ue, {
                stime: e.stime,
                etime: e.etime,
                callback: (t, i, s, n) => {
                  let o = e.stime == i && e.etime == s;
                  return (
                    o ||
                      ((e = We(e)),
                      (e.stime = i),
                      (e.etime = s),
                      (e.fileId = this.$parent._uuid()),
                      (e.fileSize = "")),
                    this.doFtpUpload(e, t, i, s, n),
                    o ? null : [e, this._socket]
                  );
                },
              });
            },
            doFtpUpload(e, t, i, s, n) {
              let o =
                arguments.length > 5 && void 0 !== arguments[5]
                  ? arguments[5]
                  : null;
              (e.startTime = i =
                i
                  .split(/[-| |:]/)
                  .join("")
                  .substr(2)),
                (e.endTime = s =
                  s
                    .split(/[-| |:]/)
                    .join("")
                    .substr(2)),
                (e.ftpEnabled = !1),
                (e.ftpTip = e.ftpTip2 = "");
              let r = (t) => {
                let i = t.data.split(".");
                if (i.shift() == e.fileId) {
                  if (((e.ftpEnabled = !0), 0 !== t.ret))
                    return (
                      this._socket.removeListener("ftp_upload", r),
                      (e.ftp = 0),
                      (e.ftpTip = e.ftpTip2 =
                        "上传失败:" + Object(C["a"])(t.ret)),
                      void (o && o(e))
                    );
                  "ftp1" == i.shift()
                    ? ((e.ftp = 2), (e.ftpTip = e.ftpTip2 = "正在上传"))
                    : (this._socket.removeListener("ftp_upload", r),
                      (e.ftp = 4),
                      (e.ftpTip = e.ftpTip2 = "上传完成"),
                      i.length > 0 &&
                        ((e.fileName = i.join(".")), this.downloadFile(e, n)),
                      o && o(e));
                }
              };
              this._socket.addListener("ftp_upload", r),
                this._socket.send({
                  cmd: "ftp_upload",
                  fileId: e.fileId,
                  carId: e.carId,
                  channel: e.channel,
                  stime: i,
                  etime: s,
                  alarm: e.alarmFlag,
                  avtype: e.avType,
                  stream: e.streamType,
                  storage: e.storeType,
                  condition: t,
                  fileSize: "" + e.fileSize,
                });
            },
            ftpCtr(e, t) {
              (e.ftpEnabled = !1), (e.ftpTip = e.ftpTip2 = "");
              let i = (s) => {
                let n = s.data.split(".");
                n[0] == e.fileId &&
                  ((e.ftpEnabled = !0),
                  this._socket.removeListener("ftp_ctr", i),
                  0 === t
                    ? 0 === s.ret
                      ? (e.ftp = 3)
                      : (e.ftpTip = e.ftpTip2 =
                          "暂停失败:" + Object(C["a"])(s.ret))
                    : 1 === t
                    ? 0 === s.ret
                      ? (e.ftp = 2)
                      : (e.ftpTip = e.ftpTip2 =
                          "继续失败:" + Object(C["a"])(s.ret))
                    : 2 === t &&
                      (0 === s.ret
                        ? ((e.ftp = 0), (e.ftpTip = e.ftpTip2 = ""))
                        : (e.ftpTip = e.ftpTip2 =
                            "取消失败:" + Object(C["a"])(s.ret))));
              };
              this._socket.addListener("ftp_ctr", i),
                this._socket.send({ cmd: "ftp_ctr", fileId: e.fileId, ctr: t });
            },
          },
        },
        Ye = Ze,
        qe = i("63b4");
      function Xe(e) {
        this["$style"] = qe["default"].locals || qe["default"];
      }
      var Ke = Object(m["a"])(Ye, te, ie, !1, Xe, null, null),
        Je = Ke.exports,
        Qe = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            { staticStyle: { "overflow-x": "auto", "user-select": "none" } },
            [
              i(
                "div",
                {
                  ref: "main",
                  staticStyle: {
                    height: "100%",
                    width: "100%",
                    position: "relative",
                  },
                  on: {
                    click: function (t) {
                      return e.onClick(t);
                    },
                    mousewheel: function (t) {
                      return e.onwheel(t);
                    },
                    mousedown: function (t) {
                      return e.onDragStart(t);
                    },
                    mouseleave: function (t) {
                      (e.showLine = !1), e.onDragEnd();
                    },
                  },
                },
                [
                  i("div", {
                    ref: "bars",
                    class: e.$style.bars,
                    on: {
                      mousemove: function (t) {
                        return e._onMouseMove(t);
                      },
                    },
                  }),
                  i("div", { ref: "timeline", class: e.$style.timeline }),
                  i(
                    "div",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.showLine,
                          expression: "showLine",
                        },
                      ],
                      ref: "tipline",
                      class: e.$style.tip_line,
                    },
                    [
                      i("div", {
                        ref: "tiptext",
                        class: e.$style.tip_text,
                        on: {
                          mousemove: function (t) {
                            e.showLine = !1;
                          },
                        },
                      }),
                    ]
                  ),
                ]
              ),
            ]
          );
        },
        et = [],
        tt = {
          props: { chartPlay: Function, tab: String },
          data() {
            return { showLine: !1 };
          },
          beforeDestroy() {
            window.removeResizeListener(this.$refs.main, this._onResize);
          },
          watch: {
            tab: function (e) {
              "time" == e && this._onResize();
            },
          },
          mounted() {
            (this._ratio = 1), (this._date = new Date());
            let e = "2020-01-01 00:00:00",
              t = "2020-01-01 23:59:59";
            this._setTimeline(Object(k["g"])(e).getTime(), 864e5, e, t),
              window.addResizeListener(this.$refs.main, this._onResize);
          },
          methods: {
            onwheel(e) {
              this._ratio =
                e.deltaY < 0
                  ? Math.min(this._max_ratio, 1.5 * this._ratio)
                  : Math.max(1, this._ratio / 1.5);
              let t = this.$refs.main.clientWidth,
                i =
                  e.screenX -
                  this.$el.getBoundingClientRect().left +
                  this.$el.scrollLeft;
              this.$refs.main.style.width = 100 * this._ratio + "%";
              let s = (i * this.$refs.main.clientWidth) / t;
              (this.$el.scrollLeft = Math.max(0, this.$el.scrollLeft + s - i)),
                this.showLine && (this.$refs.tipline.style.left = s + "px");
            },
            onClick(e) {
              if (e.clientX != this._x) return;
              if (!this.showLine) return;
              let t = new Date().getTime();
              return !this._click_time || t - this._click_time > 1e3
                ? ((this._click_time = t),
                  this.chartPlay(this._tipfile, this._tiptime))
                : void 0;
            },
            onDragStart(e) {
              (this._x = e.clientX),
                (this._sl = this.$el.scrollLeft),
                (this._dragstart = !0),
                this.$refs.main.addEventListener("mousemove", this.onDraging),
                this.$refs.main.addEventListener("mouseup", this.onDragEnd);
            },
            onDraging(e) {
              this.$el.scrollLeft = this._sl + this._x - e.clientX;
            },
            onDragEnd(e) {
              this._dragstart &&
                (this.$refs.main.removeEventListener(
                  "mousemove",
                  this.onDraging
                ),
                this.$refs.main.removeEventListener("mouseup", this.onDragEnd),
                (this._dragstart = !1));
            },
            setFiles(e, t, i, s) {
              (this._bars = []),
                (this._hours = []),
                (this.showLine = !1),
                (this._ratio = 1),
                (this.$refs.bars.innerHTML = ""),
                (this.$refs.tipline.style.left = "0px"),
                (this.$refs.main.style.width = "100%"),
                (t += ":00"),
                (i += ":59");
              let n = 0,
                o = 0;
              if (e.length > 0) {
                let r,
                  l = [],
                  a = {},
                  h = this._toDate(t, -7),
                  c = this._toDate(i, 7);
                e.forEach((e) => {
                  if (Object(k["b"])(e.stime, e.etime) > 604800) return;
                  if (
                    e.stime < "2000-01-01 00:00:00" ||
                    e.stime > "2200-01-01 00:00:00"
                  )
                    return;
                  if (
                    e.etime < "2000-01-01 00:00:00" ||
                    e.etime > "2200-01-01 00:00:00"
                  )
                    return;
                  if (e.stime < h || e.etime > c) return;
                  let s = parseInt(e.channel);
                  (r = a[s]),
                    !r && l.push(s) && (a[s] = r = []),
                    r.push(e),
                    t > e.stime && (t = e.stime),
                    i < e.etime && (i = e.etime);
                }),
                  l.sort((e, t) => (e < t ? -1 : 1)),
                  "00:00" != t.substr(14) && (t = t.substr(0, 14) + "00:00"),
                  (n = Object(k["b"])(t, i)),
                  (o = Object(k["g"])(t).getTime());
                let d = 100 / l.length + "%";
                l.forEach((e) => {
                  let t = document.createElement("div");
                  (t.style.height = d),
                    (t.style.width = "100%"),
                    (t.style.position = "relative"),
                    (r = a[e]),
                    !s && r.sort((e, t) => (e.stime < t.stime ? -1 : 1)),
                    r.forEach((e) => {
                      let i = this._createElement("div", this.$style.bar);
                      (i.file = e),
                        (i.stime = Object(k["g"])(e.stime).getTime()),
                        (i.lrate = e.second / n),
                        (i.srate = (i.stime - o) / (1e3 * n)),
                        (i.long = 1e3 * e.second),
                        this._bars.push(i),
                        t.appendChild(i);
                    }),
                    this.$refs.bars.appendChild(t);
                });
              } else
                (n = Object(k["b"])(t, i)), (o = Object(k["g"])(t).getTime());
              this._setTimeline(o, 1e3 * n, t, i), this._onResize();
            },
            _toDate(e, t) {
              return (
                (e = Object(k["g"])(e)),
                e.setDate(e.getDate() + t),
                Object(k["c"])(e, "YYYY-MM-DD HH:NN:SS")
              );
            },
            _onMouseMove(e) {
              if (!e.target.file) return (this.showLine = !1);
              this.showLine = !0;
              let t = this.$el.getBoundingClientRect(),
                i = this.$el.scrollLeft;
              (this.$refs.tipline.style.left = e.clientX - t.left + i + "px"),
                (this.$refs.tiptext.style.top = e.clientY - t.top + "px");
              let s = e.target,
                n = s.file.stime;
              if (s.clientWidth > 5) {
                let t = s.getBoundingClientRect().left;
                this._date.setTime(
                  s.stime +
                    (s.long * Math.max(e.clientX - t, 0)) / s.clientWidth
                ),
                  (n = Object(k["c"])(this._date, "YYYY-MM-DD HH:NN:SS")),
                  n < s.file.stime
                    ? (n = s.file.stime)
                    : n > s.file.etime && (n = s.file.etime);
              }
              (this.$refs.tiptext.innerHTML = s.file.chnName + " " + n),
                e.clientX - t.left > this.$refs.tiptext.clientWidth
                  ? ((this.$refs.tiptext.style.left = ""),
                    (this.$refs.tiptext.style.right = "10px"))
                  : ((this.$refs.tiptext.style.left = "15px"),
                    (this.$refs.tiptext.style.right = "")),
                (this._tiptime = n),
                (this._tipfile = s.file);
            },
            _setTimeline(e, t, i, s) {
              (this._max_ratio = Math.max(1, (20 * t) / 864e5)),
                (this.$refs.timeline.innerHTML = ""),
                (this._hours = []);
              let n,
                o = e;
              n =
                "59:59" == s.substr(14)
                  ? Object(k["g"])(s).getTime() + 1e3
                  : Object(k["g"])(s.substr(0, 14) + "00:00").getTime();
              while (o <= n) {
                this._date.setTime(o);
                let i = Object(k["c"])(this._date, "HH");
                o == n && this._hours.length > 0 && "00" == i && (i = "24");
                let s = this._createElement("span", this.$style.hour_label, i);
                this.$refs.timeline.appendChild(s);
                let r = this._createElement("div", this.$style.hour_line);
                this.$refs.timeline.appendChild(r),
                  this._hours.push([Math.min(1, (o - e) / t), s, r]),
                  (o += 36e5);
              }
            },
            _createElement(e, t, i) {
              let s = document.createElement(e);
              return t && (s.className = t), i && (s.innerHTML = i), s;
            },
            _onResize() {
              let e = this.$refs.timeline.clientWidth,
                t = 1,
                i = this._hours.length;
              if (0 != e) {
                while (e - 30 * i < 0) t++, (i /= 1.5);
                this._hours.forEach((i, s) => {
                  let n = Math.min(i[0] * e, e - 2),
                    o = s % t == 0;
                  (i[2].style.left = n + "px"),
                    (i[1].style.left = n - 6 + "px"),
                    (i[1].style.display = o ? "" : "none"),
                    (i[2].style.height = (o ? 8 : 4) + "px");
                }),
                  this._bars &&
                    this._bars.forEach((t) => {
                      (t.style.left = t.srate * e - 1 + "px"),
                        (t.style.width = Math.max(t.lrate * e, 1) + "px");
                    });
              }
            },
          },
        },
        it = tt,
        st = i("2fbf");
      function nt(e) {
        this["$style"] = st["default"].locals || st["default"];
      }
      var ot = Object(m["a"])(it, Qe, et, !1, nt, null, null),
        rt = ot.exports,
        lt = i("360e"),
        at = {
          components: {
            Split: _,
            ButtonBar: b["a"],
            Button: c["a"],
            Slider: y["a"],
            InputSelect: x["a"],
            SearchToolbar: ee,
            PlaybackGrid: Je,
            FileTimeChart: rt,
          },
          data() {
            return {
              plate: null,
              sim: null,
              chns: null,
              avh_dnl: !1,
              avh_del: !1,
              avh_ftp: !1,
              tab: "time",
              mode: 1,
              way_multiple: 0,
              way: 0,
              multiple: 0,
              ratio: 0,
              fromTmn: !0,
              tools: { playing: !1, loading: !1 },
              seeker: { max: 0, value: 0, ing: !1 },
              socketIsOpen: !1,
              querying: !1,
              files: null,
              model: 1,
            };
          },
          _socket: null,
          mounted() {
            (this._sessionId = this._uuid()),
              (this._cfg = {}),
              (this._row = this._col = 0),
              (this._player_map = {}),
              (this._player_list = []),
              addResizeListener(this.$refs.videos, this._onResize),
              window.onVideoPlayBackLoad &&
                window.onVideoPlayBackLoad(flvjs.isSupported(), this);
          },
          created() {
            this._PlayerClass = r["a"].extend(L);
          },
          watch: {
            tab: function (e) {
              "time" == e && this.$nextTick(() => this.$refs.chart._onResize());
            },
            way_multiple: function (e) {
              (e = e < 10 ? e + "0" : e + ""),
                (this.way = parseInt(e.substr(0, 1))),
                (this.multiple = parseInt(e.substr(1, 1))),
                [...this._player_list].forEach((e) =>
                  e.way_multiple(this.way, this.multiple)
                );
            },
          },
          methods: {
            init(e) {
              (e.user_pwd = encodeURI(e.user || e.userId || "")),
                e.pwd && (e.user_pwd += "*" + e.pwd),
                (this._cfg = e),
                (this.model = parseInt(e.model || 1)),
                (this.avh_dnl = e.download || !1),
                (this.avh_del = e.delfile || !1),
                (this.avh_ftp = e.ftpfile || !1),
                (this._videoUrl =
                  ("https:" == location.protocol ? "wss://" : "ws://") +
                  e.ip +
                  ":" +
                  e.port);
              let t = 1,
                i = 1;
              (this._socket = new lt["a"](
                this._sessionId,
                this._videoUrl + "/video",
                () => {
                  (this.socketIsOpen = !0),
                    this._onServerOpen(t++),
                    e.onServerOpen && e.onServerOpen(t - 1);
                },
                () => {
                  (this.socketIsOpen = !1),
                    e.onServerClose && e.onServerClose(i++);
                }
              )),
                this._socket.connect(),
                this._socket.addListener("his_tmn_play", this._on_his_tmn_play),
                this._socket.addListener("play_flow", this._on_play_flow),
                this._socket.addListener("record_start", this._on_record_start),
                this.$refs.search.init(e),
                this.$refs.grid && this.$refs.grid.setSocket(this._socket),
                this._setPlayTimeout(parseInt(e.timeout || 0)),
                3 == this.model &&
                  this.$nextTick(() => (this.$refs.top.style.height = "100%"));
            },
            _getSeekerTime(e) {
              return this._player ? this._player.getSeekerTime(e) : e;
            },
            _newPlayer() {
              let e = this._uuid(),
                t = new this._PlayerClass({
                  propsData: {
                    uuid: e,
                    user_pwd: this._cfg.user_pwd,
                    onClose: this._onPlayerClose,
                    onVoiceOpen: this._onVoiceOpen,
                    getSocket: () => this._socket,
                  },
                });
              return (
                this._player_list.push(t),
                (this._player_map[e] = t),
                (t._owner = this),
                t.$mount(),
                (t.$el.onclick = () => (
                  this._selectPlayer(t), this.$refs.grid.selectedItem(t.file)
                )),
                (t.$el.ondblclick = () => this._onPlayerDbclick(t)),
                (t.$el.style.position = "absolute"),
                this.$refs.videos.appendChild(t.$el),
                t
              );
            },
            _selectPlayer(e) {
              return (
                (this.tools = e.tools),
                (this.seeker = e.seeker),
                (e.border = 1 != this._row || 1 != this._col),
                this._player == e
                  ? e
                  : (this._player && (this._player.border = !1),
                    (this._player = e),
                    e)
              );
            },
            _onPlayerDbclick(e) {
              if (
                ((this._playerIsMax = !this._playerIsMax), !this._playerIsMax)
              )
                return this._regrid();
              this._player_list.forEach(
                (t) => t != e && (t.$el.style.display = "none")
              ),
                (e.$el.style.width = this.$refs.videos.clientWidth + "px"),
                (e.$el.style.height = this.$refs.videos.clientHeight + "px"),
                (e.$el.style.top = "0px"),
                (e.$el.style.left = "0px"),
                (e.border = !1);
              let t = this._getRatioAjust(
                  this.$refs.videos.clientWidth,
                  this.$refs.videos.clientHeight
                ),
                i = Object(o["a"])(t, 4),
                s = i[0],
                n = i[1],
                r = i[2],
                l = i[3];
              e.resize(s, n, r, l);
            },
            _onPlayerClose(e) {
              delete this._player_map[e.uuid];
              let t = this._player_list.indexOf(e);
              t >= 0 &&
                (this._player_list.splice(t, 1),
                this.$refs.videos.removeChild(e.$el)),
                e.$destroy(),
                this._player == e &&
                  ((this._player = null),
                  (this.tools = { playing: !1, loading: !1 }),
                  (this.seeker = { max: 0, value: 0, ing: !1 })),
                this._regrid2(this._playCount());
            },
            _onVoiceOpen(e) {
              this._player_list.forEach((t) => t != e && (t.voice = !1));
            },
            _regrid2(e) {
              if (0 == e)
                return (
                  this._player_list.forEach((e) => {
                    this.$refs.videos.removeChild(e.$el), e.$destroy();
                  }),
                  (this._player_list = []),
                  void (this._player_map = {})
                );
              (this._row = 1), (this._col = 1);
              while (this._row * this._col < e)
                this._row == this._col ? this._col++ : this._row++;
              this._regrid();
            },
            _regrid() {
              let e = this._row * this._col;
              for (let t = 0; t < e; t++) {
                let e =
                  this._player_list.length > t
                    ? this._player_list[t]
                    : this._newPlayer();
                e.$el.style.display = "flex";
              }
              for (let t = e; t < this._player_list.length; t++)
                this._player_list[t].$el.style.display = "none";
              (this._playerIsMax = !1),
                this._player &&
                  (1 != this.row || 1 != this.col) &&
                  (this._player.border = !0),
                this._onResize();
            },
            _playCount() {
              let e = 0;
              return (
                this._player_list.forEach((t) => t.tools.playing && e++), e
              );
            },
            _onResize() {
              if (0 == this._player_list.length) return;
              if (this._playerIsMax) {
                (this._player.$el.style.width =
                  this.$refs.videos.clientWidth + "px"),
                  (this._player.$el.style.height =
                    this.$refs.videos.clientHeight + "px");
                let e = this._getRatioAjust(
                    this.$refs.videos.clientWidth,
                    this.$refs.videos.clientHeight
                  ),
                  t = Object(o["a"])(e, 4),
                  i = t[0],
                  s = t[1],
                  n = t[2],
                  r = t[3];
                return void this._player.resize(i, s, n, r);
              }
              let e = this.$refs.videos.clientWidth / this._col,
                t = this.$refs.videos.clientHeight / this._row,
                i = this._getRatioAjust(e, t),
                s = Object(o["a"])(i, 4),
                n = s[0],
                r = s[1],
                l = s[2],
                a = s[3];
              (e = Math.ceil(e)), (t = Math.ceil(t));
              for (
                let o,
                  h = 0,
                  c = Math.min(this._row * this._col, this._player_list.length);
                h < c;
                h++
              )
                (o = this._player_list[h]),
                  (o.$el.style.width = e + "px"),
                  (o.$el.style.height = t + "px"),
                  (o.$el.style.left = (h % this._col) * e + "px"),
                  (o.$el.style.top = Math.floor(h / this._col) * t + "px"),
                  o.resize(n, r, l, a);
            },
            _getRatioAjust(e, t) {
              if (((t -= 26), 0 == this.ratio)) return [e, t, "0px", "0px"];
              let i = e / t;
              if (this.ratio == i) return [e, t, "0px", "0px"];
              if (i > this.ratio) {
                i = t * this.ratio;
                let s = (e - i) / 2;
                return [i, t, s + "px", "0px"];
              }
              {
                i = e / this.ratio;
                let s = (t - e / this.ratio) / 2;
                return [e, i, "0px", s + "px"];
              }
            },
            _on_his_tmn_play(e) {
              let t = this._player_map[e.uuid];
              t && t.tools.playing && t.on_his_tmn_play(e);
            },
            _on_play_flow(e) {
              let t = this._player_map[e.uuid];
              t && t.tools.playing && t.on_play_flow(e);
            },
            _on_record_start(e) {
              let t = this._player_map[e.uuid];
              t && t.tools.playing && t.on_record_start(e);
            },
            closeAll() {
              let e = !1;
              return (
                [...this._player_list].forEach(
                  (t) => ((e = e || t.tools.playing), t.close())
                ),
                e
              );
            },
            _seekTo(e) {
              let t = this._player.getSeekerTime(e);
              this._player_list.forEach((e) => {
                if (e.tools.playing && e.file.stime <= t && e.file.etime >= t) {
                  delete this._player_map[e.uuid];
                  let i = this._uuid();
                  (this._player_map[i] = e),
                    e.seekTo(t, i, this.way, this.multiple);
                }
              });
            },
            _fullScreen() {
              let e = this.$refs.videos,
                t =
                  e.requestFullscreen ||
                  e.webkitRequestFullscreen ||
                  e.mozRequestFullScreen ||
                  e.msRequestFullscreen;
              t && t.call(e);
            },
            _downloadPlayer() {
              window.open(
                "https://31gps.net/charges/5/Pure%20Codec%EF%BC%88%E4%B8%87%E8%83%BD%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E5%99%A8%EF%BC%89.rar"
              );
            },
            searchTmn(e, t, i, s, n, o, r, l, a) {
              return (
                !!this.socketIsOpen &&
                (this.stopSearch(),
                (this.$refs.search.from = 0),
                (this.$refs.search.plate = e),
                (this.$refs.search.sim = t),
                (this.$refs.search.chn = i),
                (this.$refs.search.stime = s),
                (this.$refs.search.etime = n),
                o && (this.$refs.search.alarms = o),
                (this.$refs.search.avtype = r),
                (this.$refs.search.stream = l),
                (this.$refs.search.storage = a),
                this.$refs.search.toogleQuery(!0),
                !0)
              );
            },
            searchSrv(e, t, i, s, n, o) {
              return (
                !!this.socketIsOpen &&
                (this.stopSearch(),
                (this.$refs.search.from = 1),
                (this.$refs.search.plate = e),
                (this.$refs.search.sim = t),
                (this.$refs.search.chn = i),
                (this.$refs.search.stime = s),
                (this.$refs.search.etime = n),
                (this.$refs.search.type = o),
                this.$refs.search.toogleQuery(!0),
                !0)
              );
            },
            stopSearch() {
              this.$refs.search.querying && this.$refs.search.toogleQuery();
            },
            _onServerOpen(e) {
              if (1 != e || 3 != this.model || void 0 == this._cfg.chn) return;
              let t = {
                file: !1,
                plate: this._cfg.plate,
                carId: "_" + this._cfg.sim,
                channel: this._cfg.chn,
                chnName: "通道" + this._cfg.chn,
                stime: this._cfg.stime,
                startTime: this._YYMMDDJJNNSS(this._cfg.stime),
                etime: this._cfg.etime,
                endTime: this._YYMMDDJJNNSS(this._cfg.etime),
                avType: 0,
                streamType: 0,
                storeType: 0,
              };
              this._play(t, this._cfg.stime);
            },
            _YYMMDDJJNNSS(e) {
              return e
                .substr(2)
                .split(/[-| |:]/)
                .join("");
            },
            _setPlayTimeout(e) {
              if (0 === e) return;
              e *= 1e3;
              let t = new Date().getTime(),
                i = !1,
                s = !1;
              document.addEventListener(
                "mousemove",
                (this._mouseMove = () => (i = !0))
              ),
                (this._interval = setInterval(() => {
                  i
                    ? ((t = new Date().getTime()), (i = s = !1))
                    : !s &&
                      new Date().getTime() - t > e &&
                      ((s = !0),
                      this.closeAll() &&
                        w["a"].warn("您已长时间不操作系统，视频已经自动关闭"));
                }, 1e3));
            },
            _queryResult(e, t, i, s) {
              (this.fromTmn = s),
                this.$refs.grid.setFiles(e, s),
                this.$refs.chart.setFiles(e, t, i, s),
                (this._files = e),
                this.closeAll();
            },
            _tooglePlay(e) {
              if (e.play)
                return this._player_list.forEach(
                  (t) => t.file == e && t.close()
                );
              if (1 == this.mode)
                [...this._player_list].forEach((e) => e.close());
              else if (this.fromTmn)
                for (let t, i = 0, s = this._player_list.length; i < s; i++)
                  if (
                    ((t = this._player_list[i]),
                    t.tools.playing && t.file.channel == e.channel)
                  )
                    return w["a"].warn("不能同时播放相同的通道号！");
              this._play(e, e.stime);
            },
            _chartPlay(e, t) {
              if (1 == this.mode)
                [...this._player_list].forEach((e) => e.close()),
                  !e.play && this._play(e, t);
              else {
                [...this._player_list].forEach((e) => e.close());
                let e,
                  i = new Set();
                this._files.forEach(
                  (s) =>
                    s.stime <= t &&
                    s.etime > t &&
                    !i.has(s.channel) &&
                    (i.add(s.channel),
                    this._play(s, t),
                    (e = e || this._player))
                ),
                  e && (this._selectPlayer(e), this.$emit("play", e));
              }
            },
            _play(e, t) {
              this._regrid2(this._playCount() + 1),
                this._selectPlayer(this._getIdlePlayer()),
                this._player.play(e, t, this.way, this.multiple);
            },
            _getIdlePlayer() {
              for (let e, t = 0, i = this._player_list.length; t < i; t++)
                if (((e = this._player_list[t]), !e.tools.playing)) return e;
              return null;
            },
            _uuid() {
              let e = () =>
                ((65536 * (1 + Math.random())) | 0).toString(16).substring(1);
              return e() + e() + e() + e() + e() + e() + e() + e();
            },
            destroy() {
              this.closeAll(),
                removeResizeListener(this.$refs.videos, this._onResize),
                this._player_list.forEach((e) => e.$destroy()),
                (this._PlayerClass = null),
                (this._player_map = null),
                (this._player_list = null),
                (this._player = null),
                this._mouseMove &&
                  (document.removeEventListener("mousemove", this._mouseMove),
                  (this._mouseMove = null)),
                this._interval &&
                  (clearInterval(this._interval), (this._interval = null)),
                this.$refs.grid && this.$refs.grid.destroy(),
                this._socket && (this._socket.destroy(), (this._socket = null));
            },
          },
          beforeDestroy() {
            this.destroy();
          },
        },
        ht = at,
        ct = (i("3e88"), i("ab62"));
      function dt(e) {
        this["$style"] = ct["default"].locals || ct["default"];
      }
      var ut = Object(m["a"])(ht, s, n, !1, dt, null, null);
      t["a"] = ut.exports;
    },
    "7eec": function (e, t, i) {
      "use strict";
      var s = i("c8ea"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "7f70": function (e, t, i) {},
    "82fd": function (e, t, i) {
      e.exports = {
        checked: "InputCheckbox_checked_2nxWB",
        unchecked: "InputCheckbox_unchecked_l8I_p",
        container: "InputCheckbox_container_1gni4",
        border: "InputCheckbox_border_2DjTP",
        label: "InputCheckbox_label_-EPVi",
        checkboxGroup: "InputCheckbox_checkboxGroup_2lz7H",
        checkboxItem: "InputCheckbox_checkboxItem_2AFwu",
        checkboxItemVertical: "InputCheckbox_checkboxItemVertical_2gY4p",
        checkboxItemNoVertical: "InputCheckbox_checkboxItemNoVertical_3zo-e",
        single: "InputCheckbox_single_3iPYX",
        checkbox: "InputCheckbox_checkbox_3CZ66",
        unit: "InputCheckbox_unit_3ZWlv",
        required: "InputCheckbox_required_Zdz5M",
        disabled: "InputCheckbox_disabled_2MaGW",
      };
    },
    "836f": function (e, t, i) {
      "use strict";
      var s = i("8925"),
        n = i.n(s);
      t["default"] = n.a;
    },
    8925: function (e, t, i) {
      e.exports = {
        container: "InputSelect_container_vr6s0",
        border: "InputSelect_border_BynQN",
        label: "InputSelect_label_36_kl",
        selector: "InputSelect_selector_2FGrZ",
        placeholder: "InputSelect_placeholder_1YaRT",
        icon: "InputSelect_icon_3wPP0",
        dropdown: "InputSelect_dropdown_3N0Sh",
        option_item: "InputSelect_option_item_14RxH",
        unit: "InputSelect_unit_AqWTk",
        required: "InputSelect_required_2a8kN",
        disabled: "InputSelect_disabled_3CXVd",
      };
    },
    "89fb": function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: e.$style.container,
              on: {
                click: function (t) {
                  return e.onBarClick(t);
                },
                wheel: function (t) {
                  return t.preventDefault(), e.wheelBar(t);
                },
                mousemove: function (t) {
                  e.showtip && e.onMouseMove(t);
                },
                mouseleave: function (t) {
                  e.showMouseTip = !1;
                },
              },
            },
            [
              i(
                "div",
                {
                  ref: "bar",
                  class: e.$style.bar,
                  style: { backgroundColor: e.barColor },
                },
                [
                  e.showValueBar
                    ? i("div", {
                        class: e.$style.value_bar,
                        style: {
                          width: e.brate + "%",
                          backgroundColor: e.valueColor,
                        },
                      })
                    : e._e(),
                  e._l(e.signs, function (t) {
                    return i("div", {
                      key: t,
                      class: e.$style.sign,
                      style: {
                        left: (100 * (t - e.min)) / e.rang + "%",
                        borderColor: e.barColor,
                      },
                      on: {
                        mousemove: function (i) {
                          i.stopPropagation(),
                            !e.showButtonTip &&
                              (e.showMouseTip = !0) &&
                              (e.mouseValue = t);
                        },
                        click: function (i) {
                          return i.stopPropagation(), e.onSignClick(t);
                        },
                      },
                    });
                  }),
                  i("div", {
                    class: e.$style.btn,
                    style: { left: e.brate + "%", borderColor: e.theme.color },
                    on: {
                      mousedown: function (t) {
                        return e.onDragStart(t);
                      },
                      mouseenter: function (t) {
                        (e.showButtonTip = !0), (e.showMouseTip = !1);
                      },
                      mouseleave: function (t) {
                        !e.draging && (e.showButtonTip = !1);
                      },
                    },
                  }),
                  i(
                    "span",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.showtip && e.showButtonTip,
                          expression: "showtip && showButtonTip",
                        },
                      ],
                      ref: "buttonTip",
                      class: e.$style.tooltip,
                      style: {
                        left:
                          "calc(" +
                          e.brate +
                          "% - " +
                          e.buttonTipWidth / 2 +
                          "px)",
                        borderColor: e.valueColor,
                      },
                      on: {
                        mousemove: function (t) {
                          t.stopPropagation(), (e.showMouseTip = !1);
                        },
                      },
                    },
                    [
                      e._v(
                        " " +
                          e._s(
                            e.getTooltip
                              ? e.getTooltip(e.buttonValue)
                              : e.tooltip.replace(e.reg, e.buttonValue)
                          ) +
                          " "
                      ),
                    ]
                  ),
                  i(
                    "span",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.showtip && e.showMouseTip,
                          expression: "showtip && showMouseTip",
                        },
                      ],
                      ref: "mouseTip",
                      class: e.$style.tooltip,
                      style: {
                        left:
                          "calc(" +
                          e.mrate +
                          "% - " +
                          e.mouseTipWidth / 2 +
                          "px)",
                        borderColor: e.valueColor,
                      },
                      on: {
                        mousemove: function (t) {
                          t.stopPropagation(), (e.showMouseTip = !1);
                        },
                      },
                    },
                    [
                      e._v(
                        "  " +
                          e._s(
                            e.getTooltip
                              ? e.getTooltip(e.mouseValue)
                              : e.tooltip.replace(e.reg, e.mouseValue)
                          ) +
                          " "
                      ),
                    ]
                  ),
                ],
                2
              ),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
            ]
          );
        },
        n = [],
        o =
          (i("3b2b"),
          {
            name: "Slider",
            props: {
              value: { type: [String, Number], default: 0 },
              min: { type: Number, default: 0 },
              max: { type: Number, default: 100 },
              step: { type: Number, default: 1 },
              signs: Array,
              showtip: { type: Boolean, default: !0 },
              tooltip: { type: String, default: "{}" },
              getTooltip: Function,
              barColor: { type: String, default: $_theme.border_color_light },
              valueColor: { type: String, default: $_theme.color },
              disabled: Boolean,
              showValueBar: { type: Boolean, default: !0 },
            },
            data() {
              return {
                buttonTipWidth: 0,
                showButtonTip: !1,
                buttonValue: 0,
                mouseTipWidth: 0,
                showMouseTip: !1,
                mouseValue: 0,
                draging: !1,
                reg: new RegExp("\\{\\}", "g"),
              };
            },
            mounted() {
              this.buttonValue = this.validValue(
                Number(this.value || this.min)
              );
            },
            watch: {
              value: function (e) {
                this.buttonValue = this.validValue(e);
              },
              buttonValue: function (e) {
                this.$nextTick(this.setButtonTipWidth);
              },
              showButtonTip: function (e) {
                e && this.$nextTick(this.setButtonTipWidth);
              },
              mouseValue: function (e) {
                this.$nextTick(this.setMouseTipWidth);
              },
              showMouseTip: function (e) {
                e && this.$nextTick(this.setMouseTipWidth);
              },
            },
            methods: {
              onSignClick(e) {
                let t = this.buttonValue;
                (this.buttonValue = this.validValue(e)),
                  this.$emit("input", this.buttonValue),
                  this.$emit("change", this.buttonValue, t);
              },
              wheelBar(e) {
                (this.showButtonTip = !0), (this.showMouseTip = !1);
                let t = this.buttonValue;
                (this.buttonValue = this.validValue(
                  e.deltaY < 0
                    ? this.buttonValue - this.step
                    : this.buttonValue + this.step
                )),
                  t != this.buttonValue &&
                    (this.$emit("input", this.buttonValue),
                    this.$emit("change", this.buttonValue, t));
              },
              onDragStart(e) {
                (this.draging = !0),
                  (this._oldValue = this.buttonValue),
                  document.addEventListener("mousemove", this.onDraging),
                  document.addEventListener("mouseup", this.onDragEnd),
                  this.$emit("dragstart", this.buttonValue, this._oldValue);
              },
              onDraging(e) {
                let t = e.clientX - this.$refs.bar.getBoundingClientRect().left;
                this.buttonValue = this.validValue(
                  Math.round(
                    ((t * this.rang) / this.$refs.bar.clientWidth + this.min) /
                      this.step
                  ) * this.step
                );
              },
              onDragEnd(e) {
                (this.draging = this.showButtonTip = !1),
                  document.removeEventListener("mousemove", this.onDraging),
                  document.removeEventListener("mouseup", this.onDragEnd),
                  this.$emit("input", this.buttonValue),
                  this.$emit("change", this.buttonValue, this._oldValue);
              },
              onBarClick(e) {
                let t = this.buttonValue,
                  i = e.clientX - this.$refs.bar.getBoundingClientRect().left;
                (this.buttonValue = this.validValue(
                  Math.round(
                    ((i * this.rang) / this.$refs.bar.clientWidth + this.min) /
                      this.step
                  ) * this.step
                )),
                  this.$emit("input", this.buttonValue),
                  this.$emit("change", this.buttonValue, t);
              },
              onMouseMove(e) {
                if (this.showButtonTip) return;
                let t = e.clientX - this.$refs.bar.getBoundingClientRect().left;
                (this.mouseValue = this.validValue(
                  Math.round(
                    ((t * this.rang) / this.$refs.bar.clientWidth + this.min) /
                      this.step
                  ) * this.step
                )),
                  (this.showMouseTip = !0);
              },
              setButtonTipWidth() {
                this.buttonTipWidth = this.$refs.buttonTip.clientWidth;
              },
              setMouseTipWidth() {
                this.mouseTipWidth = this.$refs.mouseTip.clientWidth;
              },
              validValue(e) {
                return (
                  (e = Number(e.toFixed(5))),
                  e < this.min ? this.min : e > this.max ? this.max : e
                );
              },
            },
            computed: {
              brate() {
                return 0 == this.rang
                  ? 0
                  : (100 * (this.buttonValue - this.min)) / this.rang;
              },
              mrate() {
                return 0 == this.rang
                  ? 0
                  : (100 * (this.mouseValue - this.min)) / this.rang;
              },
              rang() {
                return this.max - this.min;
              },
            },
          }),
        r = o,
        l = i("7eec"),
        a = i("2877");
      function h(e) {
        this["$style"] = l["default"].locals || l["default"];
      }
      var c = Object(a["a"])(r, s, n, !1, h, null, null);
      t["a"] = c.exports;
    },
    "8f6b": function (e, t, i) {
      "use strict";
      var s = i("a996"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "911a": function (e, t, i) {
      "use strict";
      var s = i("6b1a"),
        n = i.n(s);
      t["default"] = n.a;
    },
    "930c": function (e, t, i) {
      "use strict";
      var s = i("568c"),
        n = i.n(s);
      t["default"] = n.a;
    },
    9535: function (e, t, i) {
      "use strict";
      var s = i("dd43"),
        n = i.n(s);
      t["default"] = n.a;
    },
    9647: function (e, t, i) {
      e.exports = {
        batchBtn: "PlaybackGrid_batchBtn_3Cwa1",
        menu: "PlaybackGrid_menu_3gyde",
      };
    },
    "9c80": function (e, t, i) {
      e.exports = {
        container: "PlaybackPlayer_container_2QPFI",
        bar: "PlaybackPlayer_bar_2D0o6",
        border_top: "PlaybackPlayer_border_top_3w26y",
        border_bottom: "PlaybackPlayer_border_bottom_1TLP9",
        border_left: "PlaybackPlayer_border_left_GcYhw",
        border_right: "PlaybackPlayer_border_right_32qmK",
        reverse: "PlaybackPlayer_reverse_lmMle",
      };
    },
    a852: function (e, t, i) {
      "use strict";
      var s = i("4a66"),
        n = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [e.$style[e.type + "-icon"], e.$style.container],
              style: { borderTopColor: e.theme.color },
            },
            [
              i("p", { class: e.$style.msgtxt }, [e._v(e._s(e.message))]),
              e.showYesBtn || e.showNoBtn
                ? i(
                    "div",
                    { class: e.$style.btnbar },
                    [
                      e.showNoBtn
                        ? i(
                            "Button",
                            {
                              staticStyle: {
                                "min-width": "80px",
                                margin: "0 6px",
                              },
                              on: {
                                click: function (t) {
                                  return e._callback(!1);
                                },
                              },
                            },
                            [e._v(" " + e._s(e.noText ? e.noText : "否") + " ")]
                          )
                        : e._e(),
                      e.showYesBtn
                        ? i(
                            "Button",
                            {
                              staticStyle: {
                                "min-width": "80px",
                                margin: "0 6px",
                              },
                              attrs: { type: "primary" },
                              on: {
                                click: function (t) {
                                  return e._callback(!0);
                                },
                              },
                            },
                            [
                              e._v(
                                " " + e._s(e.yesText ? e.yesText : "是") + " "
                              ),
                            ]
                          )
                        : e._e(),
                    ],
                    1
                  )
                : e._e(),
            ]
          );
        },
        o = [],
        r = i("2a7d"),
        l = {
          name: "Alert",
          components: { Button: r["a"] },
          _modalDom: null,
          data() {
            return {
              type: "",
              message: "",
              showYesBtn: !1,
              showNoBtn: !1,
              callback: null,
              yesText: "是",
              noText: "否",
            };
          },
          methods: {
            _callback(e) {
              document.body.removeChild(this.$el),
                null != this._modalDom &&
                  (document.body.removeChild(this._modalDom),
                  (this._modalDom = null),
                  document.removeEventListener("keydown", this.enterKey)),
                this.callback(e);
            },
            enterKey() {
              13 == event.keyCode && this._callback(this.showYesBtn);
            },
          },
          beforeMount() {
            (this.showYesBtn || this.showNoBtn) &&
              ((this._modalDom = document.createElement("div")),
              (this._modalDom.className = this.$style.modal),
              (this._modalDom.style["z-index"] = $_theme.zindex()),
              document.body.appendChild(this._modalDom),
              document.addEventListener("keydown", this.enterKey));
          },
        },
        a = l,
        h = i("efb7"),
        c = i("2877");
      function d(e) {
        this["$style"] = h["default"].locals || h["default"];
      }
      var u = Object(c["a"])(a, n, o, !1, d, null, null),
        p = u.exports;
      let f = [];
      const m = function (e, t, i) {
        let n =
            arguments.length > 3 && void 0 !== arguments[3]
              ? arguments[3]
              : null,
          o = arguments.length > 4 && void 0 !== arguments[4] && arguments[4],
          r = arguments.length > 5 && void 0 !== arguments[5] && arguments[5],
          l = arguments.length > 6 ? arguments[6] : void 0,
          a = arguments.length > 7 ? arguments[7] : void 0,
          h = s["a"].open(
            p,
            {
              type: e,
              message: t,
              callback: n,
              showYesBtn: o,
              showNoBtn: r,
              yesText: l,
              noText: a,
            },
            i
          );
        return (
          o ||
            r ||
            (f.push(h),
            1 == f.length &&
              (document.addEventListener("mousedown", g),
              document.addEventListener("keydown", g))),
          h
        );
      };
      function g(e) {
        for (let t = f.length - 1; t >= 0; t--)
          if (f[t].$el.contains(e.target)) return;
        for (let t = f.length - 1; t >= 0; t--)
          document.body.removeChild(f[t].$el), f[t].$destroy();
        f.splice(0, f.length),
          document.removeEventListener("mousedown", g),
          document.removeEventListener("keydown", g);
      }
      (m.success = function (e, t) {
        let i =
            arguments.length > 2 && void 0 !== arguments[2]
              ? arguments[2]
              : null,
          s = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
          n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
        return m("success", e || "操作成功", t || document.body, i, s, n);
      }),
        (m.warn = function (e, t) {
          let i =
              arguments.length > 2 && void 0 !== arguments[2]
                ? arguments[2]
                : null,
            s = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
            n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
          return m("warn", e, t || document.body, i, s, n);
        }),
        (m.error = function (e, t) {
          let i =
              arguments.length > 2 && void 0 !== arguments[2]
                ? arguments[2]
                : null,
            s = arguments.length > 3 && void 0 !== arguments[3] && arguments[3],
            n = arguments.length > 4 && void 0 !== arguments[4] && arguments[4];
          return m("error", e, t || document.body, i, s, n);
        }),
        (m.comfirm = (e, t, i, s, n) => {
          return m("comfirm", e, i || document.body, t, !0, !0, s, n);
        });
      t["a"] = m;
    },
    a963: function (e, t, i) {
      "use strict";
      t["a"] = {
        get: function (e) {
          let t =
              arguments.length > 1 && void 0 !== arguments[1]
                ? arguments[1]
                : null,
            i = localStorage.getItem(e);
          return null === i ? t : JSON.parse(i);
        },
        set: function (e, t) {
          localStorage.setItem(e, JSON.stringify(t));
        },
        remove: function (e) {
          localStorage.removeItem(e);
        },
      };
    },
    a996: function (e, t, i) {
      e.exports = {
        btn: "Button_btn_nFMrU",
        transparent: "Button_transparent_2FWwS",
        disabled: "Button_disabled_GJexr",
      };
    },
    ab62: function (e, t, i) {
      "use strict";
      var s = i("0f2b"),
        n = i.n(s);
      t["default"] = n.a;
    },
    ae31: function (e, t, i) {
      "use strict";
      var s = i("4cda"),
        n = i.n(s);
      t["default"] = n.a;
    },
    b1b2: function (e, t, i) {
      e.exports = {
        horizontal: "Split_horizontal_3wwEA",
        draggingH: "Split_draggingH_2lpWd",
        vertical: "Split_vertical_9d3Zn",
        draggingV: "Split_draggingV_1wi1_",
      };
    },
    b9fe: function (e, t, i) {
      "use strict";
      var s = i("d564"),
        n = i.n(s);
      n.a;
    },
    bb81: function (e, t, i) {
      e.exports = {
        container: "InputDateTime_container_f-EZN",
        dropdown: "InputDateTime_dropdown_2RoOv",
        border: "InputDateTime_border_3M6wi",
        label: "InputDateTime_label_36_zd",
        datatime: "InputDateTime_datatime_3tPqC",
        text: "InputDateTime_text_J62qO",
        clear: "InputDateTime_clear_1f1gB",
        required: "InputDateTime_required_DgXWg",
        disabled: "InputDateTime_disabled_1sB6C",
        drop_item: "InputDateTime_drop_item_1Y5Wo",
        arrow: "InputDateTime_arrow_2ncy0",
        quickbtn: "InputDateTime_quickbtn_3QqAC",
      };
    },
    c8ea: function (e, t, i) {
      e.exports = {
        container: "Slider_container_2SBlJ",
        bar: "Slider_bar_1218M",
        value_bar: "Slider_value_bar_2SZN7",
        btn: "Slider_btn_2A6qT",
        sign: "Slider_sign_GLNuj",
        tooltip: "Slider_tooltip_1BGD5",
        disabled: "Slider_disabled_2_xnH",
      };
    },
    ce55: function (e, t, i) {
      e.exports = {
        bars: "FileTimeChart_bars_2qCVB",
        bar: "FileTimeChart_bar_wFqSZ",
        timeline: "FileTimeChart_timeline_1t2ja",
        hour_label: "FileTimeChart_hour_label_2Sy5B",
        hour_line: "FileTimeChart_hour_line_24chU",
        tip_line: "FileTimeChart_tip_line_3TzdE",
        tip_text: "FileTimeChart_tip_text_1UjSL",
      };
    },
    cf59: function (e, t, i) {
      "use strict";
      var s = i("9c80"),
        n = i.n(s);
      t["default"] = n.a;
    },
    d0ee: function (e, t, i) {
      "use strict";
      i.d(t, "e", function () {
        return s;
      }),
        i.d(t, "f", function () {
          return n;
        }),
        i.d(t, "a", function () {
          return o;
        }),
        i.d(t, "b", function () {
          return r;
        }),
        i.d(t, "d", function () {
          return l;
        }),
        i.d(t, "c", function () {
          return a;
        }),
        i.d(t, "g", function () {
          return h;
        }),
        i.d(t, "h", function () {
          return c;
        }),
        i.d(t, "i", function () {
          return d;
        });
      i("28a5"), i("a481");
      function s() {
        let e =
          arguments.length > 0 && void 0 !== arguments[0]
            ? arguments[0]
            : "YYYY-MM-DD";
        return a(null, e);
      }
      function n() {
        let e =
          arguments.length > 0 && void 0 !== arguments[0]
            ? arguments[0]
            : "YYYY-MM-DD HH:NN:SS";
        return a(null, e);
      }
      function o(e) {
        let t =
            arguments.length > 1 && void 0 !== arguments[1]
              ? arguments[1]
              : "YYYY-MM-DD HH:NN:SS",
          i = new Date();
        return i.setDate(i.getDate() + e), a(i, t);
      }
      function r(e, t) {
        return e && t
          ? ((e = h(e)), (t = h(t)), Math.abs(e.getTime() - t.getTime()) / 1e3)
          : null;
      }
      function l(e, t) {
        return 2 == t
          ? (e % 4 == 0 && e % 100 != 0) || e % 400 == 0
            ? 29
            : 28
          : 1 == t || 3 == t || 5 == t || 7 == t || 8 == t || 10 == t || 12 == t
          ? 31
          : 30;
      }
      function a(e) {
        let t =
          arguments.length > 1 && void 0 !== arguments[1]
            ? arguments[1]
            : "YYYY-MM-DD";
        (e = e || new Date()), (t = t || "YYYY-MM-DD");
        let i = e.getMonth() + 1,
          s = e.getDate(),
          n = e.getHours(),
          o = e.getMinutes(),
          r = e.getSeconds();
        return (
          (i = (i < 10 ? "0" : "") + i),
          (s = (s < 10 ? "0" : "") + s),
          (n = (n < 10 ? "0" : "") + n),
          (o = (o < 10 ? "0" : "") + o),
          (r = (r < 10 ? "0" : "") + r),
          t
            .replace("YYYY", e.getFullYear())
            .replace("MM", i)
            .replace("DD", s)
            .replace("HH", n)
            .replace("NN", o)
            .replace("SS", r)
        );
      }
      function h(e) {
        let t = e.split(/[-| |:]/),
          i = parseInt(t[0]),
          s = parseInt(t[1]),
          n = parseInt(t[2]),
          o = t.length > 3 ? parseInt(t[3]) : 0,
          r = t.length > 4 ? parseInt(t[4]) : 0,
          l = t.length > 5 ? parseInt(t[5]) : 0;
        return new Date(i, s - 1, n, o, r, l);
      }
      function c(e) {
        if (0 === e || "0" === e) return "00:00:00";
        if (!e) return "";
        e = Number(e);
        let t = parseInt(e / 86400),
          i = parseInt((e % 86400) / 3600),
          s = parseInt(((e % 86400) % 3600) / 60),
          n = parseInt(((e % 86400) % 3600) % 60),
          o = "";
        return (
          t > 0 && ((o = (t < 10 ? "0" : "") + t), (o += " ")),
          (o += (i < 10 ? "0" : "") + i),
          (o += (s < 10 ? ":0" : ":") + s),
          (o += (n < 10 ? ":0" : ":") + n),
          o
        );
      }
      function d(e) {
        if (0 === e || "0" === e) return "00:00:00";
        if (!e) return "";
        e = Number(e);
        let t = parseInt(e / 3600),
          i = parseInt(((e % 86400) % 3600) / 60),
          s = parseInt(((e % 86400) % 3600) % 60),
          n = (t < 10 ? "0" : "") + t;
        return (
          (n += (i < 10 ? ":0" : ":") + i), (n += (s < 10 ? ":0" : ":") + s), n
        );
      }
    },
    d564: function (e, t, i) {},
    dc0a: function (e, t, i) {
      "use strict";
      var s = i("82fd"),
        n = i.n(s);
      t["default"] = n.a;
    },
    dd43: function (e, t, i) {
      e.exports = {
        toolbar: "Toolbar_toolbar_7SMZD",
        toolbar_small: "Toolbar_toolbar_small_3YfCk",
        toolbar_mini: "Toolbar_toolbar_mini_1KVOZ",
        toolbar_zero: "Toolbar_toolbar_zero_Mw76N",
        left: "Toolbar_left_ZORKd",
        right: "Toolbar_right_3DDaN",
        left_small: "Toolbar_left_small_nl0yC",
        right_small: "Toolbar_right_small_15gdJ",
        left_mini: "Toolbar_left_mini_YkGds",
        right_mini: "Toolbar_right_mini_mCatX",
        left_zero: "Toolbar_left_zero_3EU6A",
        right_zero: "Toolbar_right_zero_1wnWj",
        disabled: "Toolbar_disabled_JJNWE",
      };
    },
    e58f: function (e, t, i) {
      e.exports = {
        container: "ButtonBar_container_1QbOK",
        btnItem: "ButtonBar_btnItem_1VSJR",
        btnItem_h: "ButtonBar_btnItem_h_14GGx",
        btnItem_v: "ButtonBar_btnItem_v_1FXSX",
        disabled: "ButtonBar_disabled_ORrV5",
      };
    },
    eb5b: function (e, t, i) {
      "use strict";
      let s;
      function n(e) {
        return (
          (s =
            s ||
            (s = {
              "-10": "正在唤醒设备，请稍后再试",
              "-9": "账号或密码不正确",
              "-8": "无车辆权限",
              "-7": "未绑定视频终端",
              "-6": "车辆欠费",
              "-5": "视频类型不正确",
              "-4": "设备没有回应，请稍后再试",
              "-3": "车辆不存在",
              "-2": "系统异常",
              "-1": "设备离线",
              1: "设备返回失败",
              2: "设备返回消息有误",
              3: "设备不支持",
              13: "对讲被占用",
              14: "广播被占用",
              17: "广播端口分配完毕",
              20: "该通道正在回放",
              24: "文件不存在",
              31: "809返回失败",
              32: "809不支持",
              33: "809会话结束",
              34: "809时效口令错误",
              35: "809不满足跨域条件",
              42: "账号使用流量已超出设置",
              43: "设备使用流量已超出设置",
              44: "服务器带宽已满，请稍后再试",
            })),
          s["" + e] || "未知异常:" + e
        );
      }
      i.d(t, "a", function () {
        return n;
      });
    },
    efb7: function (e, t, i) {
      "use strict";
      var s = i("68cf"),
        n = i.n(s);
      t["default"] = n.a;
    },
    f190: function (e, t, i) {
      "use strict";
      var s = i("5916"),
        n = i.n(s);
      t["default"] = n.a;
    },
    f4c2: function (e, t, i) {
      "use strict";
      var s = function () {
          var e = this,
            t = e.$createElement,
            i = e._self._c || t;
          return i(
            "div",
            {
              class: [e.$style.container, e.border && e.$style.border],
              style: e.containerStyle,
              attrs: { tabindex: "0" },
              on: {
                focus: function (t) {
                  e.focused = !0;
                },
                blur: function (t) {
                  e.focused = !1;
                },
                mouseenter: function (t) {
                  e.selectorHover = !0;
                },
                mouseleave: function (t) {
                  e.selectorHover = !1;
                },
              },
            },
            [
              e.label
                ? i(
                    "span",
                    {
                      class: e.$style.label,
                      style: e.labelStyle,
                      attrs: { "is-label": "" },
                    },
                    [e._v(e._s(e.label))]
                  )
                : e._e(),
              e.required
                ? i("span", {
                    class: [e.$style.required, "el-icon-star-on"],
                    style: { backgroundColor: e.theme.bg_color },
                  })
                : e._e(),
              e.unit
                ? i("span", { class: e.$style.unit }, [e._v(e._s(e.unit))])
                : e._e(),
              e.showArrow
                ? i("i", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: !e.showClear,
                        expression: "!showClear",
                      },
                    ],
                    staticClass: "el-icon-arrow-down",
                    class: e.$style.icon,
                    style: { lineHeight: e.lineHeight + "px" },
                    on: {
                      click: function (t) {
                        return t.stopPropagation(), e.toggleDropDown(t);
                      },
                    },
                  })
                : e._e(),
              e.clearable
                ? i("i", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: e.showClear,
                        expression: "showClear",
                      },
                    ],
                    staticClass: "el-icon-close",
                    class: e.$style.icon,
                    style: { lineHeight: e.lineHeight + "px" },
                    on: {
                      click: function (t) {
                        return t.stopPropagation(), e.clear(t);
                      },
                    },
                  })
                : e._e(),
              i(
                "div",
                {
                  ref: "selector",
                  class: e.$style.selector,
                  style: [
                    e.inputWidth && { width: e.inputWidth },
                    { lineHeight: e.lineHeight + "px", paddingRight: "5px" },
                    e.contentStyle,
                  ],
                  attrs: { title: e.text },
                  on: {
                    click: function (t) {
                      return e.toggleDropDown(t);
                    },
                  },
                },
                [
                  !e.text && e.placeholder
                    ? i("span", { class: e.$style.placeholder }, [
                        e._v(e._s(e.placeholder)),
                      ])
                    : e._e(),
                  e.text ? i("span", [e._v(e._s(e.text))]) : e._e(),
                ]
              ),
              e.createDropDown
                ? i(
                    "ul",
                    {
                      directives: [
                        {
                          name: "show",
                          rawName: "v-show",
                          value: e.showDropDown,
                          expression: "showDropDown",
                        },
                      ],
                      ref: "dropdown",
                      class: e.$style.dropdown,
                      style: e.dropdownStyle,
                    },
                    e._l(e.options, function (t, s) {
                      return i(
                        "li",
                        {
                          key: s + "_" + t[e.valueField],
                          class: e.$style.option_item,
                          style: e.optionItemStyle(t, s),
                          attrs: { title: t[e.labelField] },
                          on: {
                            mouseenter: function (i) {
                              e.hoverItem = t;
                            },
                            mouseleave: function (t) {
                              e.hoverItem = null;
                            },
                            click: function (i) {
                              return i.stopPropagation(), e.onSelectItem(t, i);
                            },
                          },
                        },
                        [i("span", [e._v(e._s(t[e.labelField]))])]
                      );
                    }),
                    0
                  )
                : e._e(),
              e.disabled ? i("div", { class: e.$style.disabled }) : e._e(),
            ]
          );
        },
        n = [],
        o = i("7319"),
        r = i("53b0"),
        l = {
          name: "InputSelect",
          components: {},
          props: {
            label: String,
            value: { default: null },
            options: Array,
            labelField: { type: String, default: "label" },
            valueField: { type: String, default: "value" },
            splitter: { type: String, default: null },
            placeholder: String,
            unit: String,
            required: Boolean,
            disabled: Boolean,
            clearable: Boolean,
            showArrow: { type: Boolean, default: !0 },
            border: { type: Boolean, default: !0 },
            borderColor: { type: String, default: $_theme.border_color_light },
            focusColor: { type: String, default: $_theme.color },
            height: { type: Number, default: $_theme.inputHeight },
            maxListNum: { type: Number, default: 10 },
            afterOpen: Function,
            beforeClose: Function,
            labelMinWidth: { type: Number, default: 10 },
            inputWidth: { type: String, default: null },
            contentStyle: { default: null },
          },
          data() {
            return {
              selectedItem: null,
              hoverItem: null,
              focused: !1,
              selectorHover: !1,
              createDropDown: !1,
              showDropDown: !1,
              dropdownStyle: null,
            };
          },
          watch: {
            value: function (e) {
              if (this._myself) return (this._myself = !1);
              this.setSelectedItem(e);
            },
            focused: function (e) {
              this.$emit("focused", e);
            },
          },
          mounted() {
            null !== this.value &&
              void 0 != this.value &&
              this.setSelectedItem(this.value);
          },
          methods: {
            setSelectedItem(e) {
              if (null === e || void 0 == e) return (this.selectedItem = null);
              (this.selectedItem && this.selectedItem[this.valueField] == e) ||
                (this.selectedItem = Object(r["a"])(
                  this.options,
                  this.valueField,
                  e
                ));
            },
            toggleDropDown(e) {
              if (!this.options || 0 == this.options.length) return;
              if (((this.focused = !0), this.showDropDown))
                return this.hideDropDown(e);
              this.showDropDown = this.createDropDown = !0;
              let t = Object(o["b"])(this.$refs.selector),
                i = t.left,
                s = t.top,
                n =
                  30 * Math.min(this.maxListNum, this.options.length) +
                  1 +
                  (this.border ? 0 : 1),
                r = this.$el.offsetHeight,
                l = !0,
                a = document.documentElement.clientHeight - s - r;
              a > n
                ? (s += r - (this.border ? 1 : 0))
                : s > n
                ? ((s -= n + (this.border ? 1 : 0)), (l = !1))
                : a > s
                ? ((n = a - 5), (s += r - (this.border ? 1 : 0)))
                : ((n = s - 5), (s -= n + (this.border ? 1 : 0)), (l = !1)),
                this.border && i--,
                (this.dropdownStyle = {
                  borderColor: this.borderColor,
                  zIndex: window.$_theme.zindex(),
                  top: s + "px",
                  left: i + "px",
                  height: n + "px",
                  width:
                    this.$el.offsetWidth -
                    this.$refs.selector.offsetLeft +
                    "px",
                }),
                this.border &&
                  (this.dropdownStyle[
                    l ? "border-top-width" : "border-bottom-width"
                  ] = 0),
                this.afterOpen && this.$nextTick(this.afterOpen),
                document.addEventListener("click", this.onMouseClick);
            },
            onMouseClick(e) {
              !this.$el.contains(e.target) && this.hideDropDown(e);
            },
            hideDropDown(e) {
              (this.beforeClose && !1 === this.beforeClose(e)) ||
                ((this.showDropDown = !1),
                document.removeEventListener("click", this.onMouseClick));
            },
            onSelectItem(e, t) {
              if (
                ((this.selectorHover = !1),
                !this.selectedItem ||
                  this.selectedItem[this.valueField] !== e[this.valueField])
              ) {
                let t = this.value,
                  i = e[this.valueField];
                (this.selectedItem = e),
                  (this._myself = !0),
                  this.$emit("input", i),
                  this.$emit("change", i, e, t);
              }
              this.hideDropDown(t);
            },
            getSelectedItem() {
              return this.selectedItem;
            },
            clear() {
              this.showDropDown && this.hideDropDown(),
                (this.selectedItem = null);
              let e = this.value;
              (this._myself = !0),
                this.$emit("input", null),
                this.$emit("change", null, e);
            },
            optionItemStyle(e, t) {
              return this.showDropDown
                ? e == this.hoverItem
                  ? { backgroundColor: this.theme.list_hover_color }
                  : this.selectedItem &&
                    this.selectedItem[this.valueField] === e[this.valueField]
                  ? { backgroundColor: this.theme.selected_color }
                  : { backgroundColor: this.theme.alternate_colors[t % 2] }
                : null;
            },
          },
          computed: {
            text: function () {
              return this.selectedItem
                ? this.selectedItem[this.labelField]
                : null;
            },
            showClear() {
              return this.clearable && this.selectorHover && this.text;
            },
            containerStyle() {
              return {
                height: this.height + "px",
                borderColor: this.focused ? this.focusColor : this.borderColor,
                zIndex: this.focused ? this.theme.zindex() : "",
              };
            },
            lineHeight() {
              return this.height - (this.border ? 2 : 0);
            },
            labelStyle() {
              return {
                minWidth: this.labelMinWidth + "px",
                borderRightColor: this.theme.border_color_light,
                backgroundColor: this.theme.bg_color,
              };
            },
          },
        },
        a = l,
        h = i("836f"),
        c = i("2877");
      function d(e) {
        this["$style"] = h["default"].locals || h["default"];
      }
      var u = Object(c["a"])(a, s, n, !1, d, null, null);
      t["a"] = u.exports;
    },
    fd4c: function (e, t, i) {
      "use strict";
      i("a481");
      let s = {
          bg_color: "#E8EAED",
          border_color_dark: "#AEBAC5",
          border_color_light: "#D6D6D6",
          alternate_colors: ["#FFFFFF", "#FAFAFA"],
          list_hover_color: "#FCF0C1",
          inputHeight: 32,
          color: "rgba(64,150,209,1)",
          menubar_color: "#2C78BF",
          selected_color: "#B9D5EA",
          input_label_bg_color: "#F0F1F3",
          input_radius: "0",
        },
        n = 2e3;
      (s.zindex = () => n++),
        (s.rgba = (e, t) => {
          return e.replace(",1)", "," + t + ")");
        });
      window.$_theme = s;
      let o = 0;
      window.$_uuid = (e) => e + o++;
      t["a"] = {
        data() {
          return { theme: window.$_theme };
        },
      };
    },
  },
]);
