UNPKG

tata-ui

Version:

塔塔NG-基于VUE3开发支持Clodop打印的模板设计器

2,737 lines • 106 kB
import { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, hasInjectionContext, inject, getCurrentInstance, ref, watch, reactive, markRaw, effectScope, isRef, isReactive, toRef, toRaw, nextTick, computed, getCurrentScope, onScopeDispose, toRefs, normalizeStyle, createElementVNode, Fragment, renderList, toDisplayString, withDirectives, vShow, pushScopeId, popScopeId, resolveComponent, createBlock, resolveDynamicComponent, createVNode, withCtx, createTextVNode } from "vue";
const _sfc_main$d = /* @__PURE__ */ defineComponent({
  name: "tata-button",
  __name: "index",
  props: {
    type: {},
    size: {}
  },
  setup(t) {
    return console.log(t), (r, o) => (openBlock(), createElementBlock("button", {
      class: normalizeClass([
        "tata-btn",
        [r.size, r.type]
      ])
    }, [
      renderSlot(r.$slots, "default", {}, void 0, !0)
    ], 2));
  }
}), _export_sfc = (t, a) => {
  const r = t.__vccOpts || t;
  for (const [o, s] of a)
    r[o] = s;
  return r;
}, Button = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-6c87ce6b"]]);
var isVue2 = !1;
function set(t, a, r) {
  return Array.isArray(t) ? (t.length = Math.max(t.length, a), t.splice(a, 1, r), r) : (t[a] = r, r);
}
function del(t, a) {
  if (Array.isArray(t)) {
    t.splice(a, 1);
    return;
  }
  delete t[a];
}
/*!
 * pinia v2.1.7
 * (c) 2023 Eduardo San Martin Morote
 * @license MIT
 */
