mvframe 1.0.9 → 1.0.11

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mvframe",
3
3
  "packageManager": "yarn@4.4.1",
4
- "version": "1.0.9",
4
+ "version": "1.0.11",
5
5
  "author": "matt avis",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -46,6 +46,9 @@
46
46
  "scripts/scaffold-app.js",
47
47
  ".cursor/skills/mvframe-app-init"
48
48
  ],
49
+ "peerDependencies": {
50
+ "element-plus": "^2.2.0"
51
+ },
49
52
  "dependencies": {
50
53
  "pinia": "^3.0.0",
51
54
  "vue": "^3.3.4",
@@ -41,6 +41,8 @@ const SCAFFOLD_DEPENDENCIES = {
41
41
  "@vue/shared": "^3.5.0",
42
42
  "vue-router": "^4.6.0",
43
43
  pinia: "^3.0.0",
44
+ /** mvframe 产物对 Table 列配置等直接 import,strict 包管理器下需直连依赖 */
45
+ vuedraggable: "^4.1.0",
44
46
  mvframe: "^1.0.0",
45
47
  "element-plus": "^2.13.0",
46
48
  };
@@ -129,6 +131,8 @@ import mvframe from "mvframe";
129
131
  import routes from "./router/index.js";
130
132
  import appConfig from "./config/index.js";
131
133
  import "./assets/style/index.scss";
134
+ import "mvframe/style";
135
+ import "mvframe/style/cpt";
132
136
 
133
137
  const app = createApp(App);
134
138
  app.use(ElementPlus);
@@ -296,14 +300,9 @@ export {};
296
300
 
297
301
  write(
298
302
  "src/assets/style/index.scss",
299
- `/* 项目全局样式入口(已在 main.js 引入) */
300
-
301
- /* MVFrame 工具类与变量:按安装方式选一种
302
- * - monorepo / 源码依赖:*/
303
- /* @import "mvframe/src/style/index.scss"; */
304
-
305
- /* - 发布包全量样式:*/
306
- /* @import "mvframe/style"; */
303
+ `/* 项目全局样式入口(main.js import 本文件) */
304
+ /* MVFrame:main.js 已 import "mvframe/style" 与 "mvframe/style/cpt"(发布包 CSS),勿在此处再 @import 同一路径,避免重复。 */
305
+ /* 若需在 SCSS 内 @use 变量/mixin,可指向 node_modules 内 mvframe 源码路径或 monorepo workspace 路径。 */
307
306
 
308
307
  body {
309
308
  margin: 0;
@@ -433,9 +432,17 @@ yarn install
433
432
 
434
433
  这是 **Vue 3 自带的底层包**,一般不必手写;在 **pnpm / 严格 node_modules** 等环境下可能未被提升到可被 Vite 解析的位置。脚手架已在 \`dependencies\` 中合并 \`@vue/shared\`(与 \`vue\` 同主版本);老项目可手动执行 \`yarn add @vue/shared@^3.5\`。
435
434
 
435
+ ### 报错无法解析 \`vuedraggable\`
436
+
437
+ 发布包 \`dist/index.js\` 会对 \`vuedraggable\` 做 **直连 import**(如 Table 列配置)。脚手架已在 \`dependencies\` 中写入 \`vuedraggable@^4.1.0\`;老项目可 \`yarn add vuedraggable@^4.1\`。
438
+
436
439
  ## 样式
437
440
 
438
- \`src/assets/style/index.scss\` 中取消注释并指向实际 mvframe 样式路径(源码或 dist)。
441
+ \`src/main.js\` 已包含 \`import "mvframe/style"\` 与 \`import "mvframe/style/cpt"\`(分别对应工具类/变量与 **Mvc\*** 组件 scoped 等样式),一般 **无需** 在 \`index.scss\` 再引一遍 mvframe dist CSS,以免重复。项目级覆盖写在 \`src/assets/style/index.scss\` 即可。
442
+
443
+ ## 子路径(按需)
444
+
445
+ 发布包 \`exports\` 还提供 \`mvframe/composition\`、\`mvframe/util\`、\`mvframe/store\` 等,业务侧可 \`import { ... } from "mvframe/composition"\` 等,参见包内 \`package.json\` 的 \`exports\`。
439
446
 
440
447
  ## 目录约定
441
448
 
@@ -1,65 +0,0 @@
1
- import { computed as o, openBlock as s, createElementBlock as i, normalizeClass as d, unref as c, Fragment as y, renderList as v, toDisplayString as S } from "vue";
2
- /* empty css */
3
- import { _ as z } from "../vendor.js";
4
- const h = ["disabled", "onClick"], O = /* @__PURE__ */ Object.assign({
5
- name: "MvcBtnGroup",
6
- inheritAttrs: !1
7
- }, {
8
- __name: "index",
9
- props: {
10
- modelValue: {
11
- type: [String, Number, Boolean],
12
- default: void 0
13
- },
14
- options: {
15
- type: Array,
16
- default: () => []
17
- },
18
- valueKey: {
19
- type: String,
20
- default: "value"
21
- },
22
- labelKey: {
23
- type: String,
24
- default: "label"
25
- },
26
- disabled: {
27
- type: Boolean,
28
- default: !1
29
- },
30
- size: {
31
- type: String,
32
- default: "default",
33
- validator: (a) => ["default", "small", "large"].includes(a)
34
- }
35
- },
36
- emits: ["update:modelValue", "change"],
37
- setup(a, { emit: g }) {
38
- const t = a, u = g, r = (e) => e == null ? e : ["Object", "Array"].includes(globalThis.$getType(e)) ? e[t.valueKey] : e, m = (e) => e == null ? "" : ["Object", "Array"].includes(globalThis.$getType(e)) ? e[t.labelKey] : String(e), f = (e) => {
39
- const l = r(e);
40
- return l === t.modelValue && (l !== void 0 || t.modelValue !== void 0);
41
- }, p = (e) => {
42
- if (t.disabled) return;
43
- const l = r(e);
44
- u("update:modelValue", l), u("change", l);
45
- }, _ = o(() => ({ small: "g4", default: "g6", large: "g8" })[t.size] ?? "g6"), b = o(() => t.size === "small" ? "sizeSmall" : t.size === "large" ? "sizeLarge" : "");
46
- return (e, l) => (s(), i("div", {
47
- class: d(["MvcBtnGroup flexMode", [c(_), c(b)]]),
48
- role: "group"
49
- }, [
50
- (s(!0), i(y, null, v(t.options, (n) => (s(), i("button", {
51
- key: r(n),
52
- type: "button",
53
- class: d(["btnItem", { isActive: f(n) }]),
54
- disabled: t.disabled,
55
- onClick: (A) => p(n)
56
- }, S(m(n)), 11, h))), 128))
57
- ], 2));
58
- }
59
- }), x = /* @__PURE__ */ z(O, [["__scopeId", "data-v-19946018"]]), k = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
60
- __proto__: null,
61
- default: x
62
- }, Symbol.toStringTag, { value: "Module" }));
63
- export {
64
- k as _
65
- };
package/dist/cpt/Form.js DELETED
@@ -1,90 +0,0 @@
1
- import { reactive as v, getCurrentInstance as y, computed as j, watch as n, resolveComponent as O, openBlock as h, createElementBlock as w, createVNode as m, unref as a, withCtx as c, renderSlot as x } from "vue";
2
- import { f as z } from "./chip.js";
3
- import { deepEqual as u } from "../composition.js";
4
- const V = { class: "MvcForm" }, S = /* @__PURE__ */ Object.assign({
5
- name: "MvcForm"
6
- }, {
7
- __name: "index",
8
- props: {
9
- modelValue: {
10
- type: Object,
11
- default: /* @__PURE__ */ Object.create(null)
12
- },
13
- rules: {
14
- type: Object,
15
- default: /* @__PURE__ */ Object.create(null)
16
- },
17
- size: {
18
- type: String,
19
- default: "large"
20
- }
21
- },
22
- setup(f, { expose: i, emit: d }) {
23
- const t = f, r = v({
24
- form: {}
25
- }), { proxy: s } = y(), p = d, _ = async () => {
26
- var e;
27
- try {
28
- return (e = s.$refs) != null && e.form ? (await s.$refs.form.validate(), g()) : !1;
29
- } catch {
30
- return !1;
31
- }
32
- }, g = () => r.form, b = j(() => {
33
- const e = {};
34
- for (let l in t.rules)
35
- e[l] = t.rules[l].map((o) => ({
36
- ...o,
37
- ...o.message && { message: window.$l(o.message) }
38
- }));
39
- return e;
40
- });
41
- return n(
42
- () => r.form,
43
- (e) => {
44
- e && !u(e, t.modelValue) && p("update:modelValue", e);
45
- },
46
- {
47
- deep: !0
48
- }
49
- ), n(
50
- () => t.modelValue,
51
- (e) => {
52
- e && !u(e, r.form) && (r.form = e);
53
- },
54
- {
55
- immediate: !0,
56
- deep: !0
57
- }
58
- ), i({
59
- validate: _
60
- }), (e, l) => {
61
- const o = O("el-form");
62
- return h(), w("div", V, [
63
- m(o, {
64
- ref: "form",
65
- model: a(r).form,
66
- rules: a(b),
67
- size: t.size,
68
- "validate-on-rule-change": !1,
69
- "label-position": "top"
70
- }, {
71
- default: c(() => [
72
- m(a(z), null, {
73
- default: c(() => [
74
- x(e.$slots, "default")
75
- ]),
76
- _: 3
77
- })
78
- ]),
79
- _: 3
80
- }, 8, ["model", "rules", "size"])
81
- ]);
82
- };
83
- }
84
- }), F = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
85
- __proto__: null,
86
- default: S
87
- }, Symbol.toStringTag, { value: "Module" }));
88
- export {
89
- F as _
90
- };
package/dist/cpt/Frame.js DELETED
@@ -1,78 +0,0 @@
1
- import { reactive as v, inject as h, onMounted as j, resolveComponent as y, openBlock as l, createElementBlock as O, createVNode as r, normalizeProps as d, guardReactiveProps as u, createSlots as T, withCtx as f, renderSlot as m, createElementVNode as $, unref as k, createBlock as M, createCommentVNode as C } from "vue";
2
- import { M as I, T as B, F as E } from "./chip.js";
3
- /* empty css */
4
- import { _ as F } from "../vendor.js";
5
- const P = { class: "MvcFrame" }, S = { class: "PageArea" }, w = /* @__PURE__ */ Object.assign({
6
- name: "MvcFrame",
7
- inheritAttrs: !1
8
- }, {
9
- __name: "index",
10
- props: {
11
- /* menu包含:
12
- @params
13
- options: vue-router的路由表
14
- iconClass: 菜单图标样式名,iconfont创建时的样式名或其它自定义规则
15
- logo: 菜单logo, vue dom
16
- logomini: 菜单logo缩小时的样子, vue dom
17
- */
18
- menu: {
19
- type: Object,
20
- default: /* @__PURE__ */ Object.create(null)
21
- },
22
- page: {
23
- type: Object,
24
- default: /* @__PURE__ */ Object.create(null)
25
- }
26
- },
27
- setup(p) {
28
- const c = p;
29
- v({});
30
- const _ = h("store").tab();
31
- j(() => {
32
- g();
33
- });
34
- const g = () => {
35
- b();
36
- }, b = () => {
37
- var e, n, o, i, s, a;
38
- if ((n = (e = globalThis.$config) == null ? void 0 : e.iconfont) != null && n.url) {
39
- const t = document.createElement("script");
40
- if (t.id = "iconfont", t.type = "text/javascript", t.src = (i = (o = globalThis.$config) == null ? void 0 : o.iconfont) == null ? void 0 : i.url, document.getElementById("iconfont"))
41
- return;
42
- document.head.appendChild(t), (a = (s = globalThis.$config) == null ? void 0 : s.iconfont) == null || delete a.url;
43
- }
44
- };
45
- return (e, n) => {
46
- const o = y("router-view");
47
- return l(), O("div", P, [
48
- r(I, d(u(c.menu)), T({ _: 2 }, [
49
- e.$slots.logo ? {
50
- name: "logo",
51
- fn: f(() => [
52
- m(e.$slots, "logo", {}, void 0, !0)
53
- ]),
54
- key: "0"
55
- } : void 0,
56
- e.$slots.logomini ? {
57
- name: "logomini",
58
- fn: f(() => [
59
- m(e.$slots, "logomini", {}, void 0, !0)
60
- ]),
61
- key: "1"
62
- } : void 0
63
- ]), 1040),
64
- $("div", S, [
65
- k(_).useTab ? (l(), M(B, { key: 0 })) : C("", !0),
66
- r(o, d(u(c.page)), null, 16),
67
- r(E)
68
- ])
69
- ]);
70
- };
71
- }
72
- }), x = /* @__PURE__ */ F(w, [["__scopeId", "data-v-d0100e71"]]), D = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
73
- __proto__: null,
74
- default: x
75
- }, Symbol.toStringTag, { value: "Module" }));
76
- export {
77
- D as _
78
- };
package/dist/cpt/Icon.js DELETED
@@ -1,34 +0,0 @@
1
- import { reactive as c, onMounted as i, openBlock as r, createElementBlock as l, createElementVNode as a, unref as s } from "vue";
2
- const _ = {
3
- class: "MvcIcon",
4
- "aria-hidden": "true"
5
- }, f = ["xlink:href"], p = /* @__PURE__ */ Object.assign({
6
- name: "MvcIcon"
7
- }, {
8
- __name: "index",
9
- props: {
10
- name: {
11
- type: String,
12
- default: "cloud"
13
- }
14
- },
15
- setup(o) {
16
- const t = c({
17
- prefix: "imc"
18
- });
19
- return i(() => {
20
- var e, n;
21
- (n = (e = globalThis.$config) == null ? void 0 : e.iconfont) != null && n.prefix && (t.prefix = globalThis.$config.iconfont.prefix);
22
- }), (e, n) => (r(), l("svg", _, [
23
- a("use", {
24
- "xlink:href": `#${s(t).prefix}-${o.name}`
25
- }, null, 8, f)
26
- ]));
27
- }
28
- }), d = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
29
- __proto__: null,
30
- default: p
31
- }, Symbol.toStringTag, { value: "Module" }));
32
- export {
33
- d as _
34
- };
package/dist/cpt/Input.js DELETED
@@ -1,68 +0,0 @@
1
- import { ref as C, reactive as S, getCurrentInstance as b, onMounted as y, nextTick as V, computed as v, watch as w, onUnmounted as E, resolveComponent as I, openBlock as L, createBlock as k, mergeProps as M, unref as s } from "vue";
2
- const $ = /* @__PURE__ */ Object.assign({
3
- name: "MvcInput"
4
- }, {
5
- __name: "index",
6
- props: {
7
- modelValue: {
8
- type: [String, Number],
9
- default: ""
10
- }
11
- },
12
- emits: [
13
- "update:modelValue",
14
- "input",
15
- "change",
16
- "blur",
17
- "focus"
18
- ],
19
- setup(f, { emit: g }) {
20
- const _ = f, a = C(null);
21
- let e = null;
22
- const n = S({
23
- val: "",
24
- isComposing: !1
25
- }), l = g, { proxy: u } = b();
26
- y(() => {
27
- var o, i, r;
28
- const t = (o = a.value) == null ? void 0 : o.$el;
29
- e = ((i = t == null ? void 0 : t.querySelector) == null ? void 0 : i.call(t, "input")) || ((r = t == null ? void 0 : t.querySelector) == null ? void 0 : r.call(t, "textarea")), e && (e.addEventListener("compositionstart", m), e.addEventListener("compositionend", p));
30
- });
31
- const m = () => {
32
- n.isComposing = !0;
33
- }, p = () => {
34
- n.isComposing = !1, V(() => c(n.val));
35
- }, x = (t) => {
36
- n.isComposing || c(t);
37
- }, c = (t) => {
38
- l("update:modelValue", t), l("input", t);
39
- }, h = v(() => !!(u.$attrs.maxlength || d.value)), d = v(() => u.$attrs.max);
40
- return w(
41
- () => _.modelValue,
42
- (t) => {
43
- const o = String(t ?? "");
44
- String(n.val) !== o && (n.val = o);
45
- },
46
- { immediate: !0 }
47
- ), E(() => {
48
- e && (e.removeEventListener("compositionstart", m), e.removeEventListener("compositionend", p), e = null);
49
- }), (t, o) => {
50
- const i = I("el-input");
51
- return L(), k(i, M({
52
- ref_key: "inputRef",
53
- ref: a,
54
- modelValue: s(n).val,
55
- "onUpdate:modelValue": o[0] || (o[0] = (r) => s(n).val = r),
56
- "show-word-limit": s(h),
57
- maxlength: s(d),
58
- class: "MvcInput"
59
- }, t.$attrs, { onInput: x }), null, 16, ["modelValue", "show-word-limit", "maxlength"]);
60
- };
61
- }
62
- }), B = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
63
- __proto__: null,
64
- default: $
65
- }, Symbol.toStringTag, { value: "Module" }));
66
- export {
67
- B as _
68
- };
package/dist/cpt/Page.js DELETED
@@ -1,55 +0,0 @@
1
- import { getCurrentInstance as _, inject as p, computed as i, openBlock as o, createElementBlock as r, createElementVNode as s, renderSlot as a, unref as g, Fragment as h, toDisplayString as d, createCommentVNode as n } from "vue";
2
- /* empty css */
3
- import { _ as f } from "../vendor.js";
4
- const m = { class: "MvcPage" }, b = {
5
- key: 0,
6
- class: "PageHeader"
7
- }, v = { class: "PageHeaderLeft" }, y = { class: "PageHeaderTitle" }, P = { class: "PageHeaderSubTitle" }, H = { class: "PageHeaderRight" }, S = { class: "PageBody" }, k = /* @__PURE__ */ Object.assign({
8
- name: "MvcPage",
9
- inheritAttrs: !1
10
- }, {
11
- __name: "index",
12
- props: {
13
- title: {
14
- type: String,
15
- default: ""
16
- },
17
- subtitle: {
18
- type: String,
19
- default: ""
20
- },
21
- noheader: {
22
- type: Boolean,
23
- default: !1
24
- }
25
- },
26
- setup(l) {
27
- const e = l, { proxy: $ } = _(), c = p("store").tab(), u = i(() => e.title || e.subtitle);
28
- return i(() => c.useTab ? {
29
- minHeight: "calc(100vh - 48px - 36px)"
30
- } : {
31
- minHeight: "calc(100vh - 48px)"
32
- }), (t, x) => (o(), r("div", m, [
33
- e.noheader ? n("", !0) : (o(), r("div", b, [
34
- s("div", v, [
35
- t.$slots.header ? a(t.$slots, "header", { key: 0 }, void 0, !0) : g(u) ? (o(), r(h, { key: 1 }, [
36
- s("h3", y, d(e.title), 1),
37
- s("p", P, d(e.subtitle), 1)
38
- ], 64)) : n("", !0)
39
- ]),
40
- s("div", H, [
41
- t.$slots.right ? a(t.$slots, "right", { key: 0 }, void 0, !0) : n("", !0)
42
- ])
43
- ])),
44
- s("div", S, [
45
- a(t.$slots, "default", {}, void 0, !0)
46
- ])
47
- ]));
48
- }
49
- }), T = /* @__PURE__ */ f(k, [["__scopeId", "data-v-7d18d3b1"]]), C = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
50
- __proto__: null,
51
- default: T
52
- }, Symbol.toStringTag, { value: "Module" }));
53
- export {
54
- C as _
55
- };
@@ -1,186 +0,0 @@
1
- import { ref as c, computed as r, useAttrs as U, watch as C, resolveComponent as b, openBlock as A, createBlock as T, mergeProps as F, unref as u, createSlots as W, withCtx as i, renderSlot as $, createElementVNode as V, isRef as q, createTextVNode as w, toDisplayString as v, createElementBlock as G, createVNode as H } from "vue";
2
- const I = { class: "flexMode hb vc" }, L = { key: 1 }, Q = { class: "tag" }, X = { class: "flexMode hr" }, Y = /* @__PURE__ */ Object.assign({
3
- name: "MvcSelect",
4
- inheritAttrs: !1
5
- }, {
6
- __name: "index",
7
- props: {
8
- modelValue: {
9
- type: [String, Number, Array],
10
- default: void 0
11
- },
12
- multiple: {
13
- type: Boolean,
14
- default: !1
15
- },
16
- filterable: {
17
- type: Boolean,
18
- default: !1
19
- },
20
- options: {
21
- type: Array,
22
- default: () => []
23
- },
24
- valueKey: {
25
- type: String,
26
- default: "value"
27
- },
28
- labelKey: {
29
- type: String,
30
- default: "label"
31
- },
32
- selectAllTxt: {
33
- type: String,
34
- default: "All"
35
- },
36
- confirmTxt: {
37
- type: String,
38
- default: "Confirm"
39
- },
40
- nowrap: {
41
- type: Boolean,
42
- default: !1
43
- }
44
- },
45
- emits: ["update:modelValue", "change"],
46
- setup(g, { emit: O }) {
47
- const l = g, h = c(null), a = c([]), s = c(!1), p = c(!1), _ = c(!1), f = O, B = (e) => {
48
- l.multiple ? (a.value = Array.isArray(e) ? [...e] : [], m()) : (f("update:modelValue", e), f("change", e));
49
- }, M = (e) => {
50
- if (s.value = e, e && l.multiple) {
51
- const t = l.modelValue;
52
- a.value = Array.isArray(t) ? [...t] : t ? [t] : [], m();
53
- }
54
- }, d = () => {
55
- var o;
56
- if (!l.filterable || !s.value) return S();
57
- const e = h.value, t = ((o = e == null ? void 0 : e.optionsArray) == null ? void 0 : o.value) ?? (e == null ? void 0 : e.optionsArray) ?? [];
58
- return Array.isArray(t) ? t.filter((n) => n.visible && !n.isDisabled).map((n) => n.value) : S();
59
- }, N = (e) => {
60
- _.value = !1;
61
- const t = d();
62
- if (e)
63
- a.value = [.../* @__PURE__ */ new Set([...a.value, ...t])];
64
- else {
65
- const o = new Set(t);
66
- a.value = a.value.filter((n) => !o.has(n));
67
- }
68
- }, K = () => {
69
- var e, t;
70
- l.multiple && (f("update:modelValue", a.value), f("change", a.value), (t = (e = h.value) == null ? void 0 : e.blur) == null || t.call(e));
71
- }, S = () => {
72
- const e = l.valueKey;
73
- return (l.options || []).map((t) => typeof t == "object" ? t[e] : t);
74
- }, m = () => {
75
- const e = d(), t = new Set(a.value ?? []), o = e.filter((y) => t.has(y)).length, n = e.length;
76
- p.value = n > 0 && o === n, _.value = o > 0 && o < n;
77
- }, j = r(() => l.multiple && s.value ? a.value : l.modelValue), P = r(() => {
78
- const {
79
- modelValue: e,
80
- valueKey: t,
81
- labelKey: o,
82
- selectAllTxt: n,
83
- confirmTxt: y,
84
- nowrap: x,
85
- ...k
86
- } = l, J = k.props ?? {};
87
- return {
88
- ...k,
89
- props: {
90
- ...J,
91
- value: t,
92
- label: o
93
- }
94
- };
95
- }), R = r(
96
- () => l.nowrap ? {
97
- collapseTags: !0,
98
- collapseTagsTooltip: !0,
99
- maxCollapseTags: 1,
100
- tagTooltip: { popperStyle: { maxWidth: "400px" } }
101
- } : {}
102
- ), z = r(() => ({
103
- ...R.value,
104
- ...U(),
105
- ...P.value
106
- })), D = r(() => {
107
- const e = l.multiple && s.value ? a.value : l.modelValue, t = Array.isArray(e) ? e : e ? [e] : [];
108
- if (!l.filterable || !s.value) return t.length;
109
- const o = d();
110
- return t.filter((n) => o.includes(n)).length;
111
- }), E = r(() => d().length);
112
- return C(a, () => m(), { deep: !0 }), C(
113
- () => l.modelValue,
114
- (e) => {
115
- if (l.multiple && s.value) {
116
- const t = Array.isArray(e) ? [...e] : e ? [e] : [];
117
- JSON.stringify(t) !== JSON.stringify(a.value) && (a.value = t, m());
118
- }
119
- }
120
- ), (e, t) => {
121
- const o = b("el-checkbox"), n = b("el-button"), y = b("el-select");
122
- return A(), T(y, F({
123
- ref_key: "selectRef",
124
- ref: h,
125
- "model-value": u(j),
126
- "tag-effect": "plain",
127
- class: "MvcSelect"
128
- }, u(z), {
129
- "onUpdate:modelValue": B,
130
- onVisibleChange: M
131
- }), W({
132
- default: i(() => [
133
- $(e.$slots, "default")
134
- ]),
135
- _: 2
136
- }, [
137
- l.filterable ? {
138
- name: "header",
139
- fn: i(() => [
140
- V("div", I, [
141
- l.multiple ? (A(), T(o, {
142
- key: 0,
143
- modelValue: u(p),
144
- "onUpdate:modelValue": t[0] || (t[0] = (x) => q(p) ? p.value = x : null),
145
- indeterminate: u(_),
146
- class: "h24",
147
- onChange: N
148
- }, {
149
- default: i(() => [
150
- w(v(g.selectAllTxt), 1)
151
- ]),
152
- _: 1
153
- }, 8, ["modelValue", "indeterminate"])) : (A(), G("span", L)),
154
- V("span", Q, v(u(D)) + "/" + v(u(E)), 1)
155
- ])
156
- ]),
157
- key: "0"
158
- } : void 0,
159
- l.multiple ? {
160
- name: "footer",
161
- fn: i(() => [
162
- V("div", X, [
163
- H(n, {
164
- type: "primary",
165
- size: "small",
166
- onClick: K
167
- }, {
168
- default: i(() => [
169
- w(v(g.confirmTxt), 1)
170
- ]),
171
- _: 1
172
- })
173
- ])
174
- ]),
175
- key: "1"
176
- } : void 0
177
- ]), 1040, ["model-value"]);
178
- };
179
- }
180
- }), ee = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
181
- __proto__: null,
182
- default: Y
183
- }, Symbol.toStringTag, { value: "Module" }));
184
- export {
185
- ee as _
186
- };