var de = Object.defineProperty;
var ue = (s, a, e) => a in s ? de(s, a, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[a] = e;
var P = (s, a, e) => (ue(s, typeof a != "symbol" ? a + "" : a, e), e);
import { EditFormModel as me, FormMDCtrlModel as pe, DefectModelError as he, AppEntityModel as H } from "@ibiz-template/model";
import { useNamespace as B, useControlController as fe, usePropsWatch as ve, getDatePickerProps as ye, getEditorEmits as G, useController as ge, getDataPickerProps as se, useViewController as we } from "@ibiz-template/vue-util";
import { defineComponent as M, getCurrentInstance as W, ref as A, watch as V, h as r, onMounted as De, computed as j } from "vue";
import { createUUID as te } from "qx-util";
import { ViewMode as ae, PluginStaticResource as Ce, OpenAppViewCommand as q, UIActionHandler as Ee, FrontUIActionHandler as re } from "@ibiz-template/runtime";
import { EditFormController as be, FormMDCtrlController as Pe, FormDRUIPartController as Ae, EditViewController as Fe, DatePickerEditorController as Ie, UploadEditorController as Se, PickerEditorController as oe } from "@ibiz-template/controller";
import { ControlVO as ke, calcResPath as K } from "@ibiz-template/service";
import $ from "dayjs";
import { RuntimeError as xe, StringUtil as ne } from "@ibiz-template/core";
class Ne extends be {
  constructor() {
    super(...arguments);
    /**
     *   基础数据
     *
     * @author fangZhiHao
     * @date 2024-04-26 17:04:49
     * @type {IData}
     */
    P(this, "baseResData", []);
    /**
     *   对比数据
     *
     * @author fangZhiHao
     * @date 2024-04-26 17:04:49
     * @type {IData}
     */
    P(this, "compareResData", []);
    /**
     * 表单旧数据
     *
     * @author zk
     * @date 2023-12-20 11:12:43
     * @protected
     * @type {IData}
     * @memberof FormController
     */
    P(this, "oldData", new ke());
    /**
     * version数据
     *
     * @author fangZhiHao
     * @date 2024-04-26 16:04:37
     * @type {IData[]}
     */
    P(this, "versionData", []);
    /**
     *  对比数据
     *
     * @author fangZhiHao
     * @date 2024-04-26 16:04:37
     * @type {IData[]}
     */
    P(this, "comparisonArr", {});
    /**
     *  基础表格数据
     *
     * @author fangZhiHao
     * @date 2024-05-06 11:05:57
     * @type {IData[]}
     */
    P(this, "gridData", []);
    /**
     *  展示完全数据
     *
     * @author fangZhiHao
     * @date 2024-05-06 11:05:04
     * @type {IData[]}
     */
    P(this, "AllGridData", []);
    /**
     *  去除相同数据
     *
     * @author fangZhiHao
     * @date 2024-05-06 11:05:15
     * @type {IData[]}
     */
    P(this, "removeSameGridData", []);
    /**
     *  关系界面数据
     *
     * @author fangZhiHao
     * @date 2024-04-30 10:04:33
     * @type {IData}
     */
    P(this, "AlldruipartData", /* @__PURE__ */ new Map());
    /**
     *  关系界面数据长度
     *
     * @author fangZhiHao
     * @date 2024-05-06 11:05:56
     * @type {number}
     */
    P(this, "druipartDataSize", 0);
    /**
     *   关系界面实际数据
     *
     * @author fangZhiHao
     * @date 2024-05-06 11:05:13
     * @type {IData}
     */
    P(this, "newDruipartData", {});
  }
  /**
   * 加载数据
   *
   * @return {*}  {Promise<ControlVO>}
   * @memberof FormDataComparisonController
   */
  async loadGridData() {
    await this.startLoading();
    const e = this.model.source.M.getPSControlParam.ctrlParams, { BASEENTITY: t, COMPAREENTITY: i } = e, n = await ibiz.entityService.getService(t), c = await ibiz.entityService.getService(i), g = Object.assign({}, this.context.clone(), {
      [t.toLowerCase()]: this.params.base_version
    }), u = Object.assign({}, this.context.clone(), {
      [i.toLowerCase()]: this.params.compare_version
    }), m = await n.exec("Get", g, this.params), w = await c.exec(
      "Get",
      u,
      this.params
    );
    return this.isLoaded = !0, {
      baseData: m.data.data,
      compareData: w.data.data
    };
  }
  /**
   * 判断值是否为空
   *
   * @param {(string | IData[] | null | undefined)} value
   * @return {*}
   * @memberof FormDataComparisonController
   */
  isFalseyButNotEmpty(e) {
    return e == null || typeof e == "string" && e === "" || Array.isArray(e) && e.length === 0 || typeof e == "object" && Object.keys(e).length === 0;
  }
  /**
   * 比较两个值
   *
   * @param {IData} objA
   * @param {IData} objB
   * @return {*}
   * @memberof FormDataComparisonController
   */
  compareObjectValues(e, t) {
    return JSON.stringify(e) !== JSON.stringify(t);
  }
}
const Oe = M({
  name: "IBizFormDataComparison",
  props: {
    modelData: {
      type: me,
      required: !0
    },
    context: {
      type: Object,
      required: !0
    },
    params: {
      type: Object,
      default: () => ({})
    },
    enableAutoSave: {
      type: Boolean,
      required: !1
    }
  },
  setup(s) {
    const a = B("form-data-comparison"), {
      proxy: e
    } = W(), t = fe(e, () => {
      const o = new Ne(s.modelData, s.context, s.params);
      return ve(e, "enableAutoSave", o.setEnableAutoSave.bind(o)), o;
    }), i = A(!0), n = A(!1), c = A({}), g = A({}), u = A([]), m = [], w = A([]), l = A([]), v = A([]), f = /* @__PURE__ */ new Map(), C = A(0), h = (o) => {
      const d = [];
      if (d.push(o), o && o.children) {
        const b = [];
        o.children.forEach((S) => {
          const x = h(S);
          b.push(...x);
        }), d.push(...b);
      }
      return d;
    }, p = h(s.modelData);
    m.push(...p);
    const y = (o) => {
      const d = t.details[o.source.name], b = r("not-supported-editor", {
        attrs: {
          modelData: o.editor
        }
      });
      return r("div", {
        class: [a.e("form-grid-item"), a.is("add", w.value.includes(o.source.name)), a.is("update", v.value.includes(o.source.name)), a.is("delete", l.value.includes(o.source.name))]
      }, [r("div", {
        class: a.em("form-grid-item", "name")
      }, [o.source.caption]), r("div", {
        class: a.em("form-grid-item", "left")
      }, [d.editorProvider ? r(d.editorProvider.formEditor, {
        props: {
          value: g.value[o.source.name],
          data: d.data,
          controller: d.editor,
          disabled: d.disabled,
          readonly: !0
        }
      }) : b]), r("div", {
        class: a.em("form-grid-item", "right")
      }, [d.editorProvider ? r(d.editorProvider.formEditor, {
        props: {
          value: c.value[o.source.name],
          data: d.data,
          controller: d.editor,
          disabled: d.disabled,
          readonly: !0
        }
      }) : b])]);
    }, F = (o, d) => {
      f.set(o.source.id, d), d.evt.on("mounted", () => {
        i.value && t.startLoading(), C.value += 1, d.call.refresh();
      }), d.evt.on("refreshed", () => {
        C.value -= 1, setTimeout(() => {
          i.value && t.endLoading();
        }, 500);
      });
    }, I = (o) => {
      const d = m.find((L) => L.id === `${o.source.id}_srfcopy`), b = o.embedView.source.modelPath, S = d == null ? void 0 : d.embedView.source.modelPath, x = t.context.clone(), N = {
        base_version: s.params.base_version
      }, T = t.context.clone();
      Object.assign(T, {
        gysrlzy_info: s.params.compare_version,
        compare_version: s.params.compare_version
      });
      const _ = {
        compare_version: s.params.compare_version
      }, R = c.value[o.source.userTag], U = g.value[d == null ? void 0 : d.source.userTag];
      let J = !1, z = !1, X = !1;
      if (o.source.userTag2) {
        const L = JSON.parse(o.source.userTag2), {
          comparekey: Z,
          comparelist: ce
        } = L;
        R && U && Array.isArray(R) && Array.isArray(U) && (R.length === 0 && U.length !== 0 ? X = !0 : R.length !== 0 && U.length === 0 ? J = !0 : R.length !== 0 && U.length !== 0 && (R.length !== U.length ? z = !0 : R.some((Q) => {
          const ee = U.find((Y) => Q[Z] === Y[Z]);
          return ee ? ce.some((Y) => Q[Y] !== ee[Y] ? (z = !0, !0) : !1) : (z = !0, !0);
        })));
      }
      return r("div", {
        class: [a.e("druipart"), a.is("add", J), a.is("update", z), a.is("delete", X)]
      }, [r("div", {
        class: a.em("druipart", "caption")
      }, [o.source.caption]), r("div", {
        class: a.em("druipart", "left")
      }, [S && r("ViewShell", {
        attrs: {
          context: T,
          params: _,
          modal: {
            mode: ae.EMBED
          },
          modelPath: S,
          noLoadDefault: !0,
          name: d == null ? void 0 : d.source.id
        },
        key: te(),
        on: {
          neuronInit: (L) => F(d, L)
        }
      })]), r("div", {
        class: a.em("druipart", "right")
      }, [b && r("ViewShell", {
        attrs: {
          context: x,
          params: N,
          modal: {
            mode: ae.EMBED
          },
          modelPath: b,
          noLoadDefault: !0,
          name: o.source.id
        },
        key: te(),
        on: {
          neuronInit: (L) => F(o, L)
        }
      })])]);
    }, D = (o) => {
      const d = {
        modelData: o,
        controller: t.details[o.source.name]
      }, b = t.providers[o.source.name], S = r(b.component, {
        props: {
          ...d
        },
        key: o.id
      }), x = r(b.component, {
        props: {
          ...d
        },
        key: `compare_${o.id}`
      });
      return r("div", {
        class: a.e("mdctrl")
      }, [r("div", {
        class: a.em("mdctrl", "caption")
      }, [o.source.caption]), r("div", {
        class: a.em("mdctrl", "left")
      }, [S]), r("div", {
        class: a.em("mdctrl", "right")
      }, [x])]);
    }, E = (o) => {
      i.value = !1;
      const d = u.value.findIndex((b) => b === o.source.name);
      d > -1 ? u.value.splice(d, 1) : u.value.push(o.source.name);
    }, k = (o) => {
      if (!o.source.hidden) {
        if (o.source.detailType === "FORMPAGE")
          return r("div", {
            class: a.e("form-page")
          }, [o.children.map((d) => k(d))]);
        if (o.source.detailType === "FORMITEM") {
          const d = w.value.includes(o.source.name), b = l.value.includes(o.source.name), S = v.value.includes(o.source.name);
          return n.value && !d && !b && !S ? null : y(o);
        }
        if (o.source.detailType === "GROUPPANEL") {
          const d = u.value.includes(o.source.name);
          return r("div", {
            class: a.b("group")
          }, [r("div", {
            class: [a.be("group", "header"), a.is("hide-caption", !o.source.showCaption)]
          }, [r("div", {
            class: a.bem("group", "header", "name")
          }, [d ? r("i-icon", {
            class: a.bem("group", "header", "icon"),
            attrs: {
              type: "ios-arrow-forward",
              title: "展开"
            },
            on: {
              click: () => E(o)
            }
          }) : r("i-icon", {
            class: a.bem("group", "header", "icon"),
            attrs: {
              type: "ios-arrow-down",
              title: "收缩"
            },
            on: {
              click: () => E(o)
            }
          }), r("span", {
            class: a.bem("group", "header", "name-text")
          }, [o.source.caption || o.source.title])]), r("div", ["---"]), r("div", ["---"])]), r("div", {
            class: [a.be("group", "content"), a.is("collapse", d)]
          }, [o.children.map((b) => k(b))])]);
        }
        return o.source.detailType === "DRUIPART" && !o.source.name.endsWith("_srfcopy") ? I(o) : o.source.detailType === "MDCTRL" ? D(o) : null;
      }
    }, O = (o, d) => {
      const b = [], S = [], x = [];
      return Object.keys(d).forEach((N) => {
        const T = o[N], _ = d[N];
        t.isFalseyButNotEmpty(T) && !t.isFalseyButNotEmpty(_) && b.push(N), !t.isFalseyButNotEmpty(T) && !t.isFalseyButNotEmpty(_) && t.compareObjectValues(T, _) && S.push(N);
      }), Object.keys(o).forEach((N) => {
        if (!Object.prototype.hasOwnProperty.call(d, N) || t.isFalseyButNotEmpty(d[N])) {
          const T = o[N];
          t.isFalseyButNotEmpty(T) || x.push(N);
        }
      }), {
        added: b,
        modified: S,
        deleted: x
      };
    };
    return V(() => s.params, async () => {
      const o = await t.loadGridData();
      c.value = o.baseData, g.value = o.compareData;
      const {
        added: d,
        modified: b,
        deleted: S
      } = O(g.value, c.value);
      w.value = d, v.value = b, l.value = S;
    }, {
      immediate: !0
    }), {
      ns: a,
      c: t,
      switchValue: n,
      druipartNum: C,
      renderEditor: y,
      renderByDetailType: k
    };
  },
  render() {
    return this.c.complete ? r("control-layout", {
      attrs: {
        modelData: this.c.model
      }
    }, [r("div", {
      class: this.ns.b()
    }, [r("div", {
      class: this.ns.e("top")
    }, [r("div", {
      class: this.ns.e("top-hidesame-content")
    }, [r("div", {
      class: this.ns.e("top-hidesame-content-left")
    }, ["隐藏相同项 ", r("i-switch", {
      model: {
        value: this.switchValue,
        callback: (s) => {
          this.switchValue = s;
        }
      }
    })]), r("div", {
      class: this.ns.e("top-hidesame-content-right")
    }, [r("div", {
      class: this.ns.e("top-hidesame-content-right-item")
    }, ["新增", r("div", {
      class: this.ns.e("top-hidesame-content-right-item-add")
    })]), r("div", {
      class: this.ns.e("top-hidesame-content-right-item")
    }, ["修改", r("div", {
      class: this.ns.e("top-hidesame-content-right-item-change")
    })]), r("div", {
      class: this.ns.e("top-hidesame-content-right-item")
    }, ["删除", r("div", {
      class: this.ns.e("top-hidesame-content-right-item-delete")
    })])])]), r("div", {
      class: this.ns.e("top-content")
    }, [r("div", {
      class: this.ns.em("top-content", "attr")
    }, ["信息项"]), r("div", {
      class: [this.ns.em("top-content", "left")]
    }, ["更新前内容"]), r("div", {
      class: [this.ns.em("top-content", "right")]
    }, ["更新后内容"])])]), r("div", {
      class: this.ns.e("content")
    }, [this.modelData.children.map((s) => this.renderByDetailType(s))])])]) : null;
  }
});
const Te = M({
  name: "CustomDataImport",
  props: {
    templateUrl: {
      type: String,
      required: !0
    },
    importUrl: {
      type: String,
      required: !0
    },
    dismiss: {
      type: Function
    }
  },
  setup(s, {
    emit: a
  }) {
    const e = B("data-import"), t = A(), i = A({
      state: "ready",
      message: "",
      rowError: []
    }), n = A(""), c = async (l) => {
      const v = new FormData(), f = $(n.value).format("YYYY-MM");
      v.append("file", l), v.append("ny", f);
      try {
        const C = await ibiz.net.request(s.importUrl, {
          method: "post",
          data: v,
          headers: {
            "Content-Type": "multipart/form-data"
          }
        });
        i.value.state = "success", i.value.message = "导入成功";
        const {
          errorinfo: h,
          success: p,
          total: y
        } = C.data, F = y ? Number(y) : 0, I = p ? Number(p) : 0, D = y - p;
        i.value.message = `共计导入数据 ${F} 条，错误[${D}]，成功[${I}]`, h && Object.keys(h).length > 0 && (i.value.rowError = [], Object.keys(h).forEach((E) => {
          i.value.rowError.push({
            index: Number(E) + 1,
            info: h[E].errorInfo
          });
        }));
      } catch (C) {
        i.value.state = "fail", i.value.message = `导入失败！${C.message}`;
      }
    }, g = (l) => {
      const v = l.target;
      if (!v.files)
        return;
      const f = v.files[0];
      v.value = null, c(f);
    }, u = async () => {
      var v;
      const l = await ibiz.net.request(s.templateUrl, {
        responseType: "blob"
      });
      if (l.status === 200) {
        let f = ((v = l.headers["content-disposition"].split(";").find((p) => p.indexOf("filename=") !== -1)) == null ? void 0 : v.slice(9)) || "";
        f = decodeURIComponent(f);
        const C = new Blob([l.data], {
          type: "application/vnd.ms-excel"
        }), h = document.createElement("a");
        h.download = f, h.style.display = "none", h.href = URL.createObjectURL(C), document.body.appendChild(h), h.click(), URL.revokeObjectURL(h.href), document.body.removeChild(h);
      }
    }, m = () => {
      t.value.click();
    }, w = () => {
      var l;
      a("close", {
        ok: !1,
        data: {}
      }), (l = s.dismiss) == null || l.call(s, {
        ok: !1,
        data: {}
      });
    };
    return De(() => {
      n.value = $().format("YYYY年MM月");
    }), {
      ns: e,
      curDate: n,
      onLinkClick: u,
      selectFile: m,
      onCancelButtonClick: w,
      onFileChange: g,
      inputUpLoad: t,
      message: i
    };
  },
  render() {
    return r("div", {
      class: [this.ns.b(), this.ns.is("custom", !0)]
    }, [r("input", {
      ref: "inputUpLoad",
      attrs: {
        type: "file",
        accept: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      },
      style: "display: none",
      on: {
        change: this.onFileChange
      }
    }), r("div", {
      class: this.ns.e("caption")
    }, ["导入数据"]), r("div", {
      class: this.ns.e("date")
    }, [r("span", ["导入数据所属月份"]), r("i-datePicker", {
      attrs: {
        format: "yyyy年MM月",
        type: "month",
        clearable: !1
      },
      model: {
        value: this.curDate,
        callback: (s) => {
          this.curDate = s;
        }
      }
    })]), this.message.state === "ready" ? r("div", {
      class: this.ns.b("upload"),
      on: {
        click: this.selectFile
      }
    }, [r("img", {
      class: this.ns.be("upload", "img"),
      attrs: {
        src: "./assets/img/icon-import.svg"
      }
    }), r("span", {
      class: this.ns.be("upload", "text")
    }, ["单击此区域进行上传"])]) : r("div", {
      class: this.ns.b("message")
    }, [r("div", {
      class: this.ns.be("message", "title")
    }, ["导入结果"]), r("div", {
      class: this.ns.be("message", "content")
    }, [this.message.message]), this.message.rowError.length > 0 && [r("div", {
      class: this.ns.be("message", "title")
    }, ["错误信息"]), r("div", {
      class: this.ns.be("message", "content")
    }, [this.message.rowError.map((s) => r("div", [`第 ${s.index} 行：${s.info}`]))])]]), r("div", {
      class: this.ns.e("template-container")
    }, [r("div", {
      class: this.ns.e("template-description")
    }, ["下载导入模版，并按要求填写："]), r("div", {
      class: this.ns.e("template-link"),
      on: {
        click: this.onLinkClick
      }
    }, [r("i-icon", {
      attrs: {
        type: "ios-link"
      }
    }), "数据导入模板文件"])]), r("div", {
      class: this.ns.e("button-bar")
    }, [this.message.state !== "ready" && r("i-button", {
      on: {
        click: this.selectFile
      }
    }, ["重新上传"])])]);
  }
});
const Me = M({
  name: "YearMonthPicker",
  props: ye(),
  emits: G(),
  setup(s, {
    emit: a
  }) {
    const e = B("date-picker"), t = s.controller, i = t.model, n = A("date"), c = A("yyyy-MM-dd"), g = A(!1);
    switch (i.editorType) {
      case "DATEPICKEREX":
      case "DATEPICKEREX_NOTIME":
        n.value = "date";
        break;
      case "DATEPICKEREX_NODAY":
      case "DATEPICKEREX_NODAY_NOSECOND":
        g.value = !0, n.value = "time";
        break;
      case "DATEPICKEREX_HOUR":
      case "DATEPICKEREX_MINUTE":
      case "DATEPICKEREX_SECOND":
      case "DATEPICKEREX_NOSECOND":
      case "DATEPICKER":
      default:
        n.value = "datetime";
    }
    const u = t.valueFormat;
    if (u) {
      u === "YYYY-MM" ? n.value = "month" : u === "YYYY" && (n.value = "year");
      const f = u.replace("YYYY", "yyyy").replace("DD", "dd");
      c.value = f;
    }
    i.editorParams.formatText && (c.value = i.editorParams.formatText.replace("YYYY", "yyyy").replace("DD", "dd"));
    const m = A();
    V(() => s.value, (f, C) => {
      f && f !== C && (m.value = $(f).format(u));
    }, {
      immediate: !0
    });
    const w = (f, C) => {
      if (f) {
        const h = $(f.replace(/[年月]/g, "-")).format(u);
        a("change", h);
      } else
        a("change", f);
    }, l = (f) => {
      a("operate", f);
    }, v = A();
    return s.autoFocus && V(v, (f) => {
      f && f.$el.getElementsByTagName("input")[0].click();
    }), {
      ns: e,
      c: t,
      editorModel: i,
      type: n,
      format: c,
      formatValue: m,
      handleChange: w,
      onOpenChange: l,
      inputRef: v,
      isTimePicker: g
    };
  },
  render(s) {
    return s("div", {
      class: [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
    }, [[this.readonly && this.formatValue, !this.readonly && this.isTimePicker && s("ITimePicker", {
      ref: "inputRef",
      props: {
        ...this.c.customProps,
        value: this.value,
        type: this.type,
        format: this.format,
        placeholder: this.c.placeHolder,
        disabled: this.disabled,
        transfer: !0
      },
      on: {
        "on-change": this.handleChange,
        "on-open-change": this.onOpenChange
      }
    }), !this.readonly && !this.isTimePicker && s("ICalendarPicker", {
      ref: "inputRef",
      props: {
        ...this.c.customProps,
        value: this.value,
        type: this.type,
        format: this.format,
        placeholder: this.c.placeHolder,
        disabled: this.disabled,
        transfer: !0
      },
      on: {
        "on-change": this.handleChange,
        "on-open-change": this.onOpenChange
      }
    })]]);
  }
});
const ie = new Ce(import.meta.url), Re = M({
  name: "DownLoadSafeFile",
  props: {},
  setup() {
    const s = B("download-safe-file"), a = ie.dir("/assets/doc/safe-file.doc");
    return {
      ns: s,
      url: a
    };
  },
  render() {
    return r("div", {
      class: this.ns.b()
    }, [r("a", {
      attrs: {
        download: "网络信息安全承诺书.doc",
        href: this.url
      }
    }, ["网络信息安全承诺书.doc"])]);
  }
});
class le extends Pe {
  constructor() {
    super(...arguments);
    /**
     * 激活的分页下标
     *
     * @type {number}
     * @memberof FormMDCtrlFormStyle2Controller
     */
    P(this, "active", 0);
  }
  /**
   * 计算表单更新项信息
   *
   * @param {IPSDEFormItemUpdate} formItemUpdate
   * @return {*}
   * @memberof FormMDCtrlFormStyle2Controller
   */
  calcFormUpdateItem(e) {
    var t, i;
    return {
      methodName: ((t = e.getPSAppDEMethod()) == null ? void 0 : t.codeName) || "",
      itemNames: (i = e.getPSDEFIUpdateDetails()) == null ? void 0 : i.map((n) => n.name),
      model: {
        customCode: e.customCode,
        scriptCode: e.scriptCode
      }
    };
  }
  connect(e, t) {
    this.formNeurons.get(e) || (this.formNeurons.set(e, t), t.evt.on("mounted", () => {
      t.call.load();
    }), t.evt.on("destroyed", () => {
      this.formNeurons.delete(e);
    }), t.evt.on("valueChange", (i) => {
      if (i) {
        const n = this.contentCtrlData.find((c) => c.srfkey === i.srfkey);
        n && Object.assign(n, i), this.force();
      }
    }), t.evt.on("afterSave", async () => {
      const i = this.model.source.M.getPSAppDEField;
      i && await this.form.setDataValue(i.codeName.toLowerCase(), [
        ...this.contentCtrlData
      ]);
      const n = this.model.source.getPSDEFormItemUpdate();
      if (n) {
        const { methodName: c, itemNames: g, model: u } = this.calcFormUpdateItem(n);
        await this.form.updateFormItem(
          c,
          g,
          u
        );
      }
    }));
  }
  /**
   * 校验
   *
   * @return {*}  {Promise<boolean>}
   * @memberof FormMDCtrlFormStyle2Controller
   */
  async validate() {
    const e = [];
    this.formNeurons.forEach((n, c) => {
      const g = n.call.getFormController();
      e.push({ key: c, controller: g });
    });
    let t = "";
    const i = await Promise.all(
      e.map(async (n) => {
        const c = await n.controller.validate();
        return !t && !c && (t = n.key), c;
      })
    );
    if (t) {
      const n = this.contentCtrlData.findIndex((c) => c.srfkey === t);
      n > -1 && (this.active = n);
    }
    return i.findIndex((n) => !n) === -1;
  }
  /**
   * 静默校验
   *
   * @return {*}  {Promise<boolean>}
   * @memberof FormMDCtrlFormStyle2Controller
   */
  async silentValidate() {
    const e = [];
    this.formNeurons.forEach((n, c) => {
      const g = n.call.getFormController();
      e.push({ key: c, controller: g });
    });
    let t = "";
    const i = await Promise.all(
      e.map(async (n) => {
        const c = await n.controller.silentValidate();
        return !t && !c && (t = n.key), c;
      })
    );
    if (t) {
      const n = this.contentCtrlData.findIndex((c) => c.srfkey === t);
      n > -1 && (this.active = n);
    }
    return i.findIndex((n) => !n) === -1;
  }
}
const Ue = M({
  name: "FormMDCtrlFormStyle2",
  props: {
    controller: {
      type: le,
      required: !0
    },
    modelData: {
      type: pe,
      required: !0
    }
  },
  setup(s) {
    const a = B("form-mdctrl-form-style2"), e = s.controller, {
      proxy: t
    } = W();
    ge(t, s.controller);
    const i = async (m, w, l) => {
      l.stopPropagation(), l.preventDefault();
      const v = e.contentCtrlData.length;
      await e.handleRemove(m, w), v !== e.contentCtrlData.length && w <= e.active && e.active !== 0 && (e.active -= 1);
    }, n = (m) => {
      e.active = m, e.force();
    }, c = async () => {
      const m = JSON.parse(JSON.stringify(e.contentCtrlData)).length;
      await e.handleAdd(), m < e.contentCtrlData.length && (e.active = e.contentCtrlData.length - 1);
    }, g = () => {
      const m = s.modelData.source.userTag;
      let w = {};
      m && (w = JSON.parse(m));
      const {
        tabtitle: l,
        addtitle: v,
        usermode: f
      } = w;
      return f === "user1" && e.contentCtrlData.some((h) => h.rcrylx === "system") ? r("div", {
        class: a.e("header")
      }, [e.contentCtrlData.map((h, p) => {
        let y = "";
        h.srfmajortext ? y = h.srfmajortext : l && h[l] && (y = h[l]);
        let F = "待确认";
        return h.is_rc === 1 ? F = "确认入场" : h.is_rc === 0 && (F = "放弃入场"), r("div", {
          class: [a.e("header-item"), a.is("actived", p === e.active)],
          on: {
            click: () => n(p)
          }
        }, [r("div", {
          class: a.em("header-item", "title")
        }, [y, "（", F, "）"])]);
      })]) : r("div", {
        class: a.e("header")
      }, [e.contentCtrlData.map((C, h) => {
        let p = `新建${h + 1}`;
        return C.srfmajortext ? p = C.srfmajortext : l && C[l] ? p = C[l] : v && (p = `${v}${h + 1}`), r("div", {
          class: [a.e("header-item"), a.is("actived", h === e.active)],
          on: {
            click: () => n(h)
          }
        }, [r("div", {
          class: a.em("header-item", "title")
        }, [p]), e.enableDelete && r("div", {
          class: a.em("header-item", "delete"),
          attrs: {
            title: "移除"
          },
          on: {
            click: (y) => i(C, h, y)
          }
        }, [r("i", {
          class: "fa fa-close"
        })])]);
      }), e.enableCreate && r("div", {
        class: [a.e("header-item"), a.e("add")],
        attrs: {
          title: "添加"
        },
        on: {
          click: () => c()
        }
      }, [r("span", ["添加"]), r("i", {
        class: "fa fa-plus"
      })])]);
    };
    return V(() => e.form.isLoaded, (m, w) => {
      m !== w && m === !0 && e.loadData();
    }), {
      ns: a,
      rendertanHeader: g,
      renderTabs: () => e.contentCtrlData.map((m, w) => {
        var f;
        let l = null;
        const {
          form: v
        } = e.model;
        if (v && e.providers[v.name] && e.model.appEntity) {
          const C = Object.assign(e.form.context.clone(), {
            [(f = e.model.appEntity.codeName) == null ? void 0 : f.toLowerCase()]: m[e.model.appEntity.keyName]
          });
          l = r(e.providers[v.name].component, {
            props: {
              modelData: v,
              context: C,
              params: e.form.params,
              enableAutoSave: !0,
              silentVerify: !0
            },
            on: {
              neuronInit: e.onNeuronInit(m.srfkey)
            }
          });
        }
        return r("div", {
          class: [a.e("content"), a.is("actived", w === e.active)],
          key: m.srfkey
        }, [l]);
      })
    };
  },
  render() {
    return r("div", {
      class: this.ns.b()
    }, [this.rendertanHeader(), this.renderTabs()]);
  }
}), Le = M({
  name: "AutoSelectAll",
  props: se(),
  emits: G(),
  setup(s, {
    emit: a
  }) {
    const e = B("mpicker"), t = s.controller, i = A([]), n = A([]), c = A([]), g = A(!1), u = A(!1), m = A(null), w = A([]), l = A(!0), v = j(() => {
      const D = t.editorParams.followitem;
      return D ? s.data[D] : "";
    });
    V(() => s.value, (D) => {
      i.value = [], c.value = [], D && (c.value = JSON.parse(D), c.value.length > 0 && c.value.forEach((E) => {
        n.value.findIndex((O) => Object.is(O.srfkey, E.srfkey)) < 0 && (n.value.push(E), w.value.push(E.srfmajortext)), i.value.push(E.srfkey);
      }));
    }, {
      immediate: !0,
      deep: !0
    });
    const f = async (D) => {
      const E = [];
      if (D && Array.isArray(D))
        for (let O = 0; O < D.length; O++) {
          const o = D[O], d = {
            srfkey: o[t.keyName] || o.srfkey,
            srfmajortext: o[t.textName] || o.srfmajortext
          }, b = await t.calcFillDataItems(o);
          b.length > 0 && b.forEach((x) => {
            Object.assign(d, {
              [x.name]: x.value
            });
          }), E.push(d), n.value.findIndex((x) => Object.is(x[t.keyName], o[t.keyName])) < 0 && n.value.push(d);
        }
      const k = E.length > 0 ? JSON.stringify(E) : "";
      a("change", k);
    }, C = async () => {
      let D;
      c.value.length && (D = JSON.stringify(c.value));
      const E = await t.openPickUpView(s.data, D);
      E && f(E);
    }, h = (D) => {
      const E = [];
      if (D.length > 0) {
        D.forEach((O) => {
          let o = n.value.findIndex((b) => Object.is(b.srfkey, O)), d = null;
          o >= 0 ? d = n.value[o] : (o = c.value.findIndex((b) => Object.is(b.srfkey, O)), o >= 0 && (d = c.value[o])), d && E.push(d);
        });
        const k = E.length > 0 ? JSON.stringify(E) : "";
        a("change", k);
      } else
        a("change", "");
    }, p = async (D) => {
      if (t.model.appDataEntity) {
        u.value = !0;
        try {
          const E = await t.getServiceData(D, s.data);
          u.value = !1, n.value = [], E.data.length > 0 && (n.value = E.data.map((k) => ({
            srfkey: k[t.keyName],
            srfmajortext: k[t.textName]
          })));
        } catch (E) {
          u.value = !1;
        }
      }
    }, y = (D) => {
      g.value = D, a("operate", D), g.value && p("");
    }, F = j(() => c.value.map((D) => D.srfmajortext).join("、")), I = (D) => {
      n.value = D;
    };
    return V(() => v.value, async (D) => {
      if (D) {
        await p("");
        const E = n.value.map((k) => k.srfkey);
        if (l.value && (l.value = !1, s.value))
          return;
        h(E);
      } else
        n.value = [], a("change", "");
    }, {
      immediate: !0
    }), {
      ns: e,
      c: t,
      selectRef: m,
      curValue: i,
      loading: u,
      items: n,
      defaultLabel: w,
      valueText: F,
      onSearch: p,
      onOpenChange: y,
      onSelect: h,
      openPickUpView: C,
      setDefaultOptions: I
    };
  },
  render(s) {
    return s("div", {
      class: [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
    }, [this.readonly && this.valueText, !this.readonly && s("iSelect", {
      ref: "selectRef",
      props: {
        ...this.c.customProps,
        value: this.curValue,
        filterable: !0,
        transfer: !0,
        multiple: !0,
        defaultLabel: this.defaultLabel,
        loading: this.loading,
        placeholder: this.c.placeHolder,
        disabled: this.disabled,
        remoteMethod: this.onSearch
      },
      on: {
        "on-change": this.onSelect,
        "on-open-change": this.onOpenChange
      }
    }, [this.items.map((a) => s("i-option", {
      key: a.srfkey,
      attrs: {
        value: a.srfkey,
        label: a.srfmajortext
      }
    }, [a.srfmajortext]))]), !this.readonly && s("div", {
      class: this.ns.e("buns-position")
    }, [s("div", {
      class: this.ns.e("btns")
    }, [this.c.pickupView ? s("i-button", {
      attrs: {
        icon: "ios-search",
        type: "text"
      },
      on: {
        click: this.openPickUpView
      }
    }) : null])])]);
  }
});
const Ve = M({
  name: "MPickerCheckbox",
  props: se(),
  emits: G(),
  setup(s, {
    emit: a
  }) {
    const e = B("checkbox"), t = s.controller, i = A([]), n = A([]), c = A(!0), g = ",", u = t.editorParams.emptyClearItems, m = j({
      get() {
        var p;
        return ((p = s.value) == null ? void 0 : p.split(",")) || [];
      },
      set(p) {
        let y = null;
        const F = [];
        if (i.value.length > 0 && (i.value.forEach((I) => {
          p.findIndex((E) => Object.is(I.value, E)) !== -1 && F.push(I.value);
        }), y = F.join(g)), a("change", y), !y && u) {
          const I = JSON.parse(u);
          for (let D = 0; D < I.length; D++)
            a("change", I[D].value, I[D].key);
        }
      }
    }), w = async (p) => {
      const {
        context: y,
        params: F
      } = t.handlePublicParams(p, t.context, t.params);
      if (t.editorParams.codeTag) {
        let I = [];
        const D = t.editorParams.codeTag;
        return I = await ibiz.codeListService.get(D, y, F), I;
      }
      throw new he(t.model.source, "请配置代码表");
    }, l = (p) => {
      m.value = p;
    }, v = j(() => {
      const p = Array.isArray(m.value) ? m.value : [m.value];
      return i.value.filter((y) => p.includes(y.srfkey)).map((y) => y.srfmajortext).join("、");
    }), f = async (p) => {
      if (t.model.appDataEntity)
        try {
          const y = await t.getServiceData(p, s.data);
          n.value = [], y.data.length > 0 && (n.value = y.data.map((F) => ({
            srfkey: F[t.keyName],
            srfmajortext: F[t.textName]
          })));
        } catch (y) {
          console.error(y);
        }
    }, C = j(() => {
      const p = t.editorParams.followitem;
      return p ? s.data[p] : "";
    }), h = () => {
      const p = [];
      i.value.forEach((y) => {
        n.value.findIndex((I) => I.srfkey === y.value) > -1 && p.push(y.value);
      }), l(p);
    };
    return V(() => C, async (p) => {
      await w(p).then((y) => {
        i.value = y;
      }), await f(""), !(c.value && (c.value = !1, s.value)) && h();
    }, {
      immediate: !0,
      deep: !0
    }), {
      ns: e,
      c: t,
      valueText: v,
      selectArray: m,
      items: i,
      onSearch: f,
      onSelectArrayChange: l
    };
  },
  render(s) {
    return s("div", {
      class: [this.ns.b(), this.disabled ? this.ns.m("disabled") : "", this.readonly ? this.ns.m("readonly") : ""]
    }, [this.readonly && this.valueText, !this.readonly && s("ICheckboxGroup", {
      props: {
        ...this.c.customProps,
        value: this.selectArray
      },
      on: {
        "on-change": this.onSelectArrayChange
      }
    }, [this.items.map((a, e) => s("i-checkbox", {
      key: e,
      attrs: {
        label: a.value,
        disabled: this.disabled
      }
    }, [s("span", {
      class: this.ns.e("text")
    }, [a.text])]))])]);
  }
});
class Be extends Ae {
  /**
   * 设置嵌入视图的神经元
   *
   * @author lxm
   * @date 2022-09-15 10:09:22
   * @param {ViewNeuron} neuron
   */
  setViewNeuron(a) {
    this.neuron = a, this.neuron.evt.on("refreshed", (e) => {
      if (ibiz.log.debug("接收到关系界面的刷新变更事件", e), this.model.formItemUpdate) {
        const { methodName: t, itemNames: i, model: n } = this.model.formItemUpdate;
        this.form.updateFormItem(
          t,
          i,
          n
        );
      }
    }), this.neuron.evt.on("mounted", () => {
      this.neuron.call.refresh();
    }), this.neuron.evt.on("viewDataChange", async (e) => {
      if (!["LOAD", "LOADDRAFT"].includes(e.type) && (ibiz.log.debug("接收到关系界面的数据变更事件", e.data), this.model.formItemUpdate)) {
        const { methodName: t, itemNames: i, model: n } = this.model.formItemUpdate;
        try {
          this.processState.formItemUpdate = !0, await this.form.updateFormItem(
            t,
            i,
            n
          );
        } finally {
          this.processState.formItemUpdate = !1;
        }
      }
    }), this.neuron.evt.on("destroyed", () => {
      Object.keys(this.processState).forEach((e) => {
        this.processState[e] = !1;
      });
    }), this.neuron.evt.on("viewSaveStart", () => {
      this.processState.viewSave = !0;
    }), this.neuron.evt.on("viewSaveEnd", () => {
      this.processState.viewSave = !1;
    });
  }
}
class _e extends Fe {
  constructor() {
    super(...arguments);
    /**
     * 自定义行为
     *
     * @type {string}
     * @memberof WfEditViewController
     */
    P(this, "userAction");
  }
  async onInit() {
    await super.onInit(), this.getUserAction();
  }
  /**
   * 工作流启动
   *
   * @author lxm
   * @date 2022-09-29 20:09:27
   * @returns {*}  {Promise<void>}
   */
  async wfStart() {
    var m;
    await this.save(), await this.execUserAction();
    const e = await this.entityService.wf.getWFVersion();
    if (e.data.length === 0)
      throw new xe("当前工作流版本不存在");
    const t = e.data[0], i = `WFSTART@${t.wfversion}`, n = Object.assign(this.context.clone(), {
      activeForm: t["process-form"]
    }), c = {
      processDefinitionKey: t.definitionkey
    }, g = (m = this.model.source.findPSAppViewRef(i)) == null ? void 0 : m.getRefPSAppView();
    if (!g) {
      await this.nerve.form.call.wfStart(c), await this.closeView();
      return;
    }
    (await ibiz.commands.execute(
      q.TAG,
      g,
      n,
      c
    )).ok && await this.closeView();
  }
  /**
   * 获取自定义行为
   *
   * @memberof EditViewController
   */
  getUserAction() {
    const { form: e } = this.model, t = e.source.getPSControlHandler();
    if (t) {
      const i = t.findPSControlHandlerAction("user");
      i && i.getPSAppDEMethod() && (this.userAction = i.getPSAppDEMethod().codeName);
    }
  }
  /**
   * 执行自定义行为
   *
   * @memberof EditViewController
   */
  async execUserAction() {
    if (this.userAction) {
      const e = this.getData();
      await this.entityService.exec(this.userAction, this.context, e[0]);
    }
  }
}
function je(s, a) {
  return we(
    s,
    (e, t) => new _e(a, e, t)
  );
}
const ze = M({
  props: {
    context: Object,
    params: {
      type: Object
    },
    modelPath: {
      type: String,
      required: !0
    },
    modal: {
      type: Object
    },
    noLoadDefault: {
      type: Boolean,
      required: !1
    }
  },
  setup(s) {
    const {
      proxy: a
    } = W();
    return {
      c: je(a, s.modelPath)
    };
  },
  render(s) {
    let a = null;
    if (this.c.complete) {
      const {
        form: e
      } = this.c.model;
      this.c.providers[e.name] && (a = s(this.c.providers[e.name].component, {
        props: {
          modelData: e,
          context: this.c.context,
          params: this.c.params
        },
        on: {
          neuronInit: this.c.nerve.onNeuronInit(e.name)
        }
      }));
    }
    return s("view-base", {
      attrs: {
        controller: this.c
      }
    }, [a]);
  }
});
class Ye {
  constructor() {
    P(this, "component", "IBizFormDataComparison");
  }
}
class $e extends Ee {
  async execAction(a, e, t, i) {
    const n = {}, c = a.getPSAppDataEntity();
    if (c) {
      c.isFill === !1 && await c.fill(!0);
      const g = new H(c);
      await g.init();
      const { resultContext: u } = await this.handleParams(
        a,
        e,
        t,
        i
      ), m = ibiz.resourcePathUtil.calcPaths(
        u,
        g.codeName
      ), w = K(u, m);
      let l = `${w}/${g.deNamePlural}/importtemplate`, v = `${w}/${g.deNamePlural}/importdata2`;
      const f = a.getPSAppDEDataImport();
      f && (l += `?srfimporttag=${f.codeName}`, v += `?srfimporttag=${f.codeName}`);
      const C = ibiz.overlay.createModal(
        "CustomDataImport",
        {
          templateUrl: l,
          importUrl: v,
          dismiss: (h) => {
            C.dismiss(h);
          }
        },
        {
          width: "auto",
          placement: "center"
        }
      );
      return C.present(), await C.onWillDismiss(), {
        refresh: !0
      };
    }
    return n;
  }
}
class He {
  constructor() {
    P(this, "handler");
  }
  async getHandler() {
    return this.handler || (this.handler = new $e()), this.handler;
  }
}
class Ge {
  constructor() {
    P(this, "gridEditor", "YearMonthPicker");
    P(this, "formEditor", "YearMonthPicker");
  }
  async createController(a, e) {
    const t = new Ie(a, e);
    return await t.init(), t;
  }
}
class We {
  constructor() {
    P(this, "formEditor", "DownLoadSafeFile");
    P(this, "gridEditor", "DownLoadSafeFile");
  }
  async createController(a, e) {
    const t = new Se(a, e);
    return await t.init(), t;
  }
}
class qe extends re {
  async execAction(a, e, t, i, n) {
    const c = {}, { frontProcessType: g } = a;
    if (g === "OPENHTMLPAGE") {
      const u = ne.fill(a.htmlPageUrl, e, t == null ? void 0 : t[0]);
      window.open(u, "_blank");
    }
    if (g === "DATAIMP") {
      const u = a.getPSAppDataEntity();
      if (u) {
        u.isFill === !1 && await u.fill(!0);
        const m = new H(u);
        await m.init();
        const { resultContext: w } = await this.handleParams(
          a,
          e,
          t,
          i
        ), l = ibiz.resourcePathUtil.calcPaths(
          w,
          m.codeName
        ), v = K(w, l);
        let f = `${v}/${m.deNamePlural}/importtemplate`, C = `${v}/${m.deNamePlural}/importdata2`;
        const h = a.getPSAppDEDataImport();
        h && (f += `?srfimporttag=${h.codeName}`, C += `?srfimporttag=${h.codeName}`);
        const p = ibiz.overlay.createModal(
          "DataImport",
          {
            templateUrl: f,
            importUrl: C,
            dismiss: (y) => {
              p.dismiss(y);
            }
          },
          {
            width: "auto",
            placement: "center"
          }
        );
        return p.present(), await p.onWillDismiss(), {
          refresh: !0
        };
      }
    }
    if (["TOP", "WIZARD"].includes(g)) {
      const u = a.getFrontPSAppView();
      if (!u)
        throw new Error("未配置打开视图");
      await u.fill(!0);
      const { resultContext: m, resultParams: w } = await this.handleParams(
        a,
        e,
        t,
        i
      ), l = await ibiz.commands.execute(
        q.TAG,
        u,
        m,
        w,
        n
      );
      (l == null ? void 0 : l.ok) === !1 && (c.closeView = !1, c.refresh = !1, c.cancel = !0), l != null && l.ok && l.data && (c.data = l.data);
    } else if (n) {
      const { neuron: u } = n, w = u.call.getFormController().call.getFormController(), { druipart1: l, druipart2: v, druipart3: f } = w.details;
      [
        {
          message: "服务履历为空",
          neuron: l
        },
        {
          message: "教育经验为空",
          neuron: v
        },
        {
          message: "项目经验为空",
          neuron: f
        }
      ].some((p) => {
        const y = p.neuron.neuron.call.getGridController();
        if (y) {
          const F = y.call.getGridController();
          if (F && F.items && F.items.length > 0)
            return !1;
        }
        return ibiz.message.error(`${p.message}`, 1.5, !0), !0;
      }) || await u.call.wfStart();
    }
    return c;
  }
}
class Ke {
  constructor() {
    P(this, "handler");
  }
  async getHandler() {
    return this.handler || (this.handler = new qe()), this.handler;
  }
}
class Je {
  constructor() {
    P(this, "component", "FormMDCtrlFormStyle2");
  }
  async createController(a, e, t) {
    const i = new le(a, e, t);
    return await i.init(), i;
  }
}
class Xe {
  constructor() {
    P(this, "formEditor", "AutoSelectAll");
    P(this, "gridEditor", "AutoSelectAll");
  }
  async createController(a, e) {
    const t = new oe(a, e);
    return await t.init(), t;
  }
}
class Ze {
  constructor() {
    P(this, "formEditor", "MPickerCheckbox");
    P(this, "gridEditor", "IBizGridPicker");
  }
  async createController(a, e) {
    const t = new oe(a, e);
    return await t.init(), t;
  }
}
class Qe extends re {
  async execAction(a, e, t, i, n) {
    const c = {}, { frontProcessType: g } = a;
    if (g === "OPENHTMLPAGE") {
      const u = ne.fill(a.htmlPageUrl, e, t == null ? void 0 : t[0]);
      window.open(u, "_blank");
    }
    if (g === "DATAIMP") {
      const u = a.getPSAppDataEntity();
      if (u) {
        u.isFill === !1 && await u.fill(!0);
        const m = new H(u);
        await m.init();
        const { resultContext: w } = await this.handleParams(
          a,
          e,
          t,
          i
        ), l = ibiz.resourcePathUtil.calcPaths(
          w,
          m.codeName
        ), v = K(w, l);
        let f = `${v}/${m.deNamePlural}/importtemplate`, C = `${v}/${m.deNamePlural}/importdata2`;
        const h = a.getPSAppDEDataImport();
        h && (f += `?srfimporttag=${h.codeName}`, C += `?srfimporttag=${h.codeName}`);
        const p = ibiz.overlay.createModal(
          "DataImport",
          {
            templateUrl: f,
            importUrl: C,
            dismiss: (y) => {
              p.dismiss(y);
            }
          },
          {
            width: "auto",
            placement: "center"
          }
        );
        return p.present(), await p.onWillDismiss(), {
          refresh: !0
        };
      }
    }
    if (["TOP", "WIZARD"].includes(g)) {
      const u = a.getFrontPSAppView();
      if (!u)
        throw new Error("未配置打开视图");
      await u.fill(!0);
      const { resultContext: m, resultParams: w } = await this.handleParams(
        a,
        e,
        t,
        i
      ), l = await ibiz.commands.execute(
        q.TAG,
        u,
        m,
        w,
        n
      );
      (l == null ? void 0 : l.ok) === !1 && (c.closeView = !1, c.refresh = !1, c.cancel = !0), l != null && l.ok && l.data && (c.data = l.data);
    } else if (t && t.length > 0 && n) {
      const { neuron: u } = n, l = await u.call.getFormController().call.getFormController().autoSave();
      l && l.rcryqd && Array.isArray(l.rcryqd) && l.rcryqd.length > 0 ? await u.call.wfStart() : ibiz.message.error("入场信息为空");
    }
    return c;
  }
}
class et {
  constructor() {
    P(this, "handler");
  }
  async getHandler() {
    return this.handler || (this.handler = new Qe()), this.handler;
  }
}
class tt {
  constructor() {
    P(this, "component", "FormDruipart");
  }
  async createController(a, e, t) {
    const i = new Be(a, e, t);
    return await i.init(), i;
  }
}
class at {
  constructor() {
    P(this, "component", "WfEditView");
  }
}
const pt = {
  mateUrl: import.meta.url,
  install(s) {
    ie.loadStyle(["/style.css"]), s.component("IBizFormDataComparison", Oe), s.component("CustomDataImport", Te), s.component("YearMonthPicker", Me), s.component("DownLoadSafeFile", Re), s.component("FormMDCtrlFormStyle2", Ue), s.component("AutoSelectAll", Le), s.component("MPickerCheckbox", Ve), s.component("WfEditView", ze), ibiz.register.control.register(
      "EDITFORM_RENDER_FORM_DATA_COMPARISON",
      new Ye()
    ), ibiz.register.uiAction.register(
      "DEUIACTION_CUSTOM_IMPORT",
      new He()
    ), ibiz.register.editor.register(
      "DATEPICKEREX_NOTIME_YEAR_MONTH_PICKER",
      new Ge()
    ), ibiz.register.editor.register(
      "FILEUPLOADER_ONE_DOWNLOAD_FILE",
      new We()
    ), ibiz.register.uiAction.register(
      "DEUIACTION_JUDEG_ENABLE_UPDATE",
      new Ke()
    ), ibiz.register.formDetail.register(
      "FORM_USERCONTROL_MUL_FORM_CARD",
      new Je()
    ), ibiz.register.editor.register(
      "EDITOR_CUSTOMSTYLE_AUTO_SELECT_ALL",
      new Xe()
    ), ibiz.register.editor.register(
      "EDITOR_CUSTOMSTYLE_MULTIPLE_CHECKBOX",
      new Ze()
    ), ibiz.register.uiAction.register(
      "DEUIACTION_check_rcxx",
      new et()
    ), ibiz.register.formDetail.register(
      "FORM_USERCONTROL_DRUIPART_ENABLEINITLOAD",
      new tt()
    ), ibiz.register.view.register(
      "VIEW_CUSTOM_CUSTOM_WF",
      new at()
    );
  }
};
export {
  pt as default
};