let activePinia;
const setActivePinia = (t) => activePinia = t, piniaSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia") : (
  /* istanbul ignore next */
  Symbol()
);
function isPlainObject(t) {
  return t && typeof t == "object" && Object.prototype.toString.call(t) === "[object Object]" && typeof t.toJSON != "function";
}
var MutationType;
(function(t) {
  t.direct = "direct", t.patchObject = "patch object", t.patchFunction = "patch function";
})(MutationType || (MutationType = {}));
const IS_CLIENT = typeof window < "u", USE_DEVTOOLS = (process.env.NODE_ENV !== "production" || !1) && process.env.NODE_ENV !== "test" && IS_CLIENT;
function patchObject(t, a) {
  for (const r in a) {
    const o = a[r];
    if (!(r in t))
      continue;
    const s = t[r];
    isPlainObject(s) && isPlainObject(o) && !isRef(o) && !isReactive(o) ? t[r] = patchObject(s, o) : t[r] = o;
  }
  return t;
}
const noop = () => {
};
function addSubscription(t, a, r, o = noop) {
  t.push(a);
  const s = () => {
    const n = t.indexOf(a);
    n > -1 && (t.splice(n, 1), o());
  };
  return !r && getCurrentScope() && onScopeDispose(s), s;
}
function triggerSubscriptions(t, ...a) {
  t.slice().forEach((r) => {
    r(...a);
  });
}
const fallbackRunWithContext = (t) => t();
function mergeReactiveObjects(t, a) {
  t instanceof Map && a instanceof Map && a.forEach((r, o) => t.set(o, r)), t instanceof Set && a instanceof Set && a.forEach(t.add, t);
  for (const r in a) {
    if (!a.hasOwnProperty(r))
      continue;
    const o = a[r], s = t[r];
    isPlainObject(s) && isPlainObject(o) && t.hasOwnProperty(r) && !isRef(o) && !isReactive(o) ? t[r] = mergeReactiveObjects(s, o) : t[r] = o;
  }
  return t;
}
const skipHydrateSymbol = process.env.NODE_ENV !== "production" ? Symbol("pinia:skipHydration") : (
  /* istanbul ignore next */
  Symbol()
);
function shouldHydrate(t) {
  return !isPlainObject(t) || !t.hasOwnProperty(skipHydrateSymbol);
}
const { assign } = Object;
function isComputed(t) {
  return !!(isRef(t) && t.effect);
}
function createOptionsStore(t, a, r, o) {
  const { state: s, actions: n, getters: i } = a, l = r.state.value[t];
  let c;
  function u() {
    !l && (process.env.NODE_ENV === "production" || !o) && (r.state.value[t] = s ? s() : {});
    const h = process.env.NODE_ENV !== "production" && o ? (
      // use ref() to unwrap refs inside state TODO: check if this is still necessary
      toRefs(ref(s ? s() : {}).value)
    ) : toRefs(r.state.value[t]);
    return assign(h, n, Object.keys(i || {}).reduce((m, _) => (process.env.NODE_ENV !== "production" && _ in h && console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${_}" in store "${t}".`), m[_] = markRaw(computed(() => {
      setActivePinia(r);
      const $ = r._s.get(t);
      return i[_].call($, $);
    })), m), {}));
  }
  return c = createSetupStore(t, u, a, r, o, !0), c;
}
function createSetupStore(t, a, r = {}, o, s, n) {
  let i;
  const l = assign({ actions: {} }, r);
  if (process.env.NODE_ENV !== "production" && !o._e.active)
    throw new Error("Pinia destroyed");
  const c = {
    deep: !0
    // flush: 'post',
  };
  process.env.NODE_ENV !== "production" && !isVue2 && (c.onTrigger = (f) => {
    u ? $ = f : u == !1 && !g._hotUpdating && (Array.isArray($) ? $.push(f) : console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."));
  });
  let u, h, m = [], _ = [], $;
  const y = o.state.value[t];
  !n && !y && (process.env.NODE_ENV === "production" || !s) && (o.state.value[t] = {});
  const E = ref({});
  let T;
  function p(f) {
    let d;
    u = h = !1, process.env.NODE_ENV !== "production" && ($ = []), typeof f == "function" ? (f(o.state.value[t]), d = {
      type: MutationType.patchFunction,
      storeId: t,
      events: $
    }) : (mergeReactiveObjects(o.state.value[t], f), d = {
      type: MutationType.patchObject,
      payload: f,
      storeId: t,
      events: $
    });
    const b = T = Symbol();
    nextTick().then(() => {
      T === b && (u = !0);
    }), h = !0, triggerSubscriptions(m, d, o.state.value[t]);
  }
  const v = n ? function() {
    const { state: d } = r, b = d ? d() : {};
    this.$patch((S) => {
      assign(S, b);
    });
  } : (
    /* istanbul ignore next */
    process.env.NODE_ENV !== "production" ? () => {
      throw new Error(`🍍: Store "${t}" is built using the setup syntax and does not implement $reset().`);
    } : noop
  );
  function x() {
    i.stop(), m = [], _ = [], o._s.delete(t);
  }
  function N(f, d) {
    return function() {
      setActivePinia(o);
      const b = Array.from(arguments), S = [], V = [];
      function L(C) {
        S.push(C);
      }
      function k(C) {
        V.push(C);
      }
      triggerSubscriptions(_, {
        args: b,
        name: f,
        store: g,
        after: L,
        onError: k
      });
      let O;
      try {
        O = d.apply(this && this.$id === t ? this : g, b);
      } catch (C) {
        throw triggerSubscriptions(V, C), C;
      }
      return O instanceof Promise ? O.then((C) => (triggerSubscriptions(S, C), C)).catch((C) => (triggerSubscriptions(V, C), Promise.reject(C))) : (triggerSubscriptions(S, O), O);
    };
  }
  const w = /* @__PURE__ */ markRaw({
    actions: {},
    getters: {},
    state: [],
    hotState: E
  }), I = {
    _p: o,
    // _s: scope,
    $id: t,
    $onAction: addSubscription.bind(null, _),
    $patch: p,
    $reset: v,
    $subscribe(f, d = {}) {
      const b = addSubscription(m, f, d.detached, () => S()), S = i.run(() => watch(() => o.state.value[t], (V) => {
        (d.flush === "sync" ? h : u) && f({
          storeId: t,
          type: MutationType.direct,
          events: $
        }, V);
      }, assign({}, c, d)));
      return b;
    },
    $dispose: x
  }, g = reactive(process.env.NODE_ENV !== "production" || USE_DEVTOOLS ? assign(
    {
      _hmrPayload: w,
      _customProperties: markRaw(/* @__PURE__ */ new Set())
      // devtools custom properties
    },
    I
    // must be added later
    // setupStore
  ) : I);
  o._s.set(t, g);
  const A = (o._a && o._a.runWithContext || fallbackRunWithContext)(() => o._e.run(() => (i = effectScope()).run(a)));
  for (const f in A) {
    const d = A[f];
    if (isRef(d) && !isComputed(d) || isReactive(d))
      process.env.NODE_ENV !== "production" && s ? set(E.value, f, toRef(A, f)) : n || (y && shouldHydrate(d) && (isRef(d) ? d.value = y[f] : mergeReactiveObjects(d, y[f])), o.state.value[t][f] = d), process.env.NODE_ENV !== "production" && w.state.push(f);
    else if (typeof d == "function") {
      const b = process.env.NODE_ENV !== "production" && s ? d : N(f, d);
      A[f] = b, process.env.NODE_ENV !== "production" && (w.actions[f] = d), l.actions[f] = d;
    } else
      process.env.NODE_ENV !== "production" && isComputed(d) && (w.getters[f] = n ? (
        // @ts-expect-error
        r.getters[f]
      ) : d, IS_CLIENT && (A._getters || // @ts-expect-error: same
      (A._getters = markRaw([]))).push(f));
  }
  if (assign(g, A), assign(toRaw(g), A), Object.defineProperty(g, "$state", {
    get: () => process.env.NODE_ENV !== "production" && s ? E.value : o.state.value[t],
    set: (f) => {
      if (process.env.NODE_ENV !== "production" && s)
        throw new Error("cannot set hotState");
      p((d) => {
        assign(d, f);
      });
    }
  }), process.env.NODE_ENV !== "production" && (g._hotUpdate = markRaw((f) => {
    g._hotUpdating = !0, f._hmrPayload.state.forEach((d) => {
      if (d in g.$state) {
        const b = f.$state[d], S = g.$state[d];
        typeof b == "object" && isPlainObject(b) && isPlainObject(S) ? patchObject(b, S) : f.$state[d] = S;
      }
      set(g, d, toRef(f.$state, d));
    }), Object.keys(g.$state).forEach((d) => {
      d in f.$state || del(g, d);
    }), u = !1, h = !1, o.state.value[t] = toRef(f._hmrPayload, "hotState"), h = !0, nextTick().then(() => {
      u = !0;
    });
    for (const d in f._hmrPayload.actions) {
      const b = f[d];
      set(g, d, N(d, b));
    }
    for (const d in f._hmrPayload.getters) {
      const b = f._hmrPayload.getters[d], S = n ? (
        // special handling of options api
        computed(() => (setActivePinia(o), b.call(g, g)))
      ) : b;
      set(g, d, S);
    }
    Object.keys(g._hmrPayload.getters).forEach((d) => {
      d in f._hmrPayload.getters || del(g, d);
    }), Object.keys(g._hmrPayload.actions).forEach((d) => {
      d in f._hmrPayload.actions || del(g, d);
    }), g._hmrPayload = f._hmrPayload, g._getters = f._getters, g._hotUpdating = !1;
  })), USE_DEVTOOLS) {
    const f = {
      writable: !0,
      configurable: !0,
      // avoid warning on devtools trying to display this property
      enumerable: !1
    };
    ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((d) => {
      Object.defineProperty(g, d, assign({ value: g[d] }, f));
    });
  }
  return o._p.forEach((f) => {
    if (USE_DEVTOOLS) {
      const d = i.run(() => f({
        store: g,
        app: o._a,
        pinia: o,
        options: l
      }));
      Object.keys(d || {}).forEach((b) => g._customProperties.add(b)), assign(g, d);
    } else
      assign(g, i.run(() => f({
        store: g,
        app: o._a,
        pinia: o,
        options: l
      })));
  }), process.env.NODE_ENV !== "production" && g.$state && typeof g.$state == "object" && typeof g.$state.constructor == "function" && !g.$state.constructor.toString().includes("[native code]") && console.warn(`[🍍]: The "state" must be a plain object. It cannot be
	state: () => new MyClass()
Found in store "${g.$id}".`), y && n && r.hydrate && r.hydrate(g.$state, y), u = !0, h = !0, g;
}
function defineStore(t, a, r) {
  let o, s;
  const n = typeof a == "function";
  if (typeof t == "string")
    o = t, s = n ? r : a;
  else if (s = t, o = t.id, process.env.NODE_ENV !== "production" && typeof o != "string")
    throw new Error('[🍍]: "defineStore()" must be passed a store id as its first argument.');
  function i(l, c) {
    const u = hasInjectionContext();
    if (l = // in test mode, ignore the argument provided as we can always retrieve a
    // pinia instance with getActivePinia()
    (process.env.NODE_ENV === "test" && activePinia && activePinia._testing ? null : l) || (u ? inject(piniaSymbol, null) : null), l && setActivePinia(l), process.env.NODE_ENV !== "production" && !activePinia)
      throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.
This will fail in production.`);
    l = activePinia, l._s.has(o) || (n ? createSetupStore(o, a, s, l) : createOptionsStore(o, s, l), process.env.NODE_ENV !== "production" && (i._pinia = l));
    const h = l._s.get(o);
    if (process.env.NODE_ENV !== "production" && c) {
      const m = "__hot:" + o, _ = n ? createSetupStore(m, a, s, l, !0) : createOptionsStore(m, assign({}, s), l, !0);
      c._hotUpdate(_), delete l.state.value[m], l._s.delete(m);
    }
    if (process.env.NODE_ENV !== "production" && IS_CLIENT) {
      const m = getCurrentInstance();
      if (m && m.proxy && // avoid adding stores that are just built for hot module replacement
      !c) {
        const _ = m.proxy, $ = "_pStores" in _ ? _._pStores : _._pStores = {};
        $[o] = h;
      }
    }
    return h;
  }
  return i.$id = o, i;
}
let random = (t) => crypto.getRandomValues(new Uint8Array(t)), customRandom = (t, a, r) => {
  let o = (2 << Math.log(t.length - 1) / Math.LN2) - 1, s = -~(1.6 * o * a / t.length);
  return (n = a) => {
    let i = "";
    for (; ; ) {
      let l = r(s), c = s;
      for (; c--; )
        if (i += t[l[c] & o] || "", i.length === n)
          return i;
    }
  };
}, customAlphabet = (t, a = 21) => customRandom(t, a, random);
const getDefaultProps = () => ({
  uuid: "",
  type: "braid-txt",
  name: "",
  isEdit: !0,
  dragable: !0,
  // 是否可拖拽
  resizable: !0,
  // 尺寸是否可变
  width: 120,
  height: 40,
  left: 50,
  top: 0,
  value: "自定义文本",
  title: "自定义文本",
  defaultValue: "自定义文本",
  style: { zIndex: 1 }
}), getCodeTypeArray = () => ["128A", "128B", "128C", "128Auto", "EAN8", "EAN13", "EAN128A", "EAN128B", "EAN128C", "Code39", "39Extended", "2_5interleaved", "2_5industrial", "2_5matrix", "UPC_A", "UPC_E0", "UPC_E1", "UPCsupp2", "UPCsupp5", "Code93", "93Extended", "MSI", "PostNet", "Codabar", "QRCode", "PDF417"], getItemTypeArray = () => [
  { label: "普通项", value: 0 },
  { label: "页眉页脚", value: 1 },
  { label: "页号项", value: 2 },
  { label: "页数项", value: 3 },
  { label: "多页项", value: 4 }
], actions = {
  // 添加模板项
  addTempItem(t, a) {
    this.addTempItems(t, a), this.select(t, {
      uuid: t.page.tempItems[t.page.tempItems.length - 1].uuid
    });
  },
  // 初始化模板设计器
  async designerInit(t, a) {
    this.initOptionItems(t, a.options), this.initPage(t, a.tempValue);
  },
  // 初始化页面属性
  initPage(t, a) {
    t.page = a;
    let r = a.tempItems ? a.tempItems.map((o) => ({ ...t.widgetSetting[o.type], ...o, style: { ...t.widgetSetting[o.type].style, ...o.style || {} } })) : [];
    t.page.tempItems = r;
  },
  // 初始化可选对象
  initOptionItems(t, a) {
    let r = a ? a.map((o) => ({ ...t.widgetSetting[o.type], ...o, style: { ...t.widgetSetting[o.type].style, ...o.style || {} } })) : [];
    t.optionItems = r;
  },
  // 初始化选中对象
  initActive(t) {
    t.activeElement = getDefaultProps();
  },
  // 设置 mousemove 操作的初始值
  initmove(t, a) {
    t.startX = a.startX, t.startY = a.startY, t.originX = a.originX, t.originY = a.originY, t.moving = !0;
  },
  // 选中元件与取消选中
  select(t, a) {
    if (t.uuid = a.uuid, a.uuid === -1)
      t.activeElement = getDefaultProps(), t.type = "page";
    else {
      let r = t.page.tempItems.find((o) => o.uuid === a.uuid);
      r && (t.activeElement = r, t.type = r.type);
    }
  },
  // 元件移动结束
  stopmove(t) {
    t.moving = !1;
  },
  // 移动元件
  move(t, a) {
    var r = t.activeElement, o = a.x - t.startX, s = a.y - t.startY, n = t.originX + Math.floor(o * 100 / t.zoom), i = t.originY + Math.floor(s * 100 / t.zoom);
    r.left = n > 0 ? n : 0, r.top = i > 0 ? i : 0;
  },
  // 调整元件尺寸
  resize(t, a) {
    var r = a.x - t.startX, o = a.y - t.startY, s;
    if (a.type === "right") {
      s = t.originX + Math.floor(r * 100 / t.zoom), t.activeElement.width = s > 10 ? s : 10;
      return;
    }
    if (a.type === "down") {
      s = t.originX + Math.floor(o * 100 / t.zoom), t.activeElement.height = s > 10 ? s : 10;
      return;
    }
    if (a.type === "left") {
      var n = t.originX + Math.floor(r * 100 / t.zoom), i = t.originY - Math.floor(r * 100 / t.zoom);
      t.activeElement.left = n > 0 ? n : 0, t.activeElement.width = i > 10 ? i : 10;
      return;
    }
    if (a.type === "up") {
      var l = t.originX + Math.floor(o * 100 / t.zoom), c = t.originY - Math.floor(o * 100 / t.zoom);
      t.activeElement.top = l > 0 ? l : 0, t.activeElement.height = c > 10 ? c : 10;
    }
  },
  // 更新元件初始 top 值
  updateSrollTop(t, a) {
    t.top = a;
  },
  // 页面缩放
  zoom(t, a) {
    t.zoom = a;
  },
  // 删除选中元件
  delete(t, a) {
    var r = t.type;
    if (r === "page")
      return;
    let o = 0;
    t.page.tempItems.forEach((s, n) => {
      s.uuid === a && (o = n);
    }), t.page.tempItems.splice(o, 1), t.activeElement = getDefaultProps(), t.type = "page", t.uuid = -1;
  },
  //添加组件
  addTempItems(t, a) {
    let r = { uuid: customAlphabet("1234567890abcdef", 10) }, o = JSON.parse(JSON.stringify(a));
    t.page.tempItems.push(Object.assign(o, r));
  },
  // 更新数据
  updateData(t, { uuid: a, value: r }) {
    let o = t.page.tempItems.find((s) => s.uuid === a);
    o && (o.value = r);
  },
  // 设置模板Id
  setTempId(t, a) {
    t.tempId = a;
  },
  setLoading(t, a) {
    t.loading = a;
  },
  // 设置模板默认属性
  setWidgetSetting(t, a) {
    t.widgetSetting = a;
  }
}, WIDGET_NAME$4 = "braid-txt", _sfc_main$c = {
  name: WIDGET_NAME$4,
  setting: {
    type: WIDGET_NAME$4,
    isEdit: !0,
    dragable: !0,
    // 是否可拖拽
    resizable: !0,
    // 尺寸是否可变
    width: 120,
    height: 40,
    left: 50,
    top: 0,
    title: "自定义文本",
    value: "自定义文本",
    defaultValue: "自定义文本",
    name: "",
    style: {
      zIndex: 0,
      FontSize: 9,
      FontColor: "#000000",
      Bold: !1,
      // 1代表粗体,0代表非粗体
      Italic: !1,
      // 1代表斜体,0代表非斜体
      Underline: !1,
      // 1代表有下划线,0代表无下划线
      Alignment: "left",
      // 对齐方式
      ItemType: 0
      // 打印类型 0--普通项 1--页眉页脚 2--页号项 3--页数项 4--多页项
    }
  },
  props: [
    "val"
    // 文本对象
  ],
  methods: {
    updateText(t, a) {
      let r = t.target.innerHTML;
      useStore().updateData(useStore().state, {
        uuid: a,
        key: "value",
        value: r
      });
    }
  }
}, _hoisted_1$b = ["innerHTML", "contenteditable"];
function _sfc_render$b(t, a, r, o, s, n) {
  return openBlock(), createElementBlock("div", {
    class: "widgets",
    innerHTML: r.val.value,
    contenteditable: !!r.val.isEdit,
    onBlur: a[0] || (a[0] = (i) => n.updateText(i, r.val.uuid)),
    style: normalizeStyle({
      position: "absolute",
      left: r.val.left + "px",
      top: r.val.top + "px",
      width: r.val.width + "px",
      minHeight: r.val.height + "px",
      zIndex: r.val.style.zIndex,
      fontSize: r.val.style.FontSize + "pt",
      color: r.val.style.FontColor,
      textAlign: r.val.style.Alignment,
      fontWeight: r.val.style.Bold ? "bold" : "normal"
    })
  }, null, 44, _hoisted_1$b);
}
const braidTxt = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b]]), WIDGET_NAME$3 = "bar-code", _sfc_main$b = {
  name: WIDGET_NAME$3,
  setting: {
    type: WIDGET_NAME$3,
    isEdit: !1,
    dragable: !0,
    // 是否可拖拽
    resizable: !0,
    // 尺寸是否可变
    width: 120,
    height: 40,
    left: 50,
    top: 0,
    title: "条码",
    value: "1234567890",
    defaultValue: "1234567890",
    name: "",
    style: {
      zIndex: 0,
      FontSize: 9,
      ShowBarText: !1,
      // 条码是否显示值 0--不显示 1--显示
      codeType: "Code39",
      // 条码类型
      ItemType: 0
      // 打印类型 0--普通项 1--页眉页脚 2--页号项 3--页数项 4--多页项
    }
  },
  props: ["val"],
  data() {
    return {
      // codeImg: require('../../../assets/image/barCode.png'),
    };
  },
  computed: {
    // 'QRCode', 'PDF417'
    codeUrl() {
      return this.val.style.codeType === "QRCode" ? require("./QRCode.png") : this.val.style.codeType === "PDF417" ? require("./PDF417.png") : require("./barCode.png");
    }
  }
}, _hoisted_1$a = ["src"];
function _sfc_render$a(t, a, r, o, s, n) {
  return openBlock(), createElementBlock("div", {
    class: "bar-code",
    style: normalizeStyle({
      position: "absolute",
      width: r.val.width + "px",
      height: r.val.height + "px",
      left: r.val.left + "px",
      top: r.val.top + "px",
      zIndex: r.val.zIndex
    })
  }, [
    createElementVNode("img", { src: n.codeUrl }, null, 8, _hoisted_1$a),
    createElementVNode("div", {
      class: "text",
      style: normalizeStyle({
        display: r.val.style.ShowBarText ? "" : "none",
        fontSize: r.val.style.FontSize + "pt",
        fontWeight: r.val.style.Bold ? "bold" : "normal"
      })
    }, "1234567890", 4)
  ], 4);
}
const barCode = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-6c5b651d"]]), WIDGET_NAME$2 = "braid-table", _sfc_main$a = {
  name: WIDGET_NAME$2,
  setting: {
    type: WIDGET_NAME$2,
    isEdit: !1,
    // 是否可编辑
    dragable: !0,
    // 是否可拖拽
    resizable: !0,
    // 尺寸是否可变
    width: 240,
    height: 60,
    left: 50,
    top: 10,
    title: "表格",
    value: [],
    defaultValue: [],
    tabelHtml: "",
    columnsAttr: [],
    // 表格列选项
    columns: [],
    // 已选表格列表
    selectCol: [],
    // 已选表格列name数组(用于多选框双向绑定)
    name: "",
    style: {
      zIndex: 0,
      Alignment: "left",
      // 对齐方式 1--左靠齐 2--居中 3--右靠齐
      FontSize: 9,
      FontColor: "#000000",
      BorderColor: "#000000",
      AutoHeight: !1,
      // 高度自动(模板在该元素位置以下的元素都关联打印)
      BottomMargin: 0
      // 距离下边距
    }
  },
  props: [
    "val"
    // 文本对象
  ],
  computed: {
    // 去掉type='row'的数据
    columns() {
      return this.val.columns || [];
    }
  },
  methods: {}
}, _hoisted_1$9 = {
  border: "1",
  width: "100%",
  cellspacing: "0",
  cellpadding: "2",
  style: { "border-collapse": "collapse", "font-size": "12px" },
  bordercolor: "#000000"
}, _hoisted_2$4 = ["width"];
function _sfc_render$9(t, a, r, o, s, n) {
  return openBlock(), createElementBlock("div", {
    class: "widgets",
    style: normalizeStyle([{
      left: r.val.left + "px",
      top: r.val.top + "px",
      width: r.val.width + "px",
      height: r.val.height + "px",
      textAlign: r.val.style.Alignment,
      fontSize: r.val.style.FontSize + "pt",
      color: r.val.style.FontColor
    }, { position: "absolute", overflow: "hidden" }])
  }, [
    createElementVNode("table", _hoisted_1$9, [
      createElementVNode("tr", null, [
        (openBlock(!0), createElementBlock(Fragment, null, renderList(n.columns, (i) => (openBlock(), createElementBlock("th", {
          key: i.name,
          width: i.name === "_seq" ? 40 : ""
        }, toDisplayString(i.title), 9, _hoisted_2$4))), 128))
      ]),
      createElementVNode("tr", null, [
        (openBlock(!0), createElementBlock(Fragment, null, renderList(n.columns, (i) => (openBlock(), createElementBlock("td", {
          key: i.name
        }, toDisplayString(i.value), 1))), 128))
      ])
    ])
  ], 4);
}
const table = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9]]), WIDGET_NAME$1 = "braid-image", _sfc_main$9 = {
  name: WIDGET_NAME$1,
  setting: {
    type: WIDGET_NAME$1,
    title: "图片",
    isEdit: !1,
    dragable: !0,
    // 是否可拖拽
    resizable: !0,
    // 尺寸是否可变
    width: 120,
    height: 40,
    left: 50,
    top: 0,
    value: "",
    defaultValue: "",
    name: "",
    style: {
      zIndex: 0,
      ItemType: 0
      // 打印类型 0--普通项 1--页眉页脚 2--页号项 3--页数项 4--多页项
    }
  },
  props: [
    "val"
    // 图片对象
  ],
  data() {
    return {};
  },
  computed: {
    imageUrl() {
      return this.val.value;
    }
  },
  watch: {
    val(t) {
      this.imageUrl = t.value;
    }
  }
}, _hoisted_1$8 = ["title", "src"];
function _sfc_render$8(t, a, r, o, s, n) {
  return openBlock(), createElementBlock("div", {
    class: "widgets",
    style: normalizeStyle({
      position: "absolute",
      width: r.val.width + "px",
      height: r.val.height + "px",
      left: r.val.left + "px",
      top: r.val.top + "px",
      zIndex: r.val.zIndex
    })
  }, [
    createElementVNode("img", {
      class: "braid-image",
      title: r.val.title,
      src: r.val.value || r.val.defaultValue
    }, null, 8, _hoisted_1$8)
  ], 4);
}
const image = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-0839a766"]]), WIDGET_NAME = "braid-html", _sfc_main$8 = {
  name: WIDGET_NAME,
  setting: {
    type: WIDGET_NAME,
    isEdit: !1,
    dragable: !0,
    // 是否可拖拽
    resizable: !0,
    // 尺寸是否可变
    width: 120,
    height: 40,
    left: 50,
    top: 0,
    title: "html",
    value: "<div>html<div>",
    defaultValue: "<div>html<div>",
    name: "",
    style: {
      zIndex: 0,
      ItemType: 0,
      // 打印类型 0--普通项 1--页眉页脚 2--页号项 3--页数项 4--多页项
      AutoHeight: !1,
      // 高度自动(模板在该元素位置以下的元素都关联打印)
      BottomMargin: 0
      // 距离下边距
    }
  },
  props: [
    "val"
    // 文本对象
  ],
  methods: {
    updateText(t, a) {
      let r = t.target.innerHTML;
      useStore().updateData(useStore().state, {
        uuid: a,
        key: "value",
        value: r
      });
    }
  }
}, _hoisted_1$7 = ["innerHTML", "contenteditable"];
function _sfc_render$7(t, a, r, o, s, n) {
  return openBlock(), createElementBlock("div", {
    class: "widgets",
    innerHTML: r.val.value,
    contenteditable: !!r.val.isEdit,
    onBlur: a[0] || (a[0] = (i) => n.updateText(i, r.val.uuid)),
    style: normalizeStyle({
      position: "absolute",
      left: r.val.left + "px",
      top: r.val.top + "px",
      width: r.val.width + "px",
      minHeight: r.val.height + "px",
      zIndex: r.val.style.zIndex,
      fontSize: r.val.style.FontSize + "pt",
      color: r.val.style.FontColor
    })
  }, null, 44, _hoisted_1$7);
}
const html = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7]]), install = function(t) {
  t.component(braidTxt.name, braidTxt), t.component(barCode.name, barCode), t.component(table.name, table), t.component(image.name, image), t.component(html.name, html);
}, getWidgetsSetting = function() {
  return {
    [braidTxt.name]: braidTxt.setting,
    [barCode.name]: barCode.setting,
    [table.name]: table.setting,
    [image.name]: image.setting,
    [html.name]: html.setting
  };
}, widgets = {
  install,
  getWidgetsSetting
}, state = {
  zoom: 100,
  // 画布缩放百分比
  type: "page",
  // 选中元素类型
  index: -1,
  // 选中元素索引
  uuid: -1,
  // 选中元素uuid
  originX: 0,
  // 选中元件的横向初始值
  originY: 0,
  // 选中元件的纵向初始值
  startX: 0,
  // 鼠标摁下时的横坐标
  startY: 0,
  // 鼠标摁下时的纵坐标
  moving: !1,
  // 是否正在移动元件(参考线仅在移动元件时显示)
  activeElement: getDefaultProps(),
  // 选中对象,要么是元件,要么是页面
  // 模板信息
  page: {
    title: "demo",
    width: 750,
    height: 550,
    pageWidth: 750,
    pageHeight: 550,
    tempItems: []
    // 模板已选项
  },
  optionItems: [],
  // 可选项
  //模板参数
  tempId: "",
  // 模板Id
  loading: !1,
  // 是否正在初始化中
  widgetSetting: widgets.getWidgetsSetting()
  // 模板组件默认属性
}, useStore = defineStore("main", {
  state: () => ({
    state
  }),
  getters: {},
  actions
}), _sfc_main$7 = {
  data() {
    return {
      type: ""
      // 调整方向 left | right | up | down
    };
  },
  computed: {
    optionsType() {
      return useStore().state.type;
    },
    elm() {
      let t = useStore().state.activeElement;
      return t.resizable ? t : "";
    }
  },
  methods: {
    handlemousedown(t, a, r, o) {
      t.stopPropagation(), this.type = a, useStore().initmove(useStore().state, {
        startX: t.pageX,
        startY: t.pageY,
        originX: this.elm[r],
        originY: this.elm[o]
      }), document.addEventListener("mousemove", this.handlemousemove, !0), document.addEventListener("mouseup", this.handlemouseup, !0);
    },
    handlemousemove(t) {
      t.stopPropagation(), t.preventDefault(), useStore().resize(useStore().state, {
        x: t.pageX,
        y: t.pageY,
        type: this.type
      });
    },
    handlemouseup() {
      document.removeEventListener("mousemove", this.handlemousemove, !0), document.removeEventListener("mouseup", this.handlemouseup, !0), useStore().stopmove(useStore().state);
    }
  }
}, _withScopeId = (t) => (pushScopeId("data-v-0b37bca1"), t = t(), popScopeId(), t), _hoisted_1$6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "square" }, null, -1)), _hoisted_2$3 = [
  _hoisted_1$6
], _hoisted_3$2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "square" }, null, -1)), _hoisted_4$1 = [
  _hoisted_3$2
], _hoisted_5$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "square" }, null, -1)), _hoisted_6 = [
  _hoisted_5$1
], _hoisted_7 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createElementVNode("div", { class: "square" }, null, -1)), _hoisted_8 = [
  _hoisted_7
];
function _sfc_render$6(t, a, r, o, s, n) {
  return withDirectives((openBlock(), createElementBlock("div", null, [
    createElementVNode("div", {
      style: normalizeStyle({
        height: n.elm.height + "px",
        top: n.elm.top + "px",
        left: n.elm.left + "px"
      }),
      class: "verti",
      onMousedown: a[0] || (a[0] = (i) => n.handlemousedown(i, "left", "left", "width"))
    }, _hoisted_2$3, 36),
    createElementVNode("div", {
      style: normalizeStyle({
        height: n.elm.height + "px",
        top: n.elm.top + "px",
        left: n.elm.left + n.elm.width + "px"
      }),
      class: "verti",
      onMousedown: a[1] || (a[1] = (i) => n.handlemousedown(i, "right", "width"))
    }, _hoisted_4$1, 36),
    createElementVNode("div", {
      style: normalizeStyle({
        width: n.elm.width + "px",
        top: n.elm.top + "px",
        left: n.elm.left + "px"
      }),
      class: "horiz",
      onMousedown: a[2] || (a[2] = (i) => n.handlemousedown(i, "up", "top", "height"))
    }, _hoisted_6, 36),
    createElementVNode("div", {
      style: normalizeStyle({
        width: n.elm.width + "px",
        top: n.elm.top + n.elm.height + "px",
        left: n.elm.left + "px"
      }),
      class: "horiz",
      onMousedown: a[3] || (a[3] = (i) => n.handlemousedown(i, "down", "height"))
    }, _hoisted_8, 36)
  ], 512)), [
    [vShow, n.optionsType !== "page"]
  ]);
}
const control = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-0b37bca1"]]), move = {
  methods: {
    /**
     * 初始化鼠标拖拽事件
     * @param {*} e 
     */
    initmovement(t) {
      var a = useStore().state.activeElement;
      useStore().initmove(useStore().state, {
        startX: t.pageX,
        startY: t.pageY,
        originX: a.left,
        originY: a.top
      }), document.addEventListener("mousemove", this.handlemousemove, !0), document.addEventListener("mouseup", this.handlemouseup, !0);
    },
    /**
     * 鼠标移动
     * @param {*} e 
     */
    handlemousemove(t) {
      t.stopPropagation(), t.preventDefault(), useStore().move(useStore().state, {
        x: t.pageX,
        y: t.pageY
      });
    },
    /**
     * 鼠标up
     */
    handlemouseup() {
      document.removeEventListener("mousemove", this.handlemousemove, !0), document.removeEventListener("mouseup", this.handlemouseup, !0), useStore().stopmove(useStore().state);
    }
  }
}, _sfc_main$6 = {
  components: {
    control
    // 尺寸控制
  },
  mixins: [move],
  data() {
    return {};
  },
  computed: {
    // 已添加的组件
    widgetStore() {
      return useStore().state.page.tempItems;
    },
    // 背景图地址
    backImg() {
      return useStore().state.page.imageUrl ? useStore().state.page.imageUrl : "";
    },
    // 画布高度
    page() {
      return useStore().state.page;
    },
    // 选中项id
    widgetId() {
      return useStore().state.uuid;
    }
  },
  mounted() {
    let t = document.getElementById("viewport");
    t ? t.addEventListener("mousedown", this.handleSelection, !1) : console.error("未找的‘viewport’节点"), document.addEventListener(
      "keydown",
      (a) => {
        a.stopPropagation();
        var r = useStore().state.activeElement;
        if (a.keyCode === 37 && r.left) {
          r.left -= 1;
          return;
        }
        if (a.keyCode === 38 && r.top) {
          a.preventDefault(), r.top -= 1;
          return;
        }
        if (a.keyCode === 39 && r.left) {
          r.left += 1;
          return;
        }
        a.keyCode === 40 && r.top && (a.preventDefault(), r.top += 1);
      },
      !0
    );
  },
  methods: {
    /**
     * 目标元素获得焦点
     */
    handleSelection(t) {
      var a = this.selectTarget(t.target);
      if (a) {
        var r = a.getAttribute("data-uuid");
        useStore().select(useStore().state, {
          uuid: r || -1
        }), a = useStore().state.activeElement, a.dragable && this.initmovement(t);
      } else
        useStore().select(useStore().state, {
          uuid: -1
        });
    },
    /**
     * 获得选中的目标,如果没有返回false
     */
    selectTarget(t) {
      let a = t.getAttribute("data-type");
      return a ? a === "viewport" ? !1 : t : this.selectTarget(t.parentNode);
    }
  }
}, _hoisted_1$5 = {
  id: "viewport",
  "data-type": "viewport",
  class: "holder"
};
function _sfc_render$5(t, a, r, o, s, n) {
  const i = resolveComponent("control");
  return openBlock(), createElementBlock("div", _hoisted_1$5, [
    createElementVNode("div", {
      style: normalizeStyle({
        height: n.page.height + "px",
        width: n.page.width + "px",
        backgroundImage: "url(" + n.backImg + ")"
      }),
      class: "screen"
    }, [
      (openBlock(!0), createElementBlock(Fragment, null, renderList(n.widgetStore, (l) => (openBlock(), createBlock(resolveDynamicComponent(l.type), {
        "data-title": l.type,
        class: normalizeClass([{ active: n.widgetId === l.uuid }, "layer"]),
        key: l.uuid,
        val: l,
        "data-type": l.type,
        "data-uuid": l.uuid
      }, null, 8, ["data-title", "class", "val", "data-type", "data-uuid"]))), 128)),
      createVNode(i)
    ], 4)
  ]);
}
const Viewport = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-fba8105c"]]), _sfc_main$5 = {
  computed: {
    pageInfo() {
      return useStore().state.page;
    }
  }
}, _hoisted_1$4 = /* @__PURE__ */ createElementVNode("span", { class: "unit-text" }, "(mm)", -1), _hoisted_2$2 = /* @__PURE__ */ createElementVNode("span", { class: "unit-text" }, "(mm)", -1);
function _sfc_render$4(t, a, r, o, s, n) {
  const i = resolveComponent("el-input"), l = resolveComponent("el-form-item"), c = resolveComponent("el-row"), u = resolveComponent("el-input-number"), h = resolveComponent("el-col"), m = resolveComponent("el-form");
  return openBlock(), createElementBlock("div", null, [
    createVNode(m, {
      "label-width": "80px",
      model: n.pageInfo,
      size: "mini",
      class: "kr-form"
    }, {
      default: withCtx(() => [
        createVNode(c, null, {
          default: withCtx(() => [
            createVNode(l, { label: "模板名称" }, {
              default: withCtx(() => [
                createVNode(i, {
                  modelValue: n.pageInfo.title,
                  "onUpdate:modelValue": a[0] || (a[0] = (_) => n.pageInfo.title = _),
                  class: "full-w"
                }, null, 8, ["modelValue"])
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(c, null, {
          default: withCtx(() => [
            createVNode(h, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "模板宽度" }, {
                  default: withCtx(() => [
                    createVNode(u, {
                      modelValue: n.pageInfo.width,
                      "onUpdate:modelValue": a[1] || (a[1] = (_) => n.pageInfo.width = _),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(h, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "模板高度" }, {
                  default: withCtx(() => [
                    createVNode(u, {
                      modelValue: n.pageInfo.height,
                      "onUpdate:modelValue": a[2] || (a[2] = (_) => n.pageInfo.height = _),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(c, null, {
          default: withCtx(() => [
            createVNode(l, { label: "纸张宽度" }, {
              default: withCtx(() => [
                createVNode(u, {
                  modelValue: n.pageInfo.pageWidth,
                  "onUpdate:modelValue": a[3] || (a[3] = (_) => n.pageInfo.pageWidth = _),
                  "controls-position": "right",
                  min: 0,
                  class: "min-input"
                }, null, 8, ["modelValue"]),
                _hoisted_1$4
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(c, null, {
          default: withCtx(() => [
            createVNode(l, { label: "纸张高度" }, {
              default: withCtx(() => [
                createVNode(u, {
                  modelValue: n.pageInfo.pageHeight,
                  "onUpdate:modelValue": a[4] || (a[4] = (_) => n.pageInfo.pageHeight = _),
                  "controls-position": "right",
                  min: 0,
                  class: "min-input"
                }, null, 8, ["modelValue"]),
                _hoisted_2$2
              ]),
              _: 1
            })
          ]),
          _: 1
        })
      ]),
      _: 1
    }, 8, ["model"])
  ]);
}
const page = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4]]), _sfc_main$4 = {
  data() {
    return {
      codeTypeArray: getCodeTypeArray(),
      itemTypeArray: getItemTypeArray()
    };
  },
  computed: {
    activeElement() {
      return useStore().state.activeElement;
    },
    // 页面高度
    height() {
      return useStore().state.page.height;
    }
  }
};
function _sfc_render$3(t, a, r, o, s, n) {
  const i = resolveComponent("el-input-number"), l = resolveComponent("el-form-item"), c = resolveComponent("el-col"), u = resolveComponent("el-row"), h = resolveComponent("el-switch"), m = resolveComponent("el-color-picker"), _ = resolveComponent("el-radio"), $ = resolveComponent("el-radio-group"), y = resolveComponent("el-option"), E = resolveComponent("el-select"), T = resolveComponent("el-form");
  return openBlock(), createElementBlock("div", null, [
    createVNode(T, {
      "label-width": "80px",
      model: n.activeElement,
      size: "mini",
      class: "kr-form"
    }, {
      default: withCtx(() => [
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "宽度" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      modelValue: n.activeElement.width,
                      "onUpdate:modelValue": a[0] || (a[0] = (p) => n.activeElement.width = p),
                      "controls-position": "right",
                      min: 1,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "高度" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      modelValue: n.activeElement.height,
                      "onUpdate:modelValue": a[1] || (a[1] = (p) => n.activeElement.height = p),
                      "controls-position": "right",
                      min: 1,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "横坐标" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      modelValue: n.activeElement.left,
                      "onUpdate:modelValue": a[2] || (a[2] = (p) => n.activeElement.left = p),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "纵坐标" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      modelValue: n.activeElement.top,
                      "onUpdate:modelValue": a[3] || (a[3] = (p) => n.activeElement.top = p),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "字号" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      disabled: n.activeElement.style.FontSize === void 0,
                      modelValue: n.activeElement.style.FontSize,
                      "onUpdate:modelValue": a[4] || (a[4] = (p) => n.activeElement.style.FontSize = p),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "加粗" }, {
                  default: withCtx(() => [
                    createVNode(h, {
                      disabled: n.activeElement.style.Bold === void 0,
                      modelValue: n.activeElement.style.Bold,
                      "onUpdate:modelValue": a[5] || (a[5] = (p) => n.activeElement.style.Bold = p),
                      "active-value": !0,
                      "inactive-value": !1
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(c, { span: 8 }, {
              default: withCtx(() => [
                createVNode(l, { label: "字体颜色" }, {
                  default: withCtx(() => [
                    createVNode(m, {
                      disabled: n.activeElement.style.FontColor === void 0,
                      modelValue: n.activeElement.style.FontColor,
                      "onUpdate:modelValue": a[6] || (a[6] = (p) => n.activeElement.style.FontColor = p)
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 8 }, {
              default: withCtx(() => [
                createVNode(l, { label: "边框颜色" }, {
                  default: withCtx(() => [
                    createVNode(m, {
                      disabled: n.activeElement.style.BorderColor === void 0,
                      modelValue: n.activeElement.style.BorderColor,
                      "onUpdate:modelValue": a[7] || (a[7] = (p) => n.activeElement.style.BorderColor = p)
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 8 }, {
              default: withCtx(() => [
                createVNode(l, { label: "条码值" }, {
                  default: withCtx(() => [
                    createVNode(h, {
                      disabled: n.activeElement.style.ShowBarText === void 0,
                      modelValue: n.activeElement.style.ShowBarText,
                      "onUpdate:modelValue": a[8] || (a[8] = (p) => n.activeElement.style.ShowBarText = p),
                      "active-value": !0,
                      "inactive-value": !1
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(l, { label: "对齐方式" }, {
              default: withCtx(() => [
                createVNode($, {
                  disabled: n.activeElement.style.Alignment === void 0,
                  modelValue: n.activeElement.style.Alignment,
                  "onUpdate:modelValue": a[9] || (a[9] = (p) => n.activeElement.style.Alignment = p)
                }, {
                  default: withCtx(() => [
                    createVNode(_, { label: "left" }, {
                      default: withCtx(() => [
                        createTextVNode("左对齐")
                      ]),
                      _: 1
                    }),
                    createVNode(_, { label: "center" }, {
                      default: withCtx(() => [
                        createTextVNode("居中")
                      ]),
                      _: 1
                    }),
                    createVNode(_, { label: "right" }, {
                      default: withCtx(() => [
                        createTextVNode("右对齐")
                      ]),
                      _: 1
                    })
                  ]),
                  _: 1
                }, 8, ["disabled", "modelValue"])
              ]),
              _: 1
            })
          ]),
          _: 1
        }),
        createVNode(u, null, {
          default: withCtx(() => [
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "条码类型" }, {
                  default: withCtx(() => [
                    createVNode(E, {
                      disabled: n.activeElement.style.codeType === void 0,
                      modelValue: n.activeElement.style.codeType,
                      "onUpdate:modelValue": a[10] || (a[10] = (p) => n.activeElement.style.codeType = p),
                      class: "min-input"
                    }, {
                      default: withCtx(() => [
                        (openBlock(!0), createElementBlock(Fragment, null, renderList(s.codeTypeArray, (p) => (openBlock(), createBlock(y, {
                          key: p,
                          label: p,
                          value: p
                        }, null, 8, ["label", "value"]))), 128))
                      ]),
                      _: 1
                    }, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "打印类型" }, {
                  default: withCtx(() => [
                    createVNode(E, {
                      disabled: n.activeElement.style.ItemType === void 0,
                      modelValue: n.activeElement.style.ItemType,
                      "onUpdate:modelValue": a[11] || (a[11] = (p) => n.activeElement.style.ItemType = p),
                      class: "min-input"
                    }, {
                      default: withCtx(() => [
                        (openBlock(!0), createElementBlock(Fragment, null, renderList(s.itemTypeArray, (p) => (openBlock(), createBlock(y, {
                          key: p.value,
                          label: p.label,
                          value: p.value
                        }, null, 8, ["label", "value"]))), 128))
                      ]),
                      _: 1
                    }, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "高度自动" }, {
                  default: withCtx(() => [
                    createVNode(h, {
                      disabled: n.activeElement.style.AutoHeight === void 0,
                      modelValue: n.activeElement.style.AutoHeight,
                      "onUpdate:modelValue": a[12] || (a[12] = (p) => n.activeElement.style.AutoHeight = p),
                      "active-value": !0,
                      "inactive-value": !1
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            }),
            createVNode(c, { span: 12 }, {
              default: withCtx(() => [
                createVNode(l, { label: "下边距" }, {
                  default: withCtx(() => [
                    createVNode(i, {
                      disabled: n.activeElement.style.BottomMargin === void 0 || !n.activeElement.style.AutoHeight,
                      modelValue: n.activeElement.style.BottomMargin,
                      "onUpdate:modelValue": a[13] || (a[13] = (p) => n.activeElement.style.BottomMargin = p),
                      "controls-position": "right",
                      min: 0,
                      class: "min-input"
                    }, null, 8, ["disabled", "modelValue"])
                  ]),
                  _: 1
                })
              ]),
              _: 1
            })
          ]),
          _: 1
        })
      ]),
      _: 1
    }, 8, ["model"])
  ]);
}
const style = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-102d12e4"]]), _sfc_main$3 = {
  data() {
    return {
      tablePopover: !1
    };
  },
  computed: {
    optionItems() {
      return useStore().state.optionItems;
    }
  },
  methods: {
    // 添加组件
    addTempItem(t, a) {
      switch (a.type) {
        case "braid-table": {
          let r = [];
          a.selectCol.forEach((o) => {
            let s = a.columnsAttr.find((n) => n.name === o);
            s && r.push(s);
          }), a.columns = r, useStore().addTempItem(useStore().state, a), this.tablePopover = !1;
          break;
        }
        default:
          useStore().addTempItem(useStore().state, a);
      }
    }
  }
}, _hoisted_1$3 = { class: "options-box" };
function _sfc_render$2(t, a, r, o, s, n) {
  const i = resolveComponent("el-button"), l = resolveComponent("el-checkbox"), c = resolveComponent("el-col"), u = resolveComponent("el-row"), h = resolveComponent("el-checkbox-group"), m = resolveComponent("el-popover");
  return openBlock(), createElementBlock("div", _hoisted_1$3, [
    (openBlock(!0), createElementBlock(Fragment, null, renderList(n.optionItems, (_, $) => (openBlock(), createElementBlock(Fragment, { key: $ }, [
      _.type == "braid-table" ? (openBlock(), createBlock(m, {
        key: 0,
        placement: "right",
        width: 400,
        trigger: "click"
      }, {
        reference: withCtx(() => [
          createVNode(i, { size: "mini" }, {
            default: withCtx(() => [
              createTextVNode(toDisplayString(_.title), 1)
            ]),
            _: 2
          }, 1024)
        ]),
        default: withCtx(() => [
          createElementVNode("div", null, [
            createVNode(h, {
              modelValue: _.selectCol,
              "onUpdate:modelValue": (y) => _.selectCol = y
            }, {
              default: withCtx(() => [
                createVNode(u, null, {
                  default: withCtx(() => [
                    (openBlock(!0), createElementBlock(Fragment, null, renderList(_.columnsAttr, (y) => (openBlock(), createBlock(c, {
                      key: y.name,
                      span: 12
                    }, {
                      default: withCtx(() => [
                        createVNode(l, {
                          label: y.name
                        }, {
                          default: withCtx(() => [
                            createTextVNode(toDisplayString(y.title), 1)
                          ]),
                          _: 2
                        }, 1032, ["label"])
                      ]),
                      _: 2
                    }, 1024))), 128))
                  ]),
                  _: 2
                }, 1024)
              ]),
              _: 2
            }, 1032, ["modelValue", "onUpdate:modelValue"]),
            createVNode(i, {
              size: "mini",
              type: "primary",
              onClick: (y) => {
                n.addTempItem(y, _);
              }
            }, {
              default: withCtx(() => [
                createTextVNode("确定")
              ]),
              _: 2
            }, 1032, ["onClick"])
          ])
        ]),
        _: 2
      }, 1024)) : (openBlock(), createBlock(i, {
        key: 1,
        size: "mini",
        onClick: (y) => {
          n.addTempItem(y, _);
        }
      }, {
        default: withCtx(() => [
          createTextVNode("222" + toDisplayString(_.title), 1)
        ]),
        _: 2
      }, 1032, ["onClick"]))
    ], 64))), 128))
  ]);
}
const options = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-84736db2"]]);
function cumulativeOffset(t) {
  let a = t.offsetTop, r = t.offsetLeft;
  return {
    top: a,
    left: r
  };
}
function checkInView(t) {
  let a = t.getBoundingClientRect();
  return a.top > 0 && a.top < window.innerHeight && a.left < window.innerWidth && a.right > 0;
}
const _sfc_main$2 = {
  computed: {
    // 已添加的组件
    layers() {
      return useStore().state.page.tempItems;
    },
    activeElement() {
      return useStore().state.activeElement;
    }
  },
  methods: {
    activeLayer(t, a) {
      useStore().select(useStore().state, {
        uuid: a.uuid
      });
      let r = document.querySelector("#viewport");
      if (r) {
        let o = r.querySelector(`[data-uuid='${a.uuid}']`);
        o && !checkInView(o) && (r.scrollTop = cumulativeOffset(o).top - 50);
      } else
        console.error('未找到 "#viewport" 的节点');
    },
    // 删除元件
    dele(t, a) {
      useStore().delete(useStore().state, a.uuid);
    }
  }
}, _hoisted_1$2 = { class: "tag-box" };
function _sfc_render$1(t, a, r, o, s, n) {
  const i = resolveComponent("el-tag");
  return openBlock(), createElementBlock("div", _hoisted_1$2, [
    (openBlock(!0), createElementBlock(Fragment, null, renderList(n.layers, (l, c) => (openBlock(), createBlock(i, {
      key: c,
      closable: l === n.activeElement,
      size: "small",
      type: l === n.activeElement ? "" : "info",
      onClick: (u) => {
        n.activeLayer(u, l);
      },
      onClose: (u) => {
        n.dele(u, l);
      }
    }, {
      default: withCtx(() => [
        createTextVNode(toDisplayString(l.title), 1)
      ]),
      _: 2
    }, 1032, ["closable", "type", "onClick", "onClose"]))), 128))
  ]);
}
const layers = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-1b2ea45d"]]), _sfc_main$1 = {
  components: {
    page,
    appearance: style,
    options,
    layers
  },
  data() {
    return {
      activeNames: ["1", "2", "3", "4"]
    };
  }
}, _hoisted_1$1 = { class: "kr-collapse" }, _hoisted_2$1 = /* @__PURE__ */ createElementVNode("span", null, "页面参数", -1), _hoisted_3$1 = /* @__PURE__ */ createElementVNode("span", null, "样式", -1), _hoisted_4 = /* @__PURE__ */ createElementVNode("span", null, "组件", -1), _hoisted_5 = /* @__PURE__ */ createElementVNode("span", null, "已加组件", -1);
function _sfc_render(t, a, r, o, s, n) {
  const i = resolveComponent("page"), l = resolveComponent("el-collapse-item"), c = resolveComponent("appearance"), u = resolveComponent("options"), h = resolveComponent("layers"), m = resolveComponent("el-collapse");
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
    createVNode(m, {
      modelValue: s.activeNames,
      "onUpdate:modelValue": a[0] || (a[0] = (_) => s.activeNames = _)
    }, {
      default: withCtx(() => [
        createVNode(l, {
          title: "",
          name: "1"
        }, {
          title: withCtx(() => [
            _hoisted_2$1
          ]),
          default: withCtx(() => [
            createVNode(i)
          ]),
          _: 1
        }),
        createVNode(l, { name: "2" }, {
          title: withCtx(() => [
            _hoisted_3$1
          ]),
          default: withCtx(() => [
            createVNode(c, { class: "pd-l-10" })
          ]),
          _: 1
        }),
        createVNode(l, { name: "3" }, {
          title: withCtx(() => [
            _hoisted_4
          ]),
          default: withCtx(() => [
            createVNode(u)
          ]),
          _: 1
        }),
        createVNode(l, { name: "4" }, {
          title: withCtx(() => [
            _hoisted_5
          ]),
          default: withCtx(() => [
            createVNode(h)
          ]),
          _: 1
        })
      ]),
      _: 1
    }, 8, ["modelValue"])
  ]);
}
const Panel = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
var commonjsGlobal = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function getDefaultExportFromCjs(t) {
  return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
}
function listCacheClear$1() {
  this.__data__ = [], this.size = 0;
}
var _listCacheClear = listCacheClear$1;
function eq$2(t, a) {
  return t === a || t !== t && a !== a;
}
var eq_1 = eq$2, eq$1 = eq_1;
function assocIndexOf$4(t, a) {
  for (var r = t.length; r--; )
    if (eq$1(t[r][0], a))
      return r;
  return -1;
}
var _assocIndexOf = assocIndexOf$4, assocIndexOf$3 = _assocIndexOf, arrayProto = Array.prototype, splice = arrayProto.splice;
function listCacheDelete$1(t) {
  var a = this.__data__, r = assocIndexOf$3(a, t);
  if (r < 0)
    return !1;
  var o = a.length - 1;
  return r == o ? a.pop() : splice.call(a, r, 1), --this.size, !0;
}
var _listCacheDelete = listCacheDelete$1, assocIndexOf$2 = _assocIndexOf;
function listCacheGet$1(t) {
  var a = this.__data__, r = assocIndexOf$2(a, t);
  return r < 0 ? void 0 : a[r][1];
}
var _listCacheGet = listCacheGet$1, assocIndexOf$1 = _assocIndexOf;
function listCacheHas$1(t) {
  return assocIndexOf$1(this.__data__, t) > -1;
}
var _listCacheHas = listCacheHas$1, assocIndexOf = _assocIndexOf;
function listCacheSet$1(t, a) {
  var r = this.__data__, o = assocIndexOf(r, t);
  return o < 0 ? (++this.size, r.push([t, a])) : r[o][1] = a, this;
}
var _listCacheSet = listCacheSet$1, listCacheClear = _listCacheClear, listCacheDelete = _listCacheDelete, listCacheGet = _listCacheGet, listCacheHas = _listCacheHas, listCacheSet = _listCacheSet;
function ListCache$4(t) {
  var a = -1, r = t == null ? 0 : t.length;
  for (this.clear(); ++a < r; ) {
    var o = t[a];
    this.set(o[0], o[1]);
  }
}
ListCache$4.prototype.clear = listCacheClear;
ListCache$4.prototype.delete = listCacheDelete;
ListCache$4.prototype.get = listCacheGet;
ListCache$4.prototype.has = listCacheHas;
ListCache$4.prototype.set = listCacheSet;
var _ListCache = ListCache$4, ListCache$3 = _ListCache;
function stackClear$1() {
  this.__data__ = new ListCache$3(), this.size = 0;
}
var _stackClear = stackClear$1;
function stackDelete$1(t) {
  var a = this.__data__, r = a.delete(t);
  return this.size = a.size, r;
}
var _stackDelete = stackDelete$1;
function stackGet$1(t) {
  return this.__data__.get(t);
}
var _stackGet = stackGet$1;
function stackHas$1(t) {
  return this.__data__.has(t);
}
var _stackHas = stackHas$1, freeGlobal$1 = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal, _freeGlobal = freeGlobal$1, freeGlobal = _freeGlobal, freeSelf = typeof self == "object" && self && self.Object === Object && self, root$8 = freeGlobal || freeSelf || Function("return this")(), _root = root$8, root$7 = _root, Symbol$4 = root$7.Symbol, _Symbol = Symbol$4, Symbol$3 = _Symbol, objectProto$c = Object.prototype, hasOwnProperty$9 = objectProto$c.hasOwnProperty, nativeObjectToString$1 = objectProto$c.toString, symToStringTag$1 = Symbol$3 ? Symbol$3.toStringTag : void 0;
function getRawTag$1(t) {
  var a = hasOwnProperty$9.call(t, symToStringTag$1), r = t[symToStringTag$1];
  try {
    t[symToStringTag$1] = void 0;
    var o = !0;
  } catch {
  }
  var s = nativeObjectToString$1.call(t);
  return o && (a ? t[symToStringTag$1] = r : delete t[symToStringTag$1]), s;
}
var _getRawTag = getRawTag$1, objectProto$b = Object.prototype, nativeObjectToString = objectProto$b.toString;
function objectToString$1(t) {
  return nativeObjectToString.call(t);
}
var _objectToString = objectToString$1, Symbol$2 = _Symbol, getRawTag = _getRawTag, objectToString = _objectToString, nullTag = "[object Null]", undefinedTag = "[object Undefined]", symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0;
function baseGetTag$4(t) {
  return t == null ? t === void 0 ? undefinedTag : nullTag : symToStringTag && symToStringTag in Object(t) ? getRawTag(t) : objectToString(t);
}
var _baseGetTag = baseGetTag$4;
function isObject$5(t) {
  var a = typeof t;
  return t != null && (a == "object" || a == "function");
}
var isObject_1 = isObject$5, baseGetTag$3 = _baseGetTag, isObject$4 = isObject_1, asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
function isFunction$2(t) {
  if (!isObject$4(t))
    return !1;
  var a = baseGetTag$3(t);
  return a == funcTag$2 || a == genTag$1 || a == asyncTag || a == proxyTag;
}
var isFunction_1 = isFunction$2, root$6 = _root, coreJsData$1 = root$6["__core-js_shared__"], _coreJsData = coreJsData$1, coreJsData = _coreJsData, maskSrcKey = function() {
  var t = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
  return t ? "Symbol(src)_1." + t : "";
}();
function isMasked$1(t) {
  return !!maskSrcKey && maskSrcKey in t;
}
var _isMasked = isMasked$1, funcProto$1 = Function.prototype, funcToString$1 = funcProto$1.toString;
function toSource$2(t) {
  if (t != null) {
    try {
      return funcToString$1.call(t);
    } catch {
    }
    try {
      return t + "";
    } catch {
    }
  }
  return "";
}
var _toSource = toSource$2, isFunction$1 = isFunction_1, isMasked = _isMasked, isObject$3 = isObject_1, toSource$1 = _toSource, reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reIsHostCtor = /^\[object .+?Constructor\]$/, funcProto = Function.prototype, objectProto$a = Object.prototype, funcToString = funcProto.toString, hasOwnProperty$8 = objectProto$a.hasOwnProperty, reIsNative = RegExp(
  "^" + funcToString.call(hasOwnProperty$8).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
function baseIsNative$1(t) {
  if (!isObject$3(t) || isMasked(t))
    return !1;
  var a = isFunction$1(t) ? reIsNative : reIsHostCtor;
  return a.test(toSource$1(t));
}
var _baseIsNative = baseIsNative$1;
function getValue$1(t, a) {
  return t == null ? void 0 : t[a];
}
var _getValue = getValue$1, baseIsNative = _baseIsNative, getValue = _getValue;
function getNative$7(t, a) {
  var r = getValue(t, a);
  return baseIsNative(r) ? r : void 0;
}
var _getNative = getNative$7, getNative$6 = _getNative, root$5 = _root, Map$4 = getNative$6(root$5, "Map"), _Map = Map$4, getNative$5 = _getNative, nativeCreate$4 = getNative$5(Object, "create"), _nativeCreate = nativeCreate$4, nativeCreate$3 = _nativeCreate;
function hashClear$1() {
  this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {}, this.size = 0;
}
var _hashClear = hashClear$1;
function hashDelete$1(t) {
  var a = this.has(t) && delete this.__data__[t];
  return this.size -= a ? 1 : 0, a;
}
var _hashDelete = hashDelete$1, nativeCreate$2 = _nativeCreate, HASH_UNDEFINED$1 = "__lodash_hash_undefined__", objectProto$9 = Object.prototype, hasOwnProperty$7 = objectProto$9.hasOwnProperty;
function hashGet$1(t) {
  var a = this.__data__;
  if (nativeCreate$2) {
    var r = a[t];
    return r === HASH_UNDEFINED$1 ? void 0 : r;
  }
  return hasOwnProperty$7.call(a, t) ? a[t] : void 0;
}
var _hashGet = hashGet$1, nativeCreate$1 = _nativeCreate, objectProto$8 = Object.prototype, hasOwnProperty$6 = objectProto$8.hasOwnProperty;
function hashHas$1(t) {
  var a = this.__data__;
  return nativeCreate$1 ? a[t] !== void 0 : hasOwnProperty$6.call(a, t);
}
var _hashHas = hashHas$1, nativeCreate = _nativeCreate, HASH_UNDEFINED = "__lodash_hash_undefined__";
function hashSet$1(t, a) {
  var r = this.__data__;
  return this.size += this.has(t) ? 0 : 1, r[t] = nativeCreate && a === void 0 ? HASH_UNDEFINED : a, this;
}
var _hashSet = hashSet$1, hashClear = _hashClear, hashDelete = _hashDelete, hashGet = _hashGet, hashHas = _hashHas, hashSet = _hashSet;
function Hash$1(t) {
  var a = -1, r = t == null ? 0 : t.length;
  for (this.clear(); ++a < r; ) {
    var o = t[a];
    this.set(o[0], o[1]);
  }
}
Hash$1.prototype.clear = hashClear;
Hash$1.prototype.delete = hashDelete;
Hash$1.prototype.get = hashGet;
Hash$1.prototype.has = hashHas;
Hash$1.prototype.set = hashSet;
var _Hash = Hash$1, Hash = _Hash, ListCache$2 = _ListCache, Map$3 = _Map;
function mapCacheClear$1() {
  this.size = 0, this.__data__ = {
    hash: new Hash(),
    map: new (Map$3 || ListCache$2)(),
    string: new Hash()
  };
}
var _mapCacheClear = mapCacheClear$1;
function isKeyable$1(t) {
  var a = typeof t;
  return a == "string" || a == "number" || a == "symbol" || a == "boolean" ? t !== "__proto__" : t === null;
}
var _isKeyable = isKeyable$1, isKeyable = _isKeyable;
function getMapData$4(t, a) {
  var r = t.__data__;
  return isKeyable(a) ? r[typeof a == "string" ? "string" : "hash"] : r.map;
}
var _getMapData = getMapData$4, getMapData$3 = _getMapData;
function mapCacheDelete$1(t) {
  var a = getMapData$3(this, t).delete(t);
  return this.size -= a ? 1 : 0, a;
}
var _mapCacheDelete = mapCacheDelete$1, getMapData$2 = _getMapData;
function mapCacheGet$1(t) {
  return getMapData$2(this, t).get(t);
}
var _mapCacheGet = mapCacheGet$1, getMapData$1 = _getMapData;
function mapCacheHas$1(t) {
  return getMapData$1(this, t).has(t);
}
var _mapCacheHas = mapCacheHas$1, getMapData = _getMapData;
function mapCacheSet$1(t, a) {
  var r = getMapData(this, t), o = r.size;
  return r.set(t, a), this.size += r.size == o ? 0 : 1, this;
}
var _mapCacheSet = mapCacheSet$1, mapCacheClear = _mapCacheClear, mapCacheDelete = _mapCacheDelete, mapCacheGet = _mapCacheGet, mapCacheHas = _mapCacheHas, mapCacheSet = _mapCacheSet;
function MapCache$1(t) {
  var a = -1, r = t == null ? 0 : t.length;
  for (this.clear(); ++a < r; ) {
    var o = t[a];
    this.set(o[0], o[1]);
  }
}
MapCache$1.prototype.clear = mapCacheClear;
MapCache$1.prototype.delete = mapCacheDelete;
MapCache$1.prototype.get = mapCacheGet;
MapCache$1.prototype.has = mapCacheHas;
MapCache$1.prototype.set = mapCacheSet;
var _MapCache = MapCache$1, ListCache$1 = _ListCache, Map$2 = _Map, MapCache = _MapCache, LARGE_ARRAY_SIZE = 200;
function stackSet$1(t, a) {
  var r = this.__data__;
  if (r instanceof ListCache$1) {
    var o = r.__data__;
    if (!Map$2 || o.length < LARGE_ARRAY_SIZE - 1)
      return o.push([t, a]), this.size = ++r.size, this;
    r = this.__data__ = new MapCache(o);
  }
  return r.set(t, a), this.size = r.size, this;
}
var _stackSet = stackSet$1, ListCache = _ListCache, stackClear = _stackClear, stackDelete = _stackDelete, stackGet = _stackGet, stackHas = _stackHas, stackSet = _stackSet;
function Stack$1(t) {
  var a = this.__data__ = new ListCache(t);
  this.size = a.size;
}
Stack$1.prototype.clear = stackClear;
Stack$1.prototype.delete = stackDelete;
Stack$1.prototype.get = stackGet;
Stack$1.prototype.has = stackHas;
Stack$1.prototype.set = stackSet;
var _Stack = Stack$1;
function arrayEach$1(t, a) {
  for (var r = -1, o = t == null ? 0 : t.length; ++r < o && a(t[r], r, t) !== !1; )
    ;
  return t;
}
var _arrayEach = arrayEach$1, getNative$4 = _getNative, defineProperty$1 = function() {
  try {
    var t = getNative$4(Object, "defineProperty");
    return t({}, "", {}), t;
  } catch {
  }
}(), _defineProperty = defineProperty$1, defineProperty = _defineProperty;
function baseAssignValue$2(t, a, r) {
  a == "__proto__" && defineProperty ? defineProperty(t, a, {
    configurable: !0,
    enumerable: !0,
    value: r,
    writable: !0
  }) : t[a] = r;
}
var _baseAssignValue = baseAssignValue$2, baseAssignValue$1 = _baseAssignValue, eq = eq_1, objectProto$7 = Object.prototype, hasOwnProperty$5 = objectProto$7.hasOwnProperty;
function assignValue$2(t, a, r) {
  var o = t[a];
  (!(hasOwnProperty$5.call(t, a) && eq(o, r)) || r === void 0 && !(a in t)) && baseAssignValue$1(t, a, r);
}
var _assignValue = assignValue$2, assignValue$1 = _assignValue, baseAssignValue = _baseAssignValue;
function copyObject$4(t, a, r, o) {
  var s = !r;
  r || (r = {});
  for (var n = -1, i = a.length; ++n < i; ) {
    var l = a[n], c = o ? o(r[l], t[l], l, r, t) : void 0;
    c === void 0 && (c = t[l]), s ? baseAssignValue(r, l, c) : assignValue$1(r, l, c);
  }
  return r;
}
var _copyObject = copyObject$4;
function baseTimes$1(t, a) {
  for (var r = -1, o = Array(t); ++r < t; )
    o[r] = a(r);
  return o;
}
var _baseTimes = baseTimes$1;
function isObjectLike$5(t) {
  return t != null && typeof t == "object";
}
var isObjectLike_1 = isObjectLike$5, baseGetTag$2 = _baseGetTag, isObjectLike$4 = isObjectLike_1, argsTag$2 = "[object Arguments]";
function baseIsArguments$1(t) {
  return isObjectLike$4(t) && baseGetTag$2(t) == argsTag$2;
}
var _baseIsArguments = baseIsArguments$1, baseIsArguments = _baseIsArguments, isObjectLike$3 = isObjectLike_1, objectProto$6 = Object.prototype, hasOwnProperty$4 = objectProto$6.hasOwnProperty, propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable, isArguments$1 = baseIsArguments(/* @__PURE__ */ function() {
  return arguments;
}()) ? baseIsArguments : function(t) {
  return isObjectLike$3(t) && hasOwnProperty$4.call(t, "callee") && !propertyIsEnumerable$1.call(t, "callee");
}, isArguments_1 = isArguments$1, isArray$3 = Array.isArray, isArray_1 = isArray$3, isBuffer$2 = { exports: {} };
function stubFalse() {
  return !1;
}
var stubFalse_1 = stubFalse;
isBuffer$2.exports;
(function(t, a) {
  var r = _root, o = stubFalse_1, s = a && !a.nodeType && a, n = s && !0 && t && !t.nodeType && t, i = n && n.exports === s, l = i ? r.Buffer : void 0, c = l ? l.isBuffer : void 0, u = c || o;
  t.exports = u;
})(isBuffer$2, isBuffer$2.exports);
var isBufferExports = isBuffer$2.exports, MAX_SAFE_INTEGER$1 = 9007199254740991, reIsUint = /^(?:0|[1-9]\d*)$/;
function isIndex$1(t, a) {
  var r = typeof t;
  return a = a ?? MAX_SAFE_INTEGER$1, !!a && (r == "number" || r != "symbol" && reIsUint.test(t)) && t > -1 && t % 1 == 0 && t < a;
}
var _isIndex = isIndex$1, MAX_SAFE_INTEGER = 9007199254740991;
function isLength$2(t) {
  return typeof t == "number" && t > -1 && t % 1 == 0 && t <= MAX_SAFE_INTEGER;
}
var isLength_1 = isLength$2, baseGetTag$1 = _baseGetTag, isLength$1 = isLength_1, isObjectLike$2 = isObjectLike_1, argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", errorTag$1 = "[object Error]", funcTag$1 = "[object Function]", mapTag$4 = "[object Map]", numberTag$2 = "[object Number]", objectTag$2 = "[object Object]", regexpTag$2 = "[object RegExp]", setTag$4 = "[object Set]", stringTag$2 = "[object String]", weakMapTag$2 = "[object WeakMap]", arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$3 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]", typedArrayTags = {};
typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = !0;
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$2] = typedArrayTags[boolTag$2] = typedArrayTags[dataViewTag$3] = typedArrayTags[dateTag$2] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$4] = typedArrayTags[numberTag$2] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag$2] = typedArrayTags[setTag$4] = typedArrayTags[stringTag$2] = typedArrayTags[weakMapTag$2] = !1;
function baseIsTypedArray$1(t) {
  return isObjectLike$2(t) && isLength$1(t.length) && !!typedArrayTags[baseGetTag$1(t)];
}
var _baseIsTypedArray = baseIsTypedArray$1;
function baseUnary$3(t) {
  return function(a) {
    return t(a);
  };
}
var _baseUnary = baseUnary$3, _nodeUtil = { exports: {} };
_nodeUtil.exports;
(function(t, a) {
  var r = _freeGlobal, o = a && !a.nodeType && a, s = o && !0 && t && !t.nodeType && t, n = s && s.exports === o, i = n && r.process, l = function() {
    try {
      var c = s && s.require && s.require("util").types;
      return c || i && i.binding && i.binding("util");
    } catch {
    }
  }();
  t.exports = l;
})(_nodeUtil, _nodeUtil.exports);
var _nodeUtilExports = _nodeUtil.exports, baseIsTypedArray = _baseIsTypedArray, baseUnary$2 = _baseUnary, nodeUtil$2 = _nodeUtilExports, nodeIsTypedArray = nodeUtil$2 && nodeUtil$2.isTypedArray, isTypedArray$1 = nodeIsTypedArray ? baseUnary$2(nodeIsTypedArray) : baseIsTypedArray, isTypedArray_1 = isTypedArray$1, baseTimes = _baseTimes, isArguments = isArguments_1, isArray$2 = isArray_1, isBuffer$1 = isBufferExports, isIndex = _isIndex, isTypedArray = isTypedArray_1, objectProto$5 = Object.prototype, hasOwnProperty$3 = objectProto$5.hasOwnProperty;
function arrayLikeKeys$2(t, a) {
  var r = isArray$2(t), o = !r && isArguments(t), s = !r && !o && isBuffer$1(t), n = !r && !o && !s && isTypedArray(t), i = r || o || s || n, l = i ? baseTimes(t.length, String) : [], c = l.length;
  for (var u in t)
    (a || hasOwnProperty$3.call(t, u)) && !(i && // Safari 9 has enumerable `arguments.length` in strict mode.
    (u == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
    s && (u == "offset" || u == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    n && (u == "buffer" || u == "byteLength" || u == "byteOffset") || // Skip index properties.
    isIndex(u, c))) && l.push(u);
  return l;
}
var _arrayLikeKeys = arrayLikeKeys$2, objectProto$4 = Object.prototype;
function isPrototype$3(t) {
  var a = t && t.constructor, r = typeof a == "function" && a.prototype || objectProto$4;
  return t === r;
}
var _isPrototype = isPrototype$3;
function overArg$2(t, a) {
  return function(r) {
    return t(a(r));
  };
}
var _overArg = overArg$2, overArg$1 = _overArg, nativeKeys$1 = overArg$1(Object.keys, Object), _nativeKeys = nativeKeys$1, isPrototype$2 = _isPrototype, nativeKeys = _nativeKeys, objectProto$3 = Object.prototype, hasOwnProperty$2 = objectProto$3.hasOwnProperty;
function baseKeys$1(t) {
  if (!isPrototype$2(t))
    return nativeKeys(t);
  var a = [];
  for (var r in Object(t))
    hasOwnProperty$2.call(t, r) && r != "constructor" && a.push(r);
  return a;
}
var _baseKeys = baseKeys$1, isFunction = isFunction_1, isLength = isLength_1;
function isArrayLike$2(t) {
  return t != null && isLength(t.length) && !isFunction(t);
}
var isArrayLike_1 = isArrayLike$2, arrayLikeKeys$1 = _arrayLikeKeys, baseKeys = _baseKeys, isArrayLike$1 = isArrayLike_1;
function keys$3(t) {
  return isArrayLike$1(t) ? arrayLikeKeys$1(t) : baseKeys(t);
}
var keys_1 = keys$3, copyObject$3 = _copyObject, keys$2 = keys_1;
function baseAssign$1(t, a) {
  return t && copyObject$3(a, keys$2(a), t);
}
var _baseAssign = baseAssign$1;
function nativeKeysIn$1(t) {
  var a = [];
  if (t != null)
    for (var r in Object(t))
      a.push(r);
  return a;
}
var _nativeKeysIn = nativeKeysIn$1, isObject$2 = isObject_1, isPrototype$1 = _isPrototype, nativeKeysIn = _nativeKeysIn, objectProto$2 = Object.prototype, hasOwnProperty$1 = objectProto$2.hasOwnProperty;
function baseKeysIn$1(t) {
  if (!isObject$2(t))
    return nativeKeysIn(t);
  var a = isPrototype$1(t), r = [];
  for (var o in t)
    o == "constructor" && (a || !hasOwnProperty$1.call(t, o)) || r.push(o);
  return r;
}
var _baseKeysIn = baseKeysIn$1, arrayLikeKeys = _arrayLikeKeys, baseKeysIn = _baseKeysIn, isArrayLike = isArrayLike_1;
function keysIn$3(t) {
  return isArrayLike(t) ? arrayLikeKeys(t, !0) : baseKeysIn(t);
}
var keysIn_1 = keysIn$3, copyObject$2 = _copyObject, keysIn$2 = keysIn_1;
function baseAssignIn$1(t, a) {
  return t && copyObject$2(a, keysIn$2(a), t);
}
var _baseAssignIn = baseAssignIn$1, _cloneBuffer = { exports: {} };
_cloneBuffer.exports;
(function(t, a) {
  var r = _root, o = a && !a.nodeType && a, s = o && !0 && t && !t.nodeType && t, n = s && s.exports === o, i = n ? r.Buffer : void 0, l = i ? i.allocUnsafe : void 0;
  function c(u, h) {
    if (h)
      return u.slice();
    var m = u.length, _ = l ? l(m) : new u.constructor(m);
    return u.copy(_), _;
  }
  t.exports = c;
})(_cloneBuffer, _cloneBuffer.exports);
var _cloneBufferExports = _cloneBuffer.exports;
function copyArray$1(t, a) {
  var r = -1, o = t.length;
  for (a || (a = Array(o)); ++r < o; )
    a[r] = t[r];
  return a;
}
var _copyArray = copyArray$1;
function arrayFilter$1(t, a) {
  for (var r = -1, o = t == null ? 0 : t.length, s = 0, n = []; ++r < o; ) {
    var i = t[r];
    a(i, r, t) && (n[s++] = i);
  }
  return n;
}
var _arrayFilter = arrayFilter$1;
function stubArray$2() {
  return [];
}
var stubArray_1 = stubArray$2, arrayFilter = _arrayFilter, stubArray$1 = stubArray_1, objectProto$1 = Object.prototype, propertyIsEnumerable = objectProto$1.propertyIsEnumerable, nativeGetSymbols$1 = Object.getOwnPropertySymbols, getSymbols$3 = nativeGetSymbols$1 ? function(t) {
  return t == null ? [] : (t = Object(t), arrayFilter(nativeGetSymbols$1(t), function(a) {
    return propertyIsEnumerable.call(t, a);
  }));
} : stubArray$1, _getSymbols = getSymbols$3, copyObject$1 = _copyObject, getSymbols$2 = _getSymbols;
function copySymbols$1(t, a) {
  return copyObject$1(t, getSymbols$2(t), a);
}
var _copySymbols = copySymbols$1;
function arrayPush$2(t, a) {
  for (var r = -1, o = a.length, s = t.length; ++r < o; )
    t[s + r] = a[r];
  return t;
}
var _arrayPush = arrayPush$2, overArg = _overArg, getPrototype$2 = overArg(Object.getPrototypeOf, Object), _getPrototype = getPrototype$2, arrayPush$1 = _arrayPush, getPrototype$1 = _getPrototype, getSymbols$1 = _getSymbols, stubArray = stubArray_1, nativeGetSymbols = Object.getOwnPropertySymbols, getSymbolsIn$2 = nativeGetSymbols ? function(t) {
  for (var a = []; t; )
    arrayPush$1(a, getSymbols$1(t)), t = getPrototype$1(t);
  return a;
} : stubArray, _getSymbolsIn = getSymbolsIn$2, copyObject = _copyObject, getSymbolsIn$1 = _getSymbolsIn;
function copySymbolsIn$1(t, a) {
  return copyObject(t, getSymbolsIn$1(t), a);
}
var _copySymbolsIn = copySymbolsIn$1, arrayPush = _arrayPush, isArray$1 = isArray_1;
function baseGetAllKeys$2(t, a, r) {
  var o = a(t);
  return isArray$1(t) ? o : arrayPush(o, r(t));
}
var _baseGetAllKeys = baseGetAllKeys$2, baseGetAllKeys$1 = _baseGetAllKeys, getSymbols = _getSymbols, keys$1 = keys_1;
function getAllKeys$1(t) {
  return baseGetAllKeys$1(t, keys$1, getSymbols);
}
var _getAllKeys = getAllKeys$1, baseGetAllKeys = _baseGetAllKeys, getSymbolsIn = _getSymbolsIn, keysIn$1 = keysIn_1;
function getAllKeysIn$1(t) {
  return baseGetAllKeys(t, keysIn$1, getSymbolsIn);
}
var _getAllKeysIn = getAllKeysIn$1, getNative$3 = _getNative, root$4 = _root, DataView$1 = getNative$3(root$4, "DataView"), _DataView = DataView$1, getNative$2 = _getNative, root$3 = _root, Promise$2 = getNative$2(root$3, "Promise"), _Promise = Promise$2, getNative$1 = _getNative, root$2 = _root, Set$2 = getNative$1(root$2, "Set"), _Set = Set$2, getNative = _getNative, root$1 = _root, WeakMap$1 = getNative(root$1, "WeakMap"), _WeakMap = WeakMap$1, DataView = _DataView, Map$1 = _Map, Promise$1 = _Promise, Set$1 = _Set, WeakMap = _WeakMap, baseGetTag = _baseGetTag, toSource = _toSource, mapTag$3 = "[object Map]", objectTag$1 = "[object Object]", promiseTag = "[object Promise]", setTag$3 = "[object Set]", weakMapTag$1 = "[object WeakMap]", dataViewTag$2 = "[object DataView]", dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap), getTag$3 = baseGetTag;
(DataView && getTag$3(new DataView(new ArrayBuffer(1))) != dataViewTag$2 || Map$1 && getTag$3(new Map$1()) != mapTag$3 || Promise$1 && getTag$3(Promise$1.resolve()) != promiseTag || Set$1 && getTag$3(new Set$1()) != setTag$3 || WeakMap && getTag$3(new WeakMap()) != weakMapTag$1) && (getTag$3 = function(t) {
  var a = baseGetTag(t), r = a == objectTag$1 ? t.constructor : void 0, o = r ? toSource(r) : "";
  if (o)
    switch (o) {
      case dataViewCtorString:
        return dataViewTag$2;
      case mapCtorString:
        return mapTag$3;
      case promiseCtorString:
        return promiseTag;
      case setCtorString:
        return setTag$3;
      case weakMapCtorString:
        return weakMapTag$1;
    }
  return a;
});
var _getTag = getTag$3, objectProto = Object.prototype, hasOwnProperty = objectProto.hasOwnProperty;
function initCloneArray$1(t) {
  var a = t.length, r = new t.constructor(a);
  return a && typeof t[0] == "string" && hasOwnProperty.call(t, "index") && (r.index = t.index, r.input = t.input), r;
}
var _initCloneArray = initCloneArray$1, root = _root, Uint8Array$2 = root.Uint8Array, _Uint8Array = Uint8Array$2, Uint8Array$1 = _Uint8Array;
function cloneArrayBuffer$3(t) {
  var a = new t.constructor(t.byteLength);
  return new Uint8Array$1(a).set(new Uint8Array$1(t)), a;
}
var _cloneArrayBuffer = cloneArrayBuffer$3, cloneArrayBuffer$2 = _cloneArrayBuffer;
function cloneDataView$1(t, a) {
  var r = a ? cloneArrayBuffer$2(t.buffer) : t.buffer;
  return new t.constructor(r, t.byteOffset, t.byteLength);
}
var _cloneDataView = cloneDataView$1, reFlags = /\w*$/;
function cloneRegExp$1(t) {
  var a = new t.constructor(t.source, reFlags.exec(t));
  return a.lastIndex = t.lastIndex, a;
}
var _cloneRegExp = cloneRegExp$1, Symbol$1 = _Symbol, symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
function cloneSymbol$1(t) {
  return symbolValueOf ? Object(symbolValueOf.call(t)) : {};
}
var _cloneSymbol = cloneSymbol$1, cloneArrayBuffer$1 = _cloneArrayBuffer;
function cloneTypedArray$1(t, a) {
  var r = a ? cloneArrayBuffer$1(t.buffer) : t.buffer;
  return new t.constructor(r, t.byteOffset, t.length);
}
var _cloneTypedArray = cloneTypedArray$1, cloneArrayBuffer = _cloneArrayBuffer, cloneDataView = _cloneDataView, cloneRegExp = _cloneRegExp, cloneSymbol = _cloneSymbol, cloneTypedArray = _cloneTypedArray, boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", mapTag$2 = "[object Map]", numberTag$1 = "[object Number]", regexpTag$1 = "[object RegExp]", setTag$2 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
function initCloneByTag$1(t, a, r) {
  var o = t.constructor;
  switch (a) {
    case arrayBufferTag$1:
      return cloneArrayBuffer(t);
    case boolTag$1:
    case dateTag$1:
      return new o(+t);
    case dataViewTag$1:
      return cloneDataView(t, r);
    case float32Tag$1:
    case float64Tag$1:
    case int8Tag$1:
    case int16Tag$1:
    case int32Tag$1:
    case uint8Tag$1:
    case uint8ClampedTag$1:
    case uint16Tag$1:
    case uint32Tag$1:
      return cloneTypedArray(t, r);
    case mapTag$2:
      return new o();
    case numberTag$1:
    case stringTag$1:
      return new o(t);
    case regexpTag$1:
      return cloneRegExp(t);
    case setTag$2:
      return new o();
    case symbolTag$1:
      return cloneSymbol(t);
  }
}
var _initCloneByTag = initCloneByTag$1, isObject$1 = isObject_1, objectCreate = Object.create, baseCreate$1 = /* @__PURE__ */ function() {
  function t() {
  }
  return function(a) {
    if (!isObject$1(a))
      return {};
    if (objectCreate)
      return objectCreate(a);
    t.prototype = a;
    var r = new t();
    return t.prototype = void 0, r;
  };
}(), _baseCreate = baseCreate$1, baseCreate = _baseCreate, getPrototype = _getPrototype, isPrototype = _isPrototype;
function initCloneObject$1(t) {
  return typeof t.constructor == "function" && !isPrototype(t) ? baseCreate(getPrototype(t)) : {};
}
var _initCloneObject = initCloneObject$1, getTag$2 = _getTag, isObjectLike$1 = isObjectLike_1, mapTag$1 = "[object Map]";
function baseIsMap$1(t) {
  return isObjectLike$1(t) && getTag$2(t) == mapTag$1;
}
var _baseIsMap = baseIsMap$1, baseIsMap = _baseIsMap, baseUnary$1 = _baseUnary, nodeUtil$1 = _nodeUtilExports, nodeIsMap = nodeUtil$1 && nodeUtil$1.isMap, isMap$1 = nodeIsMap ? baseUnary$1(nodeIsMap) : baseIsMap, isMap_1 = isMap$1, getTag$1 = _getTag, isObjectLike = isObjectLike_1, setTag$1 = "[object Set]";
function baseIsSet$1(t) {
  return isObjectLike(t) && getTag$1(t) == setTag$1;
}
var _baseIsSet = baseIsSet$1, baseIsSet = _baseIsSet, baseUnary = _baseUnary, nodeUtil = _nodeUtilExports, nodeIsSet = nodeUtil && nodeUtil.isSet, isSet$1 = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet, isSet_1 = isSet$1, Stack = _Stack, arrayEach = _arrayEach, assignValue = _assignValue, baseAssign = _baseAssign, baseAssignIn = _baseAssignIn, cloneBuffer = _cloneBufferExports, copyArray = _copyArray, copySymbols = _copySymbols, copySymbolsIn = _copySymbolsIn, getAllKeys = _getAllKeys, getAllKeysIn = _getAllKeysIn, getTag = _getTag, initCloneArray = _initCloneArray, initCloneByTag = _initCloneByTag, initCloneObject = _initCloneObject, isArray = isArray_1, isBuffer = isBufferExports, isMap = isMap_1, isObject = isObject_1, isSet = isSet_1, keys = keys_1, keysIn = keysIn_1, CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$1 = 4, argsTag = "[object Arguments]", arrayTag = "[object Array]", boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", objectTag = "[object Object]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", weakMapTag = "[object WeakMap]", arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]", cloneableTags = {};
cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = !0;
cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = !1;
function baseClone$1(t, a, r, o, s, n) {
  var i, l = a & CLONE_DEEP_FLAG$1, c = a & CLONE_FLAT_FLAG, u = a & CLONE_SYMBOLS_FLAG$1;
  if (r && (i = s ? r(t, o, s, n) : r(t)), i !== void 0)
    return i;
  if (!isObject(t))
    return t;
  var h = isArray(t);
  if (h) {
    if (i = initCloneArray(t), !l)
      return copyArray(t, i);
  } else {
    var m = getTag(t), _ = m == funcTag || m == genTag;
    if (isBuffer(t))
      return cloneBuffer(t, l);
    if (m == objectTag || m == argsTag || _ && !s) {
      if (i = c || _ ? {} : initCloneObject(t), !l)
        return c ? copySymbolsIn(t, baseAssignIn(i, t)) : copySymbols(t, baseAssign(i, t));
    } else {
      if (!cloneableTags[m])
        return s ? t : {};
      i = initCloneByTag(t, m, l);
    }
  }
  n || (n = new Stack());
  var $ = n.get(t);
  if ($)
    return $;
  n.set(t, i), isSet(t) ? t.forEach(function(T) {
    i.add(baseClone$1(T, a, r, T, t, n));
  }) : isMap(t) && t.forEach(function(T, p) {
    i.set(p, baseClone$1(T, a, r, p, t, n));
  });
  var y = u ? c ? getAllKeysIn : getAllKeys : c ? keysIn : keys, E = h ? void 0 : y(t);
  return arrayEach(E || t, function(T, p) {
    E && (p = T, T = t[p]), assignValue(i, p, baseClone$1(T, a, r, p, t, n));
  }), i;
}
var _baseClone = baseClone$1, baseClone = _baseClone, CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
function cloneDeep(t) {
  return baseClone(t, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
}
var cloneDeep_1 = cloneDeep;
const cloneDeep$1 = /* @__PURE__ */ getDefaultExportFromCjs(cloneDeep_1);
var MainJS = "CLodopfuncs.js", URL_WS1 = "ws://localhost:8000/" + MainJS, URL_WS2 = "ws://localhost:18000/" + MainJS, URL_HTTP1 = "http://localhost:8000/" + MainJS, URL_HTTP2 = "http://localhost:18000/" + MainJS, URL_HTTP3 = "https://localhost.lodop.net:8443/" + MainJS, CreatedOKLodopObject, CLodopIsLocal, LoadJsState;
function needCLodop() {
  try {
    var t = navigator.userAgent;
    if (t.match(/Windows\sPhone/i) || t.match(/iPhone|iPod|iPad/i) || t.match(/Android/i) || t.match(/Edge\D?\d+/i))
      return !0;
    var a = t.match(/Trident\D?\d+/i), r = t.match(/MSIE\D?\d+/i), o = t.match(/OPR\D?\d+/i), s = t.match(/Firefox\D?\d+/i), n = t.match(/x64/i);
    if (!a && !r && n)
      return !0;
    if (s) {
      if (s = s[0].match(/\d+/), s[0] >= 41 || n)
        return !0;
    } else if (o) {
      if (o = o[0].match(/\d+/), o[0] >= 32)
        return !0;
    } else if (!a && !r) {
      var i = t.match(/Chrome\D?\d+/i);
      if (i && (i = i[0].match(/\d+/), i[0] >= 41))
        return !0;
    }
    return !1;
  } catch {
    return !0;
  }
}
function checkOrTryHttp() {
  if (window.getCLodop)
    return LoadJsState = "complete", !0;
  if (!(LoadJsState == "loadingB" || LoadJsState == "complete")) {
    LoadJsState = "loadingB";
    var t = document.head || document.getElementsByTagName("head")[0] || document.documentElement, a = document.createElement("script"), r = document.createElement("script"), o = document.createElement("script");
    a.src = URL_HTTP1, r.src = URL_HTTP2, o.src = URL_HTTP3, a.onload = r.onload = o.onload = r.onerror = o.onerror = function() {
      LoadJsState = "complete";
    }, a.onerror = function(s) {
      window.location.protocol !== "https:" ? t.insertBefore(r, t.firstChild) : t.insertBefore(o, t.firstChild);
    }, t.insertBefore(a, t.firstChild);
  }
}
(function loadCLodop() {
  if (needCLodop()) {
    CLodopIsLocal = !!(URL_WS1 + URL_WS2).match(/\/\/localho|\/\/127.0.0./i), LoadJsState = "loadingA", !window.WebSocket && window.MozWebSocket && (window.WebSocket = window.MozWebSocket);
    try {
      var WSK1 = new WebSocket(URL_WS1);
      WSK1.onopen = function(t) {
        setTimeout("checkOrTryHttp()", 200);
      }, WSK1.onmessage = function(e) {
        window.getCLodop || eval(e.data);
      }, WSK1.onerror = function(e) {
        var WSK2 = new WebSocket(URL_WS2);
        WSK2.onopen = function(t) {
          setTimeout("checkOrTryHttp()", 200);
        }, WSK2.onmessage = function(e) {
          window.getCLodop || eval(e.data);
        }, WSK2.onerror = function(t) {
          checkOrTryHttp();
        };
      };
    } catch (t) {
      checkOrTryHttp();
    }
  }
})();
function getLodop(t, a) {
  var r = "<br><font color='#FF00FF'>打印控件", o = r + "未安装!点击这里<a href='install_lodop32.exe' target='_self'>执行安装</a>", s = r + "需要升级!点击这里<a href='install_lodop32.exe' target='_self'>执行升级</a>", n = r + "未安装!点击这里<a href='install_lodop64.exe' target='_self'>执行安装</a>", i = r + "需要升级!点击这里<a href='install_lodop64.exe' target='_self'>执行升级</a>", l = "<br><font color='#FF00FF'>Web打印服务CLodop未安装启动,点击这里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>下载执行安装</a>", c = "<br>(若此前已安装过,可<a href='CLodop.protocol:setup' target='_self'>点这里直接再次启动</a>)", u = "<br><font color='#FF00FF'>Web打印服务CLodop需升级!点击这里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>执行升级</a>", h = "<br><font color='#FF00FF'>Web打印服务Lodop7", m = "点击这里<a href='Lodop7_Linux_X86_64.tar.gz' target='_self'>下载安装</a>(下载后解压,点击lodop文件开始执行)", _ = "点击这里<a href='Lodop7_Linux_ARM64.tar.gz'  target='_self'>下载安装</a>(下载后解压,点击lodop文件开始执行)", $ = h + "未安装启动," + m, y = h + "未安装启动," + _, E = h + "需升级," + m, T = h + "需升级," + _, p = ",成功后请刷新本页面或重启浏览器。</font>", v;
  try {
    var x = /MSIE/i.test(navigator.userAgent) || /Trident/i.test(navigator.userAgent), N = x && /x64/i.test(navigator.userAgent), w = /Linux/i.test(navigator.platform) && /x86/i.test(navigator.platform), I = /Linux/i.test(navigator.platform) && /aarch/i.test(navigator.platform);
    if (needCLodop() || w || I) {
      try {
        v = window.getCLodop();
      } catch {
      }
      if (!v && LoadJsState !== "complete") {
        alert(LoadJsState ? "网页还没下载完毕,请稍等一下再操作." : "未曾加载Lodop主JS文件,请先调用loadCLodop过程.");
        return;
      }
      var g;
      if (v)
        w && v.CVERSION < "7.0.7.5" ? g = E : I && v.CVERSION < "7.0.7.5" ? g = T : CLODOP.CVERSION < "6.5.8.0" && (g = u), g && (document.body.innerHTML = g + p + document.body.innerHTML);
      else {
        w ? g = $ : I ? g = y : g = l + (CLodopIsLocal ? c : ""), document.body.innerHTML = g + p + document.body.innerHTML;
        return;
      }
    } else {
      if (t || a ? x ? v = t : v = a : CreatedOKLodopObject ? v = CreatedOKLodopObject : (v = document.createElement("object"), v.setAttribute("width", 0), v.setAttribute("height", 0), v.setAttribute("style", "position:absolute;left:0px;top:-100px;width:0px;height:0px;"), x ? v.setAttribute("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA") : v.setAttribute("type", "application/x-print-lodop"), document.documentElement.appendChild(v), CreatedOKLodopObject = v), !v || !v.VERSION)
        return document.body.innerHTML = (N ? n : o) + p + document.body.innerHTML, v;
      v.VERSION < "6.2.2.6" && (document.body.innerHTML = (N ? i : s) + p + document.body.innerHTML);
    }
    return v;
  } catch (j) {
    alert("getLodop出错:" + j);
  }
}
const tableTempTohtml = (t, a, r) => {
  let o = "text-align:" + r.Alignment + ";";
  o += "font-size:" + r.FontSize + "pt;", o += "color:" + r.FontColor + ";";
  let s = "<style> table td,table th {word-break: break-all;box-sizing:border-box;border:1px solid " + r.BorderColor + "}</style>";
  return s += `<table border=1 width='100%' cellspacing='0' frame="box" cellpadding='2' style='border-collapse:collapse;` + o + "' bordercolor='" + r.BorderColor + "'>", s += "<thead><tr>", t.forEach((n) => {
    n.name === "_seq" ? s += '<th width="30">' : s += "<th>", s += n.title, s += "</th>";
  }), s += "</tr></thead>", s += "<tbody>", Array.isArray(a) && a.forEach((n, i) => {
    s += "<tr>", t.forEach((l) => {
      l.name === "_seq" ? (s += "<td>", s += i + 1) : (s += "<td>", s += n[l.name]), s += "</td>";
    }), s += "</tr>";
  }), s += "</tbody>", s += "</table>", s;
}, imageTempTohtml = (t) => "<img style='width:100%' src='" + t + "'/>", strTempToValue = (t, a) => {
  let r = /({[^}^{]*})/g;
  return t.replace(r, a || "");
}, htmlTempTohtml = (t, a) => {
  let r = "text-align:" + a.Alignment + ";";
  r += "font-size:" + a.FontSize + "pt;", r += "color:" + a.FontColor + ";";
  let o = "<span style='" + r + "'>";
  return o += t, o += "</span>", o;
};
let strCompanyName = "", strLicense = "", strLicenseA = "", strLicenseB = "";
const lodop = { print, preview, previewTemp, setLicenses };
function setLicenses(t) {
  strCompanyName = t.strCompanyName || "", strLicense = t.strLicense || "", strLicenseA = t.strLicenseA || "", strLicenseB = t.strLicenseB || "";
}
function print(t, a) {
  let r = _CreateLodop(t.title, t.width, t.height, t.pageWidth, t.pageHeight), o = cloneDeep$1(t.tempItems), s = _TempParser(o, a);
  return s.length > 1 ? s.forEach((i, l) => {
    r.NewPageA(), i.forEach((c) => {
      _AddPrintItem(r, c, l);
    });
  }) : s[0].forEach((i) => {
    _AddPrintItem(r, i);
  }), r.PRINT();
}
function preview(t, a) {
  let r = _CreateLodop(t.title, t.width, t.height, t.pageWidth, t.pageHeight), o = cloneDeep$1(t.tempItems), s = _TempParser(o, a);
  return a.length > 1 ? s.forEach((i, l) => {
    r.NewPageA(), i.forEach((c) => {
      _AddPrintItem(r, c, l);
    });
  }) : s[0].forEach((i) => {
    _AddPrintItem(r, i);
  }), r.PREVIEW();
}
function previewTemp(t) {
  let a = _CreateLodop(t.title, t.width, t.height, t.pageWidth, t.pageHeight), r = cloneDeep$1(t.tempItems);
  return _TempParser(r, void 0)[0].forEach((n) => {
    _AddPrintItem(a, n);
  }), a.PREVIEW();
}
function _CreateLodop(t, a, r, o = 0, s = 0, n = 0, i = 0) {
  let l = getLodop(void 0, void 0);
  return l.SET_LICENSES(strCompanyName, strLicense, strLicenseA, strLicenseB), l.PRINT_INITA(n, i, a, r, t), l.SET_PRINT_PAGESIZE(1, o ? o + "mm" : 0, s ? s + "mm" : 0, ""), l;
}
function _TempParser(t, a) {
  let r = cloneDeep$1(t), o = r.findIndex((s) => s.style.AutoHeight);
  if (o != -1) {
    let s = r[o];
    r.splice(o, 1), r.unshift(s), r.forEach((n) => {
      n.top > s.top && n.style.ItemType == 0 && (n.top = n.top - s.top - s.height, n.left = n.left - s.left, n.style.LinkedItem = 1);
    });
  }
  if (a && a.length > 0) {
    let s = [];
    return a.forEach((n) => {
      let i = r.map((l) => {
        let c = cloneDeep$1(l);
        return c.name && (c.defaultValue = n[c.name], c.value = strTempToValue(c.value, c.defaultValue)), c;
      });
      s.push(i);
    }), s;
  } else
    return [r];
}
function _AddPrintItem(t, a, r = 0) {
  let o = cloneDeep$1(a), s = _createLodopStyle(o.style);
  switch (s.LinkedItem == 1 && (s.LinkedItem = 1 + r), o.type) {
    case "braid-txt":
      t.ADD_PRINT_TEXT(
        o.top,
        o.left,
        o.width,
        o.height,
        o.value
      );
      break;
    case "bar-code":
      t.ADD_PRINT_BARCODE(
        o.top,
        o.left,
        o.width,
        o.height,
        s.codeType,
        o.value
      );
      break;
    case "braid-html":
      {
        let i = htmlTempTohtml(o.defaultValue, o.style);
        s.AutoHeight ? t.ADD_PRINT_HTM(
          o.top,
          o.left,
          o.width,
          "BottomMargin:" + s.BottomMargin + "mm",
          i
        ) : t.ADD_PRINT_HTM(
          o.top,
          o.left,
          o.width,
          o.height,
          i
        );
      }
      break;
    case "braid-table":
      {
        let i = tableTempTohtml(o.columns ? o.columns : [], o.defaultValue, o.style);
        s.AutoHeight ? t.ADD_PRINT_TABLE(
          o.top,
          o.left,
          o.width,
          "BottomMargin:" + s.BottomMargin + "mm",
          i
        ) : t.ADD_PRINT_TABLE(
          o.top,
          o.left,
          o.width,
          o.height,
          i
        );
      }
      break;
    case "braid-image":
      {
        let i = imageTempTohtml(o.value);
        t.ADD_PRINT_IMAGE(
          o.top,
          o.left,
          o.width,
          o.height,
          i
        );
      }
      break;
  }
  Object.keys(s).forEach((i) => {
    t.SET_PRINT_STYLEA(0, i, s[i]);
  });
  let n = o.lodopStyle;
  n && Object.keys(n).forEach((i) => {
    t.SET_PRINT_STYLEA(0, i, n[i]);
  });
}
function _createLodopStyle(t) {
  let a = {
    zIndex: t.zIndex
  };
  for (let r in t)
    ["Bold", "Italic", "Underline", "ShowBarText"].indexOf(r) > -1 ? a[r] = t[r] ? 1 : 0 : r === "Alignment" ? a[r] = t[r] == "left" ? 1 : t[r] == "center" ? 2 : 3 : a[r] = t[r];
  return a;
}
const _hoisted_1 = { class: "kr-designer" }, _hoisted_2 = { class: "kr-designer-tool" }, _hoisted_3 = { class: "kr-designer-tool_bar" }, _sfc_main = /* @__PURE__ */ defineComponent({
  name: "tata-print-view",
  __name: "App",
  props: {
    widgetOptions: {},
    tempValue: {}
  },
  emits: ["save"],
  setup(t, { emit: a }) {
    const r = t, o = a, s = () => {
      let l = useStore().state.page;
      o("save", cloneDeep$1(l)), console.log(cloneDeep$1(l));
    }, n = () => {
      let l = { ...useStore().state.page };
      lodop.previewTemp(cloneDeep$1(l));
    };
    return ((l, c) => {
      useStore().designerInit(useStore().state, {
        tempValue: cloneDeep$1(l),
        options: cloneDeep$1(c)
      });
    })(r.tempValue, r.widgetOptions), (l, c) => {
      const u = resolveComponent("el-scrollbar"), h = resolveComponent("el-button");
      return openBlock(), createElementBlock("div", _hoisted_1, [
        createVNode(Viewport, { class: "kr-designer-view" }),
        createElementVNode("div", _hoisted_2, [
          createVNode(u, { class: "kr-designer-tool_con" }, {
            default: withCtx(() => [
              createVNode(Panel, { class: "control-panel" })
            ]),
            _: 1
          }),
          createElementVNode("div", _hoisted_3, [
            createVNode(h, {
              size: "mini",
              type: "success",
              onClick: s
            }, {
              default: withCtx(() => [
                createTextVNode("保存")
              ]),
              _: 1
            }),
            createVNode(h, {
              size: "mini",
              type: "primary",
              onClick: n
            }, {
              default: withCtx(() => [
                createTextVNode("预览")
              ]),
              _: 1
            })
          ])
        ])
      ]);
    };
  }
}), component = [Button, _sfc_main], tataUI = {
  install(t) {
    component.forEach((a) => {
      t.component(a.name, a);
    });
  }
};
export {
  Button,
  tataUI as default,
  _sfc_main as printView
};