@web-utils/component 3.5.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,210 @@
1
+ var b = Object.defineProperty, h = Object.defineProperties;
2
+ var v = Object.getOwnPropertyDescriptors;
3
+ var c = Object.getOwnPropertySymbols;
4
+ var y = Object.prototype.hasOwnProperty, E = Object.prototype.propertyIsEnumerable;
5
+ var u = (r, e, t) => e in r ? b(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t, d = (r, e) => {
6
+ for (var t in e || (e = {}))
7
+ y.call(e, t) && u(r, t, e[t]);
8
+ if (c)
9
+ for (var t of c(e))
10
+ E.call(e, t) && u(r, t, e[t]);
11
+ return r;
12
+ }, F = (r, e) => h(r, v(e));
13
+ var n = (r, e, t) => new Promise((i, s) => {
14
+ var l = (o) => {
15
+ try {
16
+ m(t.next(o));
17
+ } catch (p) {
18
+ s(p);
19
+ }
20
+ }, a = (o) => {
21
+ try {
22
+ m(t.throw(o));
23
+ } catch (p) {
24
+ s(p);
25
+ }
26
+ }, m = (o) => o.done ? i(o.value) : Promise.resolve(o.value).then(l, a);
27
+ m((t = t.apply(r, e)).next());
28
+ });
29
+ import { c as x, u as f } from "./utils.DRcxC1Fb.mjs";
30
+ import { i as g, a as L, f as T, l as k, e as _ } from "./utilSelf.CRqpl0Cz.mjs";
31
+ import { fastClone as I } from "@web-utils/core";
32
+ import { n as w } from "./_plugin-vue2_normalizer.CeySl7Fu.mjs";
33
+ const O = {
34
+ name: "UserTaskListeners",
35
+ inject: {
36
+ prefix: "prefix",
37
+ width: "width"
38
+ },
39
+ props: {
40
+ id: String,
41
+ element: Object,
42
+ bpmnInstances: Object
43
+ },
44
+ data() {
45
+ return {
46
+ elementListenersList: [],
47
+ listenerEventTypeObject: _,
48
+ listenerTypeObject: k,
49
+ listenerFormModelVisible: !1,
50
+ listenerForm: {},
51
+ fieldTypeObject: T,
52
+ fieldsListOfListener: [],
53
+ listenerFieldFormModelVisible: !1,
54
+ // 监听器 注入字段表单弹窗 显示状态
55
+ editingListenerIndex: -1,
56
+ // 监听器所在下标,-1 为新增
57
+ editingListenerFieldIndex: -1,
58
+ // 字段所在下标,-1 为新增
59
+ listenerFieldForm: {}
60
+ // 监听器 注入字段 详情表单
61
+ };
62
+ },
63
+ watch: {
64
+ id: {
65
+ immediate: !0,
66
+ handler(r) {
67
+ return n(this, null, function* () {
68
+ r && (yield this.$nextTick(), this.resetListenersList());
69
+ });
70
+ }
71
+ }
72
+ },
73
+ methods: {
74
+ resetListenersList() {
75
+ var r, e, t, i;
76
+ this.otherExtensionList = [], this.bpmnElementListeners = (i = (t = (e = (r = this.element.businessObject) == null ? void 0 : r.extensionElements) == null ? void 0 : e.values) == null ? void 0 : t.filter((s) => s.$type === `${this.prefix}:TaskListener`)) != null ? i : [], this.elementListenersList = this.bpmnElementListeners.map((s) => L(s));
77
+ },
78
+ openListenerForm(r, e) {
79
+ return n(this, null, function* () {
80
+ var t;
81
+ r ? (this.listenerForm = g(r), this.editingListenerIndex = e) : (this.listenerForm = {}, this.editingListenerIndex = -1), r && r.fields ? this.fieldsListOfListener = r.fields.map((i) => F(d({}, i), {
82
+ fieldType: i.string ? "string" : "expression"
83
+ })) : (this.fieldsListOfListener = [], this.$set(this.listenerForm, "fields", [])), this.listenerFormModelVisible = !0, yield this.$nextTick(), (t = this.$refs.listenerFormRef) == null || t.clearValidate();
84
+ });
85
+ },
86
+ // 移除监听器
87
+ removeListener(r, e) {
88
+ return n(this, null, function* () {
89
+ try {
90
+ yield this.$confirm("确认移除该监听器吗?", "提示"), this.bpmnElementListeners.splice(e, 1), this.elementListenersList.splice(e, 1), f(this.bpmnInstances, this.element, this.otherExtensionList.concat(this.bpmnElementListeners));
91
+ } catch (t) {
92
+ }
93
+ });
94
+ },
95
+ // 保存监听器
96
+ saveListenerConfig() {
97
+ return n(this, null, function* () {
98
+ var t, i, s, l;
99
+ if (!(yield this.$refs.listenerFormRef.validate())) return;
100
+ const e = x(this.bpmnInstances, this.listenerForm, !0, this.prefix);
101
+ this.editingListenerIndex === -1 ? (this.bpmnElementListeners.push(e), this.elementListenersList.push(this.listenerForm)) : (this.bpmnElementListeners.splice(this.editingListenerIndex, 1, e), this.elementListenersList.splice(this.editingListenerIndex, 1, this.listenerForm)), this.otherExtensionList = (l = (s = (i = (t = this.element.businessObject) == null ? void 0 : t.extensionElements) == null ? void 0 : i.values) == null ? void 0 : s.filter((a) => a.$type !== `${this.prefix}:TaskListener`)) != null ? l : [], f(this.bpmnInstances, this.element, this.otherExtensionList.concat(this.bpmnElementListeners)), this.listenerFormModelVisible = !1, this.listenerForm = {};
102
+ });
103
+ },
104
+ // 打开监听器字段编辑弹窗
105
+ openListenerFieldForm(r, e) {
106
+ return n(this, null, function* () {
107
+ var t;
108
+ this.listenerFieldForm = r ? I(r) : {}, this.editingListenerFieldIndex = r ? e : -1, this.listenerFieldFormModelVisible = !0, yield this.$nextTick(), (t = this.$refs.listenerFieldFormRef) == null || t.clearValidate();
109
+ });
110
+ },
111
+ // 保存监听器注入字段
112
+ saveListenerFiled() {
113
+ return n(this, null, function* () {
114
+ (yield this.$refs.listenerFieldFormRef.validate()) && (this.editingListenerFieldIndex === -1 ? (this.fieldsListOfListener.push(this.listenerFieldForm), this.listenerForm.fields.push(this.listenerFieldForm)) : (this.fieldsListOfListener.splice(this.editingListenerFieldIndex, 1, this.listenerFieldForm), this.listenerForm.fields.splice(this.editingListenerFieldIndex, 1, this.listenerFieldForm)), this.listenerFieldFormModelVisible = !1, yield this.$nextTick(), this.listenerFieldForm = {});
115
+ });
116
+ },
117
+ // 移除监听器字段
118
+ removeListenerField(r, e) {
119
+ return n(this, null, function* () {
120
+ try {
121
+ yield this.$confirm("确认移除该字段吗?", "提示"), this.fieldsListOfListener.splice(e, 1), this.listenerForm.fields.splice(e, 1);
122
+ } catch (t) {
123
+ }
124
+ });
125
+ }
126
+ }
127
+ };
128
+ var $ = function() {
129
+ var e = this, t = e._self._c;
130
+ return t("div", { staticClass: "panel-tab__content" }, [t("ElTable", { attrs: { data: e.elementListenersList, size: "mini", border: "" } }, [t("ElTableColumn", { attrs: { label: "序号", width: "50px", type: "index" } }), t("ElTableColumn", { attrs: { label: "事件类型", "min-width": "80px", "show-overflow-tooltip": "", formatter: (i) => e.listenerEventTypeObject[i.event] } }), t("ElTableColumn", { attrs: { label: "事件id", "min-width": "80px", prop: "id", "show-overflow-tooltip": "" } }), t("ElTableColumn", { attrs: { label: "监听器类型", "min-width": "80px", "show-overflow-tooltip": "", formatter: (i) => e.listenerTypeObject[i.listenerType] } }), t("ElTableColumn", { attrs: { label: "操作", width: "90px" }, scopedSlots: e._u([{ key: "default", fn: function({ row: i, $index: s }) {
131
+ return [t("ElButton", { attrs: { size: "mini", type: "text" }, on: { click: function(l) {
132
+ return e.openListenerForm(i, s);
133
+ } } }, [e._v("编辑")]), t("ElDivider", { attrs: { direction: "vertical" } }), t("ElButton", { staticStyle: { color: "#ff4d4f" }, attrs: { size: "mini", type: "text" }, on: { click: function(l) {
134
+ return e.removeListener(i, s);
135
+ } } }, [e._v("移除")])];
136
+ } }]) })], 1), t("div", { staticClass: "element-drawer__button" }, [t("ElButton", { attrs: { size: "mini", type: "primary", icon: "el-icon-plus" }, on: { click: function(i) {
137
+ return e.openListenerForm(null);
138
+ } } }, [e._v("添加监听器")])], 1), t("ElDrawer", { staticClass: "flow-drawer", attrs: { visible: e.listenerFormModelVisible, title: "任务监听器", size: `${e.width}px`, "wrapper-closable": !1, "append-to-body": "", "destroy-on-close": "" }, on: { "update:visible": function(i) {
139
+ e.listenerFormModelVisible = i;
140
+ } } }, [t("ElForm", { ref: "listenerFormRef", attrs: { size: "mini", model: e.listenerForm, "label-width": "96px" }, nativeOn: { submit: function(i) {
141
+ i.preventDefault();
142
+ } } }, [t("ElFormItem", { attrs: { label: "事件类型", prop: "event", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElSelect", { model: { value: e.listenerForm.event, callback: function(i) {
143
+ e.$set(e.listenerForm, "event", i);
144
+ }, expression: "listenerForm.event" } }, e._l(Object.keys(e.listenerEventTypeObject), function(i) {
145
+ return t("ElOption", { key: i, attrs: { label: e.listenerEventTypeObject[i], value: i } });
146
+ }), 1)], 1), t("ElFormItem", { attrs: { label: "监听器ID", prop: "id", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.id, callback: function(i) {
147
+ e.$set(e.listenerForm, "id", i);
148
+ }, expression: "listenerForm.id" } })], 1), t("ElFormItem", { attrs: { label: "监听器类型", prop: "listenerType", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElSelect", { model: { value: e.listenerForm.listenerType, callback: function(i) {
149
+ e.$set(e.listenerForm, "listenerType", i);
150
+ }, expression: "listenerForm.listenerType" } }, e._l(Object.keys(e.listenerTypeObject), function(i) {
151
+ return t("ElOption", { key: i, attrs: { label: e.listenerTypeObject[i], value: i } });
152
+ }), 1)], 1), e.listenerForm.listenerType === "classListener" ? t("ElFormItem", { key: "listener-class", attrs: { label: "Java类", prop: "class", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.class, callback: function(i) {
153
+ e.$set(e.listenerForm, "class", i);
154
+ }, expression: "listenerForm.class" } })], 1) : e._e(), e.listenerForm.listenerType === "expressionListener" ? t("ElFormItem", { key: "listener-expression", attrs: { label: "表达式", prop: "expression", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.expression, callback: function(i) {
155
+ e.$set(e.listenerForm, "expression", i);
156
+ }, expression: "listenerForm.expression" } })], 1) : e._e(), e.listenerForm.listenerType === "delegateExpressionListener" ? t("ElFormItem", { key: "listener-delegate", attrs: { label: "代理表达式", prop: "delegateExpression", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.delegateExpression, callback: function(i) {
157
+ e.$set(e.listenerForm, "delegateExpression", i);
158
+ }, expression: "listenerForm.delegateExpression" } })], 1) : e._e(), e.listenerForm.listenerType === "scriptListener" ? [t("ElFormItem", { key: "listener-script-format", attrs: { label: "脚本格式", prop: "scriptFormat", rules: { required: !0, trigger: ["blur", "change"], message: "请填写脚本格式" } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.scriptFormat, callback: function(i) {
159
+ e.$set(e.listenerForm, "scriptFormat", i);
160
+ }, expression: "listenerForm.scriptFormat" } })], 1), t("ElFormItem", { key: "listener-script-type", attrs: { label: "脚本类型", prop: "scriptType", rules: { required: !0, trigger: ["blur", "change"], message: "请选择脚本类型" } } }, [t("ElSelect", { model: { value: e.listenerForm.scriptType, callback: function(i) {
161
+ e.$set(e.listenerForm, "scriptType", i);
162
+ }, expression: "listenerForm.scriptType" } }, [t("ElOption", { attrs: { label: "内联脚本", value: "inlineScript" } }), t("ElOption", { attrs: { label: "外部脚本", value: "externalScript" } })], 1)], 1), e.listenerForm.scriptType === "inlineScript" ? t("ElFormItem", { key: "listener-script", attrs: { label: "脚本内容", prop: "value", rules: { required: !0, trigger: ["blur", "change"], message: "请填写脚本内容" } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.value, callback: function(i) {
163
+ e.$set(e.listenerForm, "value", i);
164
+ }, expression: "listenerForm.value" } })], 1) : e._e(), e.listenerForm.scriptType === "externalScript" ? t("ElFormItem", { key: "listener-resource", attrs: { label: "资源地址", prop: "resource", rules: { required: !0, trigger: ["blur", "change"], message: "请填写资源地址" } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.resource, callback: function(i) {
165
+ e.$set(e.listenerForm, "resource", i);
166
+ }, expression: "listenerForm.resource" } })], 1) : e._e()] : e._e(), e.listenerForm.event === "timeout" ? [t("ElFormItem", { key: "eventDefinitionType", attrs: { label: "定时器类型", prop: "eventDefinitionType" } }, [t("ElSelect", { model: { value: e.listenerForm.eventDefinitionType, callback: function(i) {
167
+ e.$set(e.listenerForm, "eventDefinitionType", i);
168
+ }, expression: "listenerForm.eventDefinitionType" } }, [t("ElOption", { attrs: { label: "日期", value: "date" } }), t("ElOption", { attrs: { label: "持续时长", value: "duration" } }), t("ElOption", { attrs: { label: "循环", value: "cycle" } }), t("ElOption", { attrs: { label: "无", value: "null" } })], 1)], 1), e.listenerForm.eventDefinitionType && e.listenerForm.eventDefinitionType !== "null" ? t("ElFormItem", { key: "eventTimeDefinitions", attrs: { label: "定时器", prop: "eventTimeDefinitions", rules: { required: !0, trigger: ["blur", "change"], message: "请填写定时器配置" } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerForm.eventTimeDefinitions, callback: function(i) {
169
+ e.$set(e.listenerForm, "eventTimeDefinitions", i);
170
+ }, expression: "listenerForm.eventTimeDefinitions" } })], 1) : e._e()] : e._e()], 2), t("ElDivider"), t("p", { staticClass: "listener-filed__title", staticStyle: { "padding-bottom": "6px" } }, [t("span", [t("i", { staticClass: "el-icon-menu" }), e._v("注入字段:")]), t("ElButton", { staticStyle: { "margin-left": "auto" }, attrs: { size: "mini", type: "primary" }, on: { click: function(i) {
171
+ return e.openListenerFieldForm(null);
172
+ } } }, [e._v("添加字段")])], 1), t("ElTable", { staticStyle: { flex: "none" }, attrs: { data: e.fieldsListOfListener, size: "mini", "max-height": "240", border: "", fit: "" } }, [t("ElTableColumn", { attrs: { label: "序号", width: "50px", type: "index" } }), t("ElTableColumn", { attrs: { label: "字段名称", "min-width": "100px", prop: "name" } }), t("ElTableColumn", { attrs: { label: "字段类型", "min-width": "80px", "show-overflow-tooltip": "", formatter: (i) => e.fieldTypeObject[i.fieldType] } }), t("ElTableColumn", { attrs: { label: "字段值/表达式", "min-width": "100px", "show-overflow-tooltip": "", formatter: (i) => i.string || i.expression } }), t("ElTableColumn", { attrs: { label: "操作", width: "100px" }, scopedSlots: e._u([{ key: "default", fn: function({ row: i, $index: s }) {
173
+ return [t("ElButton", { attrs: { size: "mini", type: "text" }, on: { click: function(l) {
174
+ return e.openListenerFieldForm(i, s);
175
+ } } }, [e._v("编辑")]), t("ElDivider", { attrs: { direction: "vertical" } }), t("ElButton", { staticStyle: { color: "#ff4d4f" }, attrs: { size: "mini", type: "text" }, on: { click: function(l) {
176
+ return e.removeListenerField(i, s);
177
+ } } }, [e._v(" 移除 ")])];
178
+ } }]) })], 1), t("div", { staticClass: "element-drawer__button" }, [t("ElButton", { attrs: { size: "mini" }, on: { click: function(i) {
179
+ e.listenerFormModelVisible = !1;
180
+ } } }, [e._v("取 消")]), t("ElButton", { attrs: { size: "mini", type: "primary" }, on: { click: e.saveListenerConfig } }, [e._v("保 存")])], 1)], 1), t("ElementDialog", { staticClass: "flow-dialog", attrs: { title: "字段配置", visible: e.listenerFieldFormModelVisible, width: "600px", "append-to-body": "", "destroy-on-close": "" }, on: { "update:visible": function(i) {
181
+ e.listenerFieldFormModelVisible = i;
182
+ } }, scopedSlots: e._u([{ key: "footer", fn: function() {
183
+ return [t("ElButton", { attrs: { size: "mini" }, on: { click: function(i) {
184
+ e.listenerFieldFormModelVisible = !1;
185
+ } } }, [e._v("取 消")]), t("ElButton", { attrs: { size: "mini", type: "primary" }, on: { click: e.saveListenerFiled } }, [e._v("确 定")])];
186
+ }, proxy: !0 }]) }, [t("ElForm", { ref: "listenerFieldFormRef", staticStyle: { height: "136px" }, attrs: { model: e.listenerFieldForm, size: "mini", "label-width": "96px" }, nativeOn: { submit: function(i) {
187
+ i.preventDefault();
188
+ } } }, [t("ElFormItem", { attrs: { label: "字段名称:", prop: "name", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerFieldForm.name, callback: function(i) {
189
+ e.$set(e.listenerFieldForm, "name", i);
190
+ }, expression: "listenerFieldForm.name" } })], 1), t("ElFormItem", { attrs: { label: "字段类型:", prop: "fieldType", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElSelect", { model: { value: e.listenerFieldForm.fieldType, callback: function(i) {
191
+ e.$set(e.listenerFieldForm, "fieldType", i);
192
+ }, expression: "listenerFieldForm.fieldType" } }, e._l(Object.keys(e.fieldTypeObject), function(i) {
193
+ return t("ElOption", { key: i, attrs: { label: e.fieldTypeObject[i], value: i } });
194
+ }), 1)], 1), e.listenerFieldForm.fieldType === "string" ? t("ElFormItem", { key: "field-string", attrs: { label: "字段值:", prop: "string", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerFieldForm.string, callback: function(i) {
195
+ e.$set(e.listenerFieldForm, "string", i);
196
+ }, expression: "listenerFieldForm.string" } })], 1) : e._e(), e.listenerFieldForm.fieldType === "expression" ? t("ElFormItem", { key: "field-expression", attrs: { label: "表达式:", prop: "expression", rules: { required: !0, trigger: ["blur", "change"] } } }, [t("ElInput", { attrs: { clearable: "" }, model: { value: e.listenerFieldForm.expression, callback: function(i) {
197
+ e.$set(e.listenerFieldForm, "expression", i);
198
+ }, expression: "listenerFieldForm.expression" } })], 1) : e._e()], 1)], 1)], 1);
199
+ }, S = [], j = /* @__PURE__ */ w(
200
+ O,
201
+ $,
202
+ S,
203
+ !1,
204
+ null,
205
+ null
206
+ );
207
+ const M = j.exports;
208
+ export {
209
+ M as default
210
+ };
@@ -82,6 +82,8 @@ function b(r, i, n, t) {
82
82
  case "boolean":
83
83
  case "null":
84
84
  return String(f);
85
+ // If the type is 'object', we might be dealing with an object or an array or
86
+ // null.
85
87
  case "object":
86
88
  if (!f)
87
89
  return "null";
@@ -0,0 +1,56 @@
1
+ var c = Object.defineProperty, a = Object.defineProperties;
2
+ var x = Object.getOwnPropertyDescriptors;
3
+ var r = Object.getOwnPropertySymbols;
4
+ var d = Object.prototype.hasOwnProperty, m = Object.prototype.propertyIsEnumerable;
5
+ var f = (e, i, t) => i in e ? c(e, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[i] = t, s = (e, i) => {
6
+ for (var t in i || (i = {}))
7
+ d.call(i, t) && f(e, t, i[t]);
8
+ if (r)
9
+ for (var t of r(i))
10
+ m.call(i, t) && f(e, t, i[t]);
11
+ return e;
12
+ }, o = (e, i) => a(e, x(i));
13
+ import { fastClone as L } from "@web-utils/core";
14
+ function l(e) {
15
+ let i = s({}, e);
16
+ if (e.script && (i = o(s(s({}, e), e.script), {
17
+ scriptType: e.script.resource ? "externalScript" : "inlineScript"
18
+ })), e.event === "timeout" && e.eventDefinitions && e.eventDefinitions.length) {
19
+ let t = "";
20
+ for (const n in e.eventDefinitions[0])
21
+ n.indexOf("time") !== -1 && (t = n, i.eventDefinitionType = n.replace("time", "").toLowerCase());
22
+ i.eventTimeDefinitions = e.eventDefinitions[0][t].body;
23
+ }
24
+ return i;
25
+ }
26
+ function v(e) {
27
+ var t, n;
28
+ let i;
29
+ return e.class && (i = "classListener"), e.expression && (i = "expressionListener"), e.delegateExpression && (i = "delegateExpressionListener"), e.script && (i = "scriptListener"), o(s(s({}, L(e)), (t = e.script) != null ? t : {}), {
30
+ fields: (n = e.fields) == null ? void 0 : n.map((p) => o(s({}, p), { fieldType: p.expression ? "expression" : "string" })),
31
+ listenerType: i
32
+ });
33
+ }
34
+ const g = {
35
+ classListener: "Java 类",
36
+ expressionListener: "表达式",
37
+ delegateExpressionListener: "代理表达式",
38
+ scriptListener: "脚本"
39
+ }, u = {
40
+ create: "创建",
41
+ assignment: "指派",
42
+ complete: "完成",
43
+ delete: "删除",
44
+ update: "更新",
45
+ timeout: "超时"
46
+ }, D = {
47
+ string: "字符串",
48
+ expression: "表达式"
49
+ };
50
+ export {
51
+ v as a,
52
+ u as e,
53
+ D as f,
54
+ l as i,
55
+ g as l
56
+ };
@@ -0,0 +1,60 @@
1
+ function f(t, e, r, n) {
2
+ const i = /* @__PURE__ */ Object.create(null);
3
+ switch (i.event = e.event, r && (i.id = e.id), e.listenerType) {
4
+ case "scriptListener":
5
+ i.script = l(t, e, n);
6
+ break;
7
+ case "expressionListener":
8
+ i.expression = e.expression;
9
+ break;
10
+ case "delegateExpressionListener":
11
+ i.delegateExpression = e.delegateExpression;
12
+ break;
13
+ default:
14
+ i.class = e.class;
15
+ }
16
+ if (e.fields && (i.fields = e.fields.map((s) => a(t, s, n))), r && e.event === "timeout" && e.eventDefinitionType) {
17
+ const s = t.moddle.create("bpmn:FormalExpression", {
18
+ body: e.eventTimeDefinitions
19
+ }), c = t.moddle.create("bpmn:TimerEventDefinition", {
20
+ id: `TimerEventDefinition_${d(8)}`,
21
+ [`time${e.eventDefinitionType.replace(/^\S/, (o) => o.toUpperCase())}`]: s
22
+ });
23
+ i.eventDefinitions = [c];
24
+ }
25
+ return t.moddle.create(`${n}:${r ? "TaskListener" : "ExecutionListener"}`, i);
26
+ }
27
+ function a(t, e, r) {
28
+ const { name: n, fieldType: i, string: s, expression: c } = e, o = i === "string" ? { name: n, string: s } : { name: n, expression: c };
29
+ return t.moddle.create(`${r}:Field`, o);
30
+ }
31
+ function l(t, e, r) {
32
+ const { scriptType: n, scriptFormat: i, value: s, resource: c } = e, o = n === "inlineScript" ? { scriptFormat: i, value: s } : { scriptFormat: i, resource: c };
33
+ return t.moddle.create(`${r}:Script`, o);
34
+ }
35
+ function m(t, e, r) {
36
+ const n = t.moddle.create("bpmn:ExtensionElements", {
37
+ values: r
38
+ });
39
+ t.modeling.updateProperties(e, {
40
+ extensionElements: n
41
+ });
42
+ }
43
+ function d(t = 8, e) {
44
+ let r = "";
45
+ const n = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
46
+ for (let i = t; i > 0; --i)
47
+ r += n[Math.floor(Math.random() * n.length)];
48
+ return r;
49
+ }
50
+ const p = (t, e = "body") => t ? t.get(e) : null, E = (t, e, r = "body", n) => {
51
+ u(t, e, { [r]: n });
52
+ }, u = ({ modeling: t }, e, r) => {
53
+ t.updateProperties(e, r);
54
+ };
55
+ export {
56
+ E as a,
57
+ f as c,
58
+ p as g,
59
+ m as u
60
+ };
@@ -0,0 +1 @@
1
+ .element-listeners-drawer .el-drawer__header{margin-bottom:0}
@@ -0,0 +1 @@
1
+ .element-multi-instance .el-select{display:block}.flow-tips-list-item{list-style:inside square}.flow-tips-title{padding-top:10px;padding-bottom:10px}.flow-tips-keyword{font-weight:700}
@@ -0,0 +1,148 @@
1
+ import { n as c } from "../chunks/_plugin-vue2_normalizer.CeySl7Fu.mjs";
2
+ const d = (t) => {
3
+ if (!t) return 0;
4
+ const e = t.match(/^\d*(\.\d*)?/);
5
+ return e ? Number(e[0]) : 0;
6
+ }, a = {
7
+ name: "Ellipsis",
8
+ props: {
9
+ content: {
10
+ type: String,
11
+ default: ""
12
+ },
13
+ direction: {
14
+ type: String,
15
+ default: "end"
16
+ },
17
+ rows: {
18
+ type: [Number, String],
19
+ default: 1
20
+ },
21
+ expandText: {
22
+ type: String,
23
+ default: ""
24
+ },
25
+ collapseText: {
26
+ type: String,
27
+ default: ""
28
+ },
29
+ symbol: {
30
+ type: String,
31
+ default: "..."
32
+ },
33
+ lineHeight: {
34
+ type: [Number, String],
35
+ default: "20"
36
+ }
37
+ },
38
+ emits: ["click", "change"],
39
+ data() {
40
+ return {
41
+ ellipsis: {
42
+ leading: "",
43
+ tailing: ""
44
+ },
45
+ maxHeight: 0,
46
+ // 当行的最大高度
47
+ exceeded: !1,
48
+ // 是否超出
49
+ expanded: !1
50
+ // 是否折叠
51
+ };
52
+ },
53
+ watch: {
54
+ content(t, e) {
55
+ t !== e && this.createContainer();
56
+ }
57
+ },
58
+ mounted() {
59
+ this.createContainer();
60
+ },
61
+ methods: {
62
+ /**
63
+ * 创建虚拟 container,内容为 props.content 的内容
64
+ */
65
+ createContainer() {
66
+ if (!this.$refs.root) return;
67
+ const t = window.getComputedStyle(this.$refs.root), e = document.createElement("div");
68
+ Array.prototype.slice.apply(t).forEach((l) => {
69
+ e.style.setProperty(l, t.getPropertyValue(l));
70
+ }), e.style.position = "fixed", e.style.left = "999999px", e.style.top = "999999px", e.style.zIndex = "-1000", e.style.height = "auto", e.style.minHeight = "auto", e.style.maxHeight = "auto", e.style.textOverflow = "clip", e.style.whiteSpace = "normal", e.style.webkitLineClamp = "unset", e.style.display = "block";
71
+ const s = d(t.lineHeight === "normal" ? this.lineHeight : t.lineHeight);
72
+ this.maxHeight = Math.floor(s * (Number(this.rows) + 0.5) + d(t.paddingTop) + d(t.paddingBottom)), e.innerText = this.content, document.body.appendChild(e), this.calcEllipse(e);
73
+ },
74
+ /**
75
+ * 展开收起
76
+ * @param type
77
+ */
78
+ clickHandle(t) {
79
+ t === 1 ? (this.expanded = !0, this.$emit("change", "expand")) : (this.expanded = !1, this.$emit("change", "collapse"));
80
+ },
81
+ /**
82
+ * 文本点击
83
+ */
84
+ handleClick() {
85
+ this.$emit("click");
86
+ },
87
+ /**
88
+ * 计算省略号的位置
89
+ * @param container
90
+ */
91
+ calcEllipse(t) {
92
+ if (t.offsetHeight <= this.maxHeight)
93
+ this.exceeded = !1, document.body.removeChild(t);
94
+ else {
95
+ this.exceeded = !0;
96
+ const e = this.content.length, i = Math.floor(e / 2);
97
+ this.ellipsis = this.direction === "middle" ? this.tailorMiddle([0, i], [i, e], t) : this.tailor(0, e, t), document.body.removeChild(t);
98
+ }
99
+ },
100
+ tailorMiddle(t, e, i) {
101
+ const s = this.expanded ? this.collapseText : this.expandText, l = this.content.length;
102
+ if (t[1] - t[0] <= 1 && e[1] - e[0] <= 1)
103
+ return {
104
+ leading: this.content.slice(0, t[0]) + this.symbol,
105
+ tailing: this.symbol + this.content.slice(e[1], l)
106
+ };
107
+ const n = Math.floor((t[0] + t[1]) / 2), o = Math.ceil((e[0] + e[1]) / 2);
108
+ return i.innerText = this.content.slice(0, n) + this.symbol + s + this.symbol + this.content.slice(o, l), i.offsetHeight <= this.maxHeight ? this.tailorMiddle([n, t[1]], [e[0], o], i) : this.tailorMiddle([t[0], n], [o, e[1]], i);
109
+ },
110
+ /**
111
+ * 计算 start/end 省略
112
+ * @param left
113
+ * @param right
114
+ * @param container
115
+ * @return {{leading: string}|{tailing: string}|*}
116
+ */
117
+ tailor(t, e, i) {
118
+ const s = this.expanded ? this.collapseText : this.expandText, l = this.content.length;
119
+ if (e - t <= 1)
120
+ return this.direction === "end" ? {
121
+ leading: this.content.slice(0, t) + this.symbol
122
+ } : {
123
+ tailing: this.symbol + this.content.slice(e, l)
124
+ };
125
+ const n = Math.round((t + e) / 2);
126
+ return this.direction === "end" ? i.innerText = this.content.slice(0, n) + this.symbol + s : i.innerText = s + this.symbol + this.content.slice(n, l), i.offsetHeight <= this.maxHeight ? this.direction === "end" ? this.tailor(n, e, i) : this.tailor(t, n, i) : this.direction === "end" ? this.tailor(t, n, i) : this.tailor(n, e, i);
127
+ }
128
+ }
129
+ };
130
+ var h = function() {
131
+ var e = this, i = e._self._c;
132
+ return i("div", { ref: "root", staticClass: "fy-ellipsis", on: { click: e.handleClick } }, [e.exceeded ? e._e() : i("div", [e._v(e._s(e.content))]), e.exceeded && !e.expanded ? i("div", [e._v(" " + e._s(e.ellipsis && e.ellipsis.leading)), e.expandText ? i("span", { staticClass: "fy-ellipsis__text", on: { click: function(s) {
133
+ return s.stopPropagation(), e.clickHandle(1);
134
+ } } }, [e._v(e._s(e.expandText))]) : e._e(), e._v(e._s(e.ellipsis && e.ellipsis.tailing) + " ")]) : e._e(), e.exceeded && e.expanded ? i("div", [e._v(" " + e._s(e.content) + " "), e.expandText ? i("span", { staticClass: "fy-ellipsis__text", on: { click: function(s) {
135
+ return s.stopPropagation(), e.clickHandle(2);
136
+ } } }, [e._v(e._s(e.collapseText))]) : e._e()]) : e._e()]);
137
+ }, r = [], p = /* @__PURE__ */ c(
138
+ a,
139
+ h,
140
+ r,
141
+ !1,
142
+ null,
143
+ null
144
+ );
145
+ const x = p.exports;
146
+ export {
147
+ x as default
148
+ };
@@ -0,0 +1 @@
1
+ .fy-ellipsis{display:flex}.fy-ellipsis__text{cursor:pointer;color:#3460fa;display:inline}