@xto/feedback 1.1.5 → 1.1.6
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/es/index.mjs +19 -19
- package/es/style.css +1 -1
- package/lib/index.cjs +1 -1
- package/lib/style.css +1 -1
- package/package.json +7 -7
package/es/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as D, ref as z, computed as S, watch as te, resolveComponent as ke, openBlock as h, createBlock as
|
|
1
|
+
import { defineComponent as D, ref as z, computed as S, watch as te, resolveComponent as ke, openBlock as h, createBlock as X, Teleport as oe, createVNode as q, Transition as _, withCtx as A, createElementBlock as k, normalizeStyle as O, normalizeClass as r, unref as f, createElementVNode as C, withModifiers as ie, renderSlot as V, createTextVNode as N, toDisplayString as I, createCommentVNode as T, withDirectives as re, vShow as ce, Fragment as ge, renderList as be, nextTick as ee, onUnmounted as ue, onMounted as ye, reactive as Ce, createApp as ve, h as $ } from "vue";
|
|
2
2
|
import { useNamespace as Z, useZIndex as Be, useEscape as $e, nextMessageZIndex as Te } from "@xto/core";
|
|
3
3
|
const ot = /* @__PURE__ */ D({
|
|
4
4
|
name: "XModal",
|
|
@@ -44,8 +44,8 @@ const ot = /* @__PURE__ */ D({
|
|
|
44
44
|
}));
|
|
45
45
|
return (d, n) => {
|
|
46
46
|
const b = ke("x-button");
|
|
47
|
-
return h(),
|
|
48
|
-
q(
|
|
47
|
+
return h(), X(oe, { to: "body" }, [
|
|
48
|
+
q(_, { name: "x-modal-fade" }, {
|
|
49
49
|
default: A(() => [
|
|
50
50
|
g.value ? (h(), k("div", {
|
|
51
51
|
key: 0,
|
|
@@ -158,8 +158,8 @@ const ot = /* @__PURE__ */ D({
|
|
|
158
158
|
btt: { width: "100%", height: m }
|
|
159
159
|
}[p];
|
|
160
160
|
});
|
|
161
|
-
return (p, x) => (h(),
|
|
162
|
-
q(
|
|
161
|
+
return (p, x) => (h(), X(oe, { to: "body" }, [
|
|
162
|
+
q(_, { name: "x-drawer-fade" }, {
|
|
163
163
|
default: A(() => [
|
|
164
164
|
re(C("div", {
|
|
165
165
|
class: r(f(o).e("overlay")),
|
|
@@ -190,7 +190,7 @@ const ot = /* @__PURE__ */ D({
|
|
|
190
190
|
}, " ✕ ", 2)) : T("", !0)
|
|
191
191
|
], 2)) : T("", !0),
|
|
192
192
|
C("div", {
|
|
193
|
-
class: r(f(o).e("body"))
|
|
193
|
+
class: r([f(o).e("body"), p.$slots.footer && f(o).em("body", "has-footer")])
|
|
194
194
|
}, [
|
|
195
195
|
V(p.$slots, "default")
|
|
196
196
|
], 2),
|
|
@@ -262,8 +262,8 @@ const ot = /* @__PURE__ */ D({
|
|
|
262
262
|
}, x = (m, d) => {
|
|
263
263
|
s.value[m] = d, a("field-change", m, d);
|
|
264
264
|
};
|
|
265
|
-
return (m, d) => (h(),
|
|
266
|
-
q(
|
|
265
|
+
return (m, d) => (h(), X(oe, { to: "body" }, [
|
|
266
|
+
q(_, { name: "drawer-form-fade" }, {
|
|
267
267
|
default: A(() => [
|
|
268
268
|
re(C("div", {
|
|
269
269
|
class: r(f(o).e("overlay")),
|
|
@@ -403,7 +403,7 @@ const ot = /* @__PURE__ */ D({
|
|
|
403
403
|
]), v = (l) => {
|
|
404
404
|
s.value = !1, a("close", l);
|
|
405
405
|
};
|
|
406
|
-
return (l, w) => (h(), _
|
|
406
|
+
return (l, w) => (h(), X(_, { name: "x-alert-fade" }, {
|
|
407
407
|
default: A(() => [
|
|
408
408
|
s.value ? (h(), k("div", {
|
|
409
409
|
key: 0,
|
|
@@ -546,8 +546,8 @@ const ot = /* @__PURE__ */ D({
|
|
|
546
546
|
}, [
|
|
547
547
|
V(E.$slots, "default")
|
|
548
548
|
], 34),
|
|
549
|
-
(h(),
|
|
550
|
-
q(
|
|
549
|
+
(h(), X(oe, { to: "body" }, [
|
|
550
|
+
q(_, {
|
|
551
551
|
name: `x-tooltip-${e.transition}`
|
|
552
552
|
}, {
|
|
553
553
|
default: A(() => [
|
|
@@ -704,8 +704,8 @@ const ot = /* @__PURE__ */ D({
|
|
|
704
704
|
}, [
|
|
705
705
|
V(i.$slots, "default")
|
|
706
706
|
], 512),
|
|
707
|
-
(h(),
|
|
708
|
-
q(
|
|
707
|
+
(h(), X(oe, { to: "body" }, [
|
|
708
|
+
q(_, { name: "x-popconfirm-fade" }, {
|
|
709
709
|
default: A(() => [
|
|
710
710
|
o.value ? (h(), k("div", {
|
|
711
711
|
key: 0,
|
|
@@ -782,7 +782,7 @@ const ot = /* @__PURE__ */ D({
|
|
|
782
782
|
window.addEventListener("scroll", u, { passive: !0, capture: !0 }), setTimeout(u, 100);
|
|
783
783
|
}), ue(() => {
|
|
784
784
|
window.removeEventListener("scroll", u, !0);
|
|
785
|
-
}), (l, w) => (h(), _
|
|
785
|
+
}), (l, w) => (h(), X(_, { name: "x-fade" }, {
|
|
786
786
|
default: A(() => [
|
|
787
787
|
re(C("div", {
|
|
788
788
|
class: r(f(o).b()),
|
|
@@ -850,7 +850,7 @@ const ot = /* @__PURE__ */ D({
|
|
|
850
850
|
m();
|
|
851
851
|
}), c({
|
|
852
852
|
close: d
|
|
853
|
-
}), (b, i) => (h(), _
|
|
853
|
+
}), (b, i) => (h(), X(_, {
|
|
854
854
|
name: "x-message-fade",
|
|
855
855
|
onAfterLeave: n
|
|
856
856
|
}, {
|
|
@@ -1012,7 +1012,7 @@ const le = (e) => (c) => xe({ ...typeof c == "string" ? { message: c } : c, type
|
|
|
1012
1012
|
}
|
|
1013
1013
|
}, J = [], We = () => {
|
|
1014
1014
|
J.slice().forEach((e) => e.close());
|
|
1015
|
-
},
|
|
1015
|
+
}, Xe = {
|
|
1016
1016
|
success: { icon: "✓", color: "#67c23a" },
|
|
1017
1017
|
warning: { icon: "⚠", color: "#e6a23c" },
|
|
1018
1018
|
error: { icon: "✕", color: "#f56c6c" },
|
|
@@ -1067,7 +1067,7 @@ function de(e) {
|
|
|
1067
1067
|
},
|
|
1068
1068
|
render() {
|
|
1069
1069
|
if (!this.visible) return null;
|
|
1070
|
-
const g = e.type, v = g ?
|
|
1070
|
+
const g = e.type, v = g ? Xe[g] : null, l = [];
|
|
1071
1071
|
v && l.push(
|
|
1072
1072
|
$("span", {
|
|
1073
1073
|
class: "x-message-box__icon",
|
|
@@ -1185,7 +1185,7 @@ function de(e) {
|
|
|
1185
1185
|
J.push(u);
|
|
1186
1186
|
});
|
|
1187
1187
|
}
|
|
1188
|
-
async function
|
|
1188
|
+
async function _e(e, c, t) {
|
|
1189
1189
|
return de({
|
|
1190
1190
|
message: e,
|
|
1191
1191
|
title: c,
|
|
@@ -1217,7 +1217,7 @@ function Ze(e) {
|
|
|
1217
1217
|
return de(e);
|
|
1218
1218
|
}
|
|
1219
1219
|
const U = Object.assign(Ze, {
|
|
1220
|
-
alert:
|
|
1220
|
+
alert: _e,
|
|
1221
1221
|
confirm: je,
|
|
1222
1222
|
prompt: qe,
|
|
1223
1223
|
closeAll: We
|
package/es/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.x-modal{position:relative;margin:0 auto 20px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000026;max-height:43vh;display:flex;flex-direction:column}.x-modal__wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center}.x-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8);flex-shrink:0}.x-modal__title{font-size:15px;font-weight:500;color:var(--color-text-primary, #303133)}.x-modal__close{background:none;border:none;font-size:16px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-modal__close:hover{color:var(--color-primary, #409eff)}.x-modal__body{padding:16px;color:var(--color-text-regular, #606266);font-size:14px;overflow-y:auto;flex:1}.x-modal__footer{padding:10px 16px 14px;text-align:right;flex-shrink:0}.x-modal-fade-enter-active,.x-modal-fade-leave-active{transition:opacity .3s ease}.x-modal-fade-enter-from,.x-modal-fade-leave-to{opacity:0}.x-drawer__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080}.x-drawer{position:fixed;top:0;right:0;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;transition:transform .3s}.x-drawer--ltr{top:0;right:auto;left:0}.x-drawer--rtl{top:0;right:0;left:auto}.x-drawer--ttb{top:0;left:0;right:auto}.x-drawer--btt{bottom:0;top:auto;left:0;right:auto}.x-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8)}.x-drawer__title{font-size:18px;font-weight:500;color:var(--color-text-primary, #303133)}.x-drawer__close{background:none;border:none;font-size:20px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-drawer__close:hover{color:var(--color-primary, #409eff)}.x-drawer__body{padding:20px;height:calc(100% - 60px);overflow-y:auto}.x-drawer__footer{padding:16px 20px;border-top:1px solid var(--color-border-lighter, #e8e8e8);text-align:right}.x-drawer-fade-enter-active,.x-drawer-fade-leave-active{transition:opacity .3s}.x-drawer-fade-enter-active .x-drawer,.x-drawer-fade-leave-active .x-drawer{transition:transform .3s}.x-drawer-fade-enter-from,.x-drawer-fade-leave-to{opacity:0}.x-drawer-fade-enter-from .x-drawer--ltr,.x-drawer-fade-leave-to .x-drawer--ltr{transform:translate(-100%)}.x-drawer-fade-enter-from .x-drawer--rtl,.x-drawer-fade-leave-to .x-drawer--rtl{transform:translate(100%)}.x-drawer-fade-enter-from .x-drawer--ttb,.x-drawer-fade-leave-to .x-drawer--ttb{transform:translateY(-100%)}.x-drawer-fade-enter-from .x-drawer--btt,.x-drawer-fade-leave-to .x-drawer--btt{transform:translateY(100%)}.drawer-form__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000}.drawer-form{position:fixed;top:0;right:0;height:100%;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;display:flex;flex-direction:column}.drawer-form__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__title{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133)}.drawer-form__close{background:none;border:none;font-size:18px;color:var(--color-text-secondary, #909399);cursor:pointer}.drawer-form__close:hover{color:var(--color-primary, #409eff)}.drawer-form__body{flex:1;padding:20px;overflow-y:auto}.drawer-form__form{display:flex;flex-direction:column;gap:16px}.drawer-form__field{display:flex;flex-direction:column;gap:8px}.drawer-form__label{font-size:14px;color:var(--color-text-regular, #606266)}.drawer-form__label .required-mark{color:var(--color-danger, #f56c6c);margin-left:4px}.drawer-form__input,.drawer-form__textarea,.drawer-form__select{padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.drawer-form__input:focus,.drawer-form__textarea:focus,.drawer-form__select:focus{border-color:var(--color-primary, #409eff)}.drawer-form__input:disabled,.drawer-form__textarea:disabled,.drawer-form__select:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.drawer-form__input.has-error,.drawer-form__textarea.has-error,.drawer-form__select.has-error{border-color:var(--color-danger, #f56c6c)}.drawer-form__textarea{resize:vertical;min-height:80px}.drawer-form__select{cursor:pointer}.drawer-form__switch .switch-btn{padding:8px 16px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-regular, #606266);cursor:pointer}.drawer-form__switch .switch-btn.is-on{background:var(--color-primary, #409eff);color:#fff;border-color:var(--color-primary, #409eff)}.drawer-form__switch .switch-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-form__error{font-size:12px;color:var(--color-danger, #f56c6c)}.drawer-form__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__cancel{padding:8px 16px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;color:var(--color-text-regular, #606266);font-size:14px;cursor:pointer}.drawer-form__cancel:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.drawer-form__confirm{padding:8px 16px;background:var(--color-primary, #409eff);border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.drawer-form__confirm:hover{background:var(--color-primary-light, #79bbff)}.drawer-form-fade-enter-active,.drawer-form-fade-leave-active{transition:opacity .3s}.drawer-form-fade-enter-active .drawer-form,.drawer-form-fade-leave-active .drawer-form{transition:transform .3s}.drawer-form-fade-enter-from,.drawer-form-fade-leave-to{opacity:0}.drawer-form-fade-enter-from .drawer-form,.drawer-form-fade-leave-to .drawer-form{transform:translate(100%)}.x-alert{position:relative;padding:12px 16px;margin-bottom:16px;border-radius:4px;display:flex;align-items:flex-start;transition:opacity .3s}.x-alert--success{background-color:#e1f3d8;color:#67c23a}.x-alert--success .x-alert__icon{color:#67c23a}.x-alert--warning{background-color:#fdf6ec;color:#e6a23c}.x-alert--warning .x-alert__icon{color:#e6a23c}.x-alert--error{background-color:#fef0f0;color:#f56c6c}.x-alert--error .x-alert__icon{color:#f56c6c}.x-alert--info{background-color:#f4f4f5;color:#909399}.x-alert--info .x-alert__icon{color:#909399}.x-alert.is-center{justify-content:center;text-align:center}.x-alert.is-with-description{padding:14px 16px}.x-alert.is-with-description .x-alert__title{font-weight:500;font-size:16px}.x-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px}.x-alert__content{flex:1}.x-alert__title{display:block;font-size:14px;font-weight:500}.x-alert__description{display:block;font-size:14px;margin-top:6px;opacity:.8}.x-alert__close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.6}.x-alert__close:hover{opacity:1}.x-alert-fade-enter-active,.x-alert-fade-leave-active{transition:opacity .2s ease}.x-alert-fade-enter-from,.x-alert-fade-leave-to{opacity:0}.x-tooltip{padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;max-width:300px;word-wrap:break-word;position:fixed}.x-tooltip--dark{background-color:#303133;color:#fff;box-shadow:0 2px 8px #00000026}.x-tooltip--dark .x-tooltip__arrow--top{border-top-color:#303133}.x-tooltip--dark .x-tooltip__arrow--bottom{border-bottom-color:#303133}.x-tooltip--dark .x-tooltip__arrow--left{border-left-color:#303133}.x-tooltip--dark .x-tooltip__arrow--right{border-right-color:#303133}.x-tooltip--light{background-color:#fff;color:#303133;box-shadow:0 2px 12px #0000001f}.x-tooltip--light .x-tooltip__arrow--top{border-top-color:#fff}.x-tooltip--light .x-tooltip__arrow--bottom{border-bottom-color:#fff}.x-tooltip--light .x-tooltip__arrow--left{border-left-color:#fff}.x-tooltip--light .x-tooltip__arrow--right{border-right-color:#fff}.x-tooltip__wrapper,.x-tooltip__trigger{display:inline-block}.x-tooltip__arrow{position:absolute;width:0;height:0;border:6px solid transparent}.x-tooltip__arrow--top{bottom:-12px;left:50%;transform:translate(-50%);border-bottom:none}.x-tooltip__arrow--bottom{top:-12px;left:50%;transform:translate(-50%);border-top:none}.x-tooltip__arrow--left{right:-12px;top:50%;transform:translateY(-50%);border-right:none}.x-tooltip__arrow--right{left:-12px;top:50%;transform:translateY(-50%);border-left:none}.x-tooltip-fade-enter-active,.x-tooltip-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.x-tooltip-fade-enter-from,.x-tooltip-fade-leave-to{opacity:0;transform:scale(.9)}.x-popconfirm-wrapper,.x-popconfirm-trigger{display:inline-block}.x-popconfirm{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:12px 16px;box-sizing:border-box}.x-popconfirm__arrow{position:absolute;width:12px;height:12px;background:#fff;box-shadow:-1px -1px 2px #0000000d}.x-popconfirm__main{display:flex;align-items:flex-start;margin-bottom:12px}.x-popconfirm__icon{display:flex;align-items:center;justify-content:center;font-size:16px;margin-right:8px;flex-shrink:0}.x-popconfirm__title{font-size:14px;color:#606266;line-height:1.4}.x-popconfirm__action{display:flex;justify-content:flex-end;gap:8px}.x-popconfirm-fade-enter-active,.x-popconfirm-fade-leave-active{transition:opacity .2s,transform .2s}.x-popconfirm-fade-enter-from,.x-popconfirm-fade-leave-to{opacity:0;transform:scale(.9)}.x-backtop{position:fixed;width:40px;height:40px;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1000}.x-backtop:hover{background-color:#f5f5f5;box-shadow:0 4px 12px #00000026}.x-backtop:active{transform:scale(.95)}.x-backtop__icon{font-size:20px;color:#606266;font-weight:700}.x-fade-enter-active,.x-fade-leave-active{transition:opacity .3s,transform .3s}.x-fade-enter-from,.x-fade-leave-to{opacity:0;transform:translateY(20px)}.x-message{position:fixed;left:50%;top:20px;transform:translate(-50%);display:flex;align-items:center;padding:12px 16px;border-radius:4px;box-shadow:0 2px 12px #0000001a;transition:opacity .3s,transform .3s,top .3s;min-width:280px;max-width:480px}.x-message--success{background-color:#f0f9eb;border:1px solid #67c23a}.x-message--success .x-message__icon{color:#67c23a}.x-message--warning{background-color:#fdf6ec;border:1px solid #e6a23c}.x-message--warning .x-message__icon{color:#e6a23c}.x-message--error{background-color:#fef0f0;border:1px solid #f56c6c}.x-message--error .x-message__icon{color:#f56c6c}.x-message--info{background-color:#f4f4f5;border:1px solid #909399}.x-message--info .x-message__icon{color:#909399}.x-message.is-center{justify-content:center;text-align:center}.x-message.is-closable{padding-right:40px}.x-message__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px;flex-shrink:0}.x-message__content{flex:1;font-size:14px;color:#606266;line-height:1.4;word-break:break-word}.x-message__close{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:#909399;padding:0}.x-message__close:hover{color:#606266}.x-message-fade-enter-active,.x-message-fade-leave-active{transition:opacity .3s,transform .3s}.x-message-fade-enter-from,.x-message-fade-leave-to{opacity:0;transform:translate(-50%) translateY(-100%)}
|
|
1
|
+
.x-modal{position:relative;margin:0 auto 20px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000026;max-height:43vh;display:flex;flex-direction:column}.x-modal__wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center}.x-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8);flex-shrink:0}.x-modal__title{font-size:15px;font-weight:500;color:var(--color-text-primary, #303133)}.x-modal__close{background:none;border:none;font-size:16px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-modal__close:hover{color:var(--color-primary, #409eff)}.x-modal__body{padding:16px;color:var(--color-text-regular, #606266);font-size:14px;overflow-y:auto;flex:1}.x-modal__footer{padding:10px 16px 14px;text-align:right;flex-shrink:0}.x-modal-fade-enter-active,.x-modal-fade-leave-active{transition:opacity .3s ease}.x-modal-fade-enter-from,.x-modal-fade-leave-to{opacity:0}.x-drawer__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080}.x-drawer{position:fixed;top:0;right:0;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;transition:transform .3s}.x-drawer--ltr{top:0;right:auto;left:0}.x-drawer--rtl{top:0;right:0;left:auto}.x-drawer--ttb{top:0;left:0;right:auto}.x-drawer--btt{bottom:0;top:auto;left:0;right:auto}.x-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8)}.x-drawer__title{font-size:18px;font-weight:500;color:var(--color-text-primary, #303133)}.x-drawer__close{background:none;border:none;font-size:20px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-drawer__close:hover{color:var(--color-primary, #409eff)}.x-drawer__body{padding:20px;height:calc(100% - 60px);overflow-y:auto}.x-drawer__body--has-footer{height:calc(100% - 120px)}.x-drawer__footer{padding:16px 20px;border-top:1px solid var(--color-border-lighter, #e8e8e8);text-align:right}.x-drawer-fade-enter-active,.x-drawer-fade-leave-active{transition:opacity .3s}.x-drawer-fade-enter-active .x-drawer,.x-drawer-fade-leave-active .x-drawer{transition:transform .3s}.x-drawer-fade-enter-from,.x-drawer-fade-leave-to{opacity:0}.x-drawer-fade-enter-from .x-drawer--ltr,.x-drawer-fade-leave-to .x-drawer--ltr{transform:translate(-100%)}.x-drawer-fade-enter-from .x-drawer--rtl,.x-drawer-fade-leave-to .x-drawer--rtl{transform:translate(100%)}.x-drawer-fade-enter-from .x-drawer--ttb,.x-drawer-fade-leave-to .x-drawer--ttb{transform:translateY(-100%)}.x-drawer-fade-enter-from .x-drawer--btt,.x-drawer-fade-leave-to .x-drawer--btt{transform:translateY(100%)}.drawer-form__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000}.drawer-form{position:fixed;top:0;right:0;height:100%;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;display:flex;flex-direction:column}.drawer-form__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__title{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133)}.drawer-form__close{background:none;border:none;font-size:18px;color:var(--color-text-secondary, #909399);cursor:pointer}.drawer-form__close:hover{color:var(--color-primary, #409eff)}.drawer-form__body{flex:1;padding:20px;overflow-y:auto}.drawer-form__form{display:flex;flex-direction:column;gap:16px}.drawer-form__field{display:flex;flex-direction:column;gap:8px}.drawer-form__label{font-size:14px;color:var(--color-text-regular, #606266)}.drawer-form__label .required-mark{color:var(--color-danger, #f56c6c);margin-left:4px}.drawer-form__input,.drawer-form__textarea,.drawer-form__select{padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.drawer-form__input:focus,.drawer-form__textarea:focus,.drawer-form__select:focus{border-color:var(--color-primary, #409eff)}.drawer-form__input:disabled,.drawer-form__textarea:disabled,.drawer-form__select:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.drawer-form__input.has-error,.drawer-form__textarea.has-error,.drawer-form__select.has-error{border-color:var(--color-danger, #f56c6c)}.drawer-form__textarea{resize:vertical;min-height:80px}.drawer-form__select{cursor:pointer}.drawer-form__switch .switch-btn{padding:8px 16px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-regular, #606266);cursor:pointer}.drawer-form__switch .switch-btn.is-on{background:var(--color-primary, #409eff);color:#fff;border-color:var(--color-primary, #409eff)}.drawer-form__switch .switch-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-form__error{font-size:12px;color:var(--color-danger, #f56c6c)}.drawer-form__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__cancel{padding:8px 16px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;color:var(--color-text-regular, #606266);font-size:14px;cursor:pointer}.drawer-form__cancel:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.drawer-form__confirm{padding:8px 16px;background:var(--color-primary, #409eff);border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.drawer-form__confirm:hover{background:var(--color-primary-light, #79bbff)}.drawer-form-fade-enter-active,.drawer-form-fade-leave-active{transition:opacity .3s}.drawer-form-fade-enter-active .drawer-form,.drawer-form-fade-leave-active .drawer-form{transition:transform .3s}.drawer-form-fade-enter-from,.drawer-form-fade-leave-to{opacity:0}.drawer-form-fade-enter-from .drawer-form,.drawer-form-fade-leave-to .drawer-form{transform:translate(100%)}.x-alert{position:relative;padding:12px 16px;margin-bottom:16px;border-radius:4px;display:flex;align-items:flex-start;transition:opacity .3s}.x-alert--success{background-color:#e1f3d8;color:#67c23a}.x-alert--success .x-alert__icon{color:#67c23a}.x-alert--warning{background-color:#fdf6ec;color:#e6a23c}.x-alert--warning .x-alert__icon{color:#e6a23c}.x-alert--error{background-color:#fef0f0;color:#f56c6c}.x-alert--error .x-alert__icon{color:#f56c6c}.x-alert--info{background-color:#f4f4f5;color:#909399}.x-alert--info .x-alert__icon{color:#909399}.x-alert.is-center{justify-content:center;text-align:center}.x-alert.is-with-description{padding:14px 16px}.x-alert.is-with-description .x-alert__title{font-weight:500;font-size:16px}.x-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px}.x-alert__content{flex:1}.x-alert__title{display:block;font-size:14px;font-weight:500}.x-alert__description{display:block;font-size:14px;margin-top:6px;opacity:.8}.x-alert__close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.6}.x-alert__close:hover{opacity:1}.x-alert-fade-enter-active,.x-alert-fade-leave-active{transition:opacity .2s ease}.x-alert-fade-enter-from,.x-alert-fade-leave-to{opacity:0}.x-tooltip{padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;max-width:300px;word-wrap:break-word;position:fixed}.x-tooltip--dark{background-color:#303133;color:#fff;box-shadow:0 2px 8px #00000026}.x-tooltip--dark .x-tooltip__arrow--top{border-top-color:#303133}.x-tooltip--dark .x-tooltip__arrow--bottom{border-bottom-color:#303133}.x-tooltip--dark .x-tooltip__arrow--left{border-left-color:#303133}.x-tooltip--dark .x-tooltip__arrow--right{border-right-color:#303133}.x-tooltip--light{background-color:#fff;color:#303133;box-shadow:0 2px 12px #0000001f}.x-tooltip--light .x-tooltip__arrow--top{border-top-color:#fff}.x-tooltip--light .x-tooltip__arrow--bottom{border-bottom-color:#fff}.x-tooltip--light .x-tooltip__arrow--left{border-left-color:#fff}.x-tooltip--light .x-tooltip__arrow--right{border-right-color:#fff}.x-tooltip__wrapper,.x-tooltip__trigger{display:inline-block}.x-tooltip__arrow{position:absolute;width:0;height:0;border:6px solid transparent}.x-tooltip__arrow--top{bottom:-12px;left:50%;transform:translate(-50%);border-bottom:none}.x-tooltip__arrow--bottom{top:-12px;left:50%;transform:translate(-50%);border-top:none}.x-tooltip__arrow--left{right:-12px;top:50%;transform:translateY(-50%);border-right:none}.x-tooltip__arrow--right{left:-12px;top:50%;transform:translateY(-50%);border-left:none}.x-tooltip-fade-enter-active,.x-tooltip-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.x-tooltip-fade-enter-from,.x-tooltip-fade-leave-to{opacity:0;transform:scale(.9)}.x-popconfirm-wrapper,.x-popconfirm-trigger{display:inline-block}.x-popconfirm{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:12px 16px;box-sizing:border-box}.x-popconfirm__arrow{position:absolute;width:12px;height:12px;background:#fff;box-shadow:-1px -1px 2px #0000000d}.x-popconfirm__main{display:flex;align-items:flex-start;margin-bottom:12px}.x-popconfirm__icon{display:flex;align-items:center;justify-content:center;font-size:16px;margin-right:8px;flex-shrink:0}.x-popconfirm__title{font-size:14px;color:#606266;line-height:1.4}.x-popconfirm__action{display:flex;justify-content:flex-end;gap:8px}.x-popconfirm-fade-enter-active,.x-popconfirm-fade-leave-active{transition:opacity .2s,transform .2s}.x-popconfirm-fade-enter-from,.x-popconfirm-fade-leave-to{opacity:0;transform:scale(.9)}.x-backtop{position:fixed;width:40px;height:40px;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1000}.x-backtop:hover{background-color:#f5f5f5;box-shadow:0 4px 12px #00000026}.x-backtop:active{transform:scale(.95)}.x-backtop__icon{font-size:20px;color:#606266;font-weight:700}.x-fade-enter-active,.x-fade-leave-active{transition:opacity .3s,transform .3s}.x-fade-enter-from,.x-fade-leave-to{opacity:0;transform:translateY(20px)}.x-message{position:fixed;left:50%;top:20px;transform:translate(-50%);display:flex;align-items:center;padding:12px 16px;border-radius:4px;box-shadow:0 2px 12px #0000001a;transition:opacity .3s,transform .3s,top .3s;min-width:280px;max-width:480px}.x-message--success{background-color:#f0f9eb;border:1px solid #67c23a}.x-message--success .x-message__icon{color:#67c23a}.x-message--warning{background-color:#fdf6ec;border:1px solid #e6a23c}.x-message--warning .x-message__icon{color:#e6a23c}.x-message--error{background-color:#fef0f0;border:1px solid #f56c6c}.x-message--error .x-message__icon{color:#f56c6c}.x-message--info{background-color:#f4f4f5;border:1px solid #909399}.x-message--info .x-message__icon{color:#909399}.x-message.is-center{justify-content:center;text-align:center}.x-message.is-closable{padding-right:40px}.x-message__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px;flex-shrink:0}.x-message__content{flex:1;font-size:14px;color:#606266;line-height:1.4;word-break:break-word}.x-message__close{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:#909399;padding:0}.x-message__close:hover{color:#606266}.x-message-fade-enter-active,.x-message-fade-leave-active{transition:opacity .3s,transform .3s}.x-message-fade-enter-from,.x-message-fade-leave-to{opacity:0;transform:translate(-50%) translateY(-100%)}
|
package/lib/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),T=require("@xto/core"),Z=e.defineComponent({name:"XModal",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},title:{default:""},width:{default:"50%"},top:{default:"15vh"},modal:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},center:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","update:open","close","open","ok","cancel"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("modal"),{next:s}=T.useZIndex(),d=e.ref(s()),h=e.computed({get:()=>o.modelValue!==void 0?o.modelValue:o.open!==void 0?o.open:!1,set:u=>{r("update:modelValue",u),r("update:open",u)}}),p=e.ref(),a=()=>{h.value=!1,r("cancel"),r("close")},x=()=>{r("ok")},m=()=>{o.closeOnClickModal&&o.modal&&a()};T.useEscape(()=>{o.closeOnPressEscape&&h.value&&a()}),e.watch(()=>[o.modelValue,o.open],([u,l])=>{(u!==void 0?u:l)&&(d.value=s(),r("open"))},{immediate:!0});const y=e.computed(()=>({paddingTop:o.top})),f=e.computed(()=>({width:typeof o.width=="number"?`${o.width}px`:o.width,zIndex:d.value}));return(u,l)=>{const g=e.resolveComponent("x-button");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-modal-fade"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("wrapper")),style:e.normalizeStyle(y.value),onClick:m},[e.createElementVNode("div",{ref_key:"modalRef",ref:p,class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle(f.value),onClick:l[0]||(l[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(u.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("close")),onClick:a}," ✕ ",2)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("body"))},[e.renderSlot(u.$slots,"default")],2),u.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(u.$slots,"footer",{ok:x,cancel:a})],2)):u.$slots.footer?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.createVNode(g,{onClick:a},{default:e.withCtx(()=>[...l[1]||(l[1]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(g,{type:"primary",style:{"margin-left":"8px"},onClick:x},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createTextVNode("确定",-1)])]),_:1})],2))],6)],6)):e.createCommentVNode("",!0)]),_:3})])}}}),K=e.defineComponent({name:"XDrawer",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:!1},title:{default:""},placement:{default:void 0},direction:{default:"rtl"},width:{default:void 0},size:{default:"30%"},withHeader:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","close","open"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("drawer"),s=e.ref(2e3),d=()=>{r("update:modelValue",!1),r("close")},h=()=>{o.closeOnClickModal&&d()},p=m=>{m.key==="Escape"&&o.modelValue&&d()};e.watch(()=>o.modelValue,m=>{m?(s.value=2e3+Math.floor(Math.random()*100),r("open"),document.addEventListener("keydown",p)):document.removeEventListener("keydown",p)});const a=e.computed(()=>({zIndex:s.value})),x=e.computed(()=>{const m=o.direction??o.placement??"rtl",y=o.size??o.width??"30%",f=typeof y=="number"?`${y}px`:y;return{ltr:{width:f,height:"100%"},rtl:{width:f,height:"100%"},ttb:{width:"100%",height:f},btt:{width:"100%",height:f}}[m]});return(m,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-drawer-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("overlay")),style:e.normalizeStyle(a.value),onClick:h},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(n).b(),e.unref(n).m(t.direction??t.placement??"rtl")]),style:e.normalizeStyle(x.value),onClick:y[0]||(y[0]=e.withModifiers(()=>{},["stop"]))},[t.withHeader?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(m.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("close")),onClick:d}," ✕ ",2)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("body"))},[e.renderSlot(m.$slots,"default")],2),m.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(m.$slots,"footer")],2)):e.createCommentVNode("",!0)],6)],6),[[e.vShow,t.modelValue]])]),_:3})]))}}),Y={key:0,class:"required-mark"},G=["value","placeholder","disabled","onInput"],J=["value","placeholder","disabled","onInput"],Q=["value","placeholder","disabled","onInput"],ee=["value","disabled","onChange"],te=["value"],oe=["disabled","onClick"],ne=e.defineComponent({name:"XDrawerForm",__name:"index",props:{modelValue:{type:Boolean,default:!1},title:{default:"配置"},size:{default:"400px"},fields:{default:()=>[]},formData:{default:()=>({})},showConfirm:{type:Boolean,default:!0},showCancel:{type:Boolean,default:!0},confirmText:{default:"确认"},cancelText:{default:"取消"},disabled:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","confirm","cancel","close","field-change"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("drawer-form"),s=e.ref({}),d=e.ref({});e.computed(()=>[n.b()]),e.watch(()=>o.formData,f=>{s.value={...f}},{immediate:!0,deep:!0});const h=e.computed(()=>typeof o.size=="number"?`${o.size}px`:o.size),p=()=>{r("update:modelValue",!1),r("close")},a=()=>{r("cancel"),p()},x=()=>{m()&&(r("confirm",s.value),p())},m=()=>{d.value={};for(const f of o.fields){if(f.required){const u=s.value[f.name];if(u==null||u===""){d.value[f.name]=`${f.label}为必填项`;continue}}if(f.rules)for(const u of f.rules){const l=s.value[f.name];u.type==="email"&&l&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(l)&&(d.value[f.name]=u.message),u.type==="minLength"&&l&&l.length<u.min&&(d.value[f.name]=u.message)}}return Object.keys(d.value).length===0},y=(f,u)=>{s.value[f]=u,r("field-change",f,u)};return(f,u)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"drawer-form-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("overlay")),onClick:p},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle({width:h.value}),onClick:u[0]||(u[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},e.toDisplayString(t.title),3),e.createElementVNode("button",{class:e.normalizeClass(e.unref(n).e("close")),onClick:p},"✕",2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("body"))},[!t.destroyOnClose||t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("form"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:e.normalizeClass(e.unref(n).e("field"))},[e.createElementVNode("label",{class:e.normalizeClass(e.unref(n).e("label"))},[e.createTextVNode(e.toDisplayString(l.label)+" ",1),l.required?(e.openBlock(),e.createElementBlock("span",Y,"*")):e.createCommentVNode("",!0)],2),l.type==="input"?(e.openBlock(),e.createElementBlock("input",{key:0,class:e.normalizeClass([e.unref(n).e("input"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,onInput:g=>y(l.name,g.target.value)},null,42,G)):l.type==="textarea"?(e.openBlock(),e.createElementBlock("textarea",{key:1,class:e.normalizeClass([e.unref(n).e("textarea"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,rows:"4",onInput:g=>y(l.name,g.target.value)},null,42,J)):l.type==="number"?(e.openBlock(),e.createElementBlock("input",{key:2,type:"number",class:e.normalizeClass([e.unref(n).e("input"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,onInput:g=>y(l.name,Number(g.target.value))},null,42,Q)):l.type==="select"?(e.openBlock(),e.createElementBlock("select",{key:3,class:e.normalizeClass([e.unref(n).e("select"),{"has-error":d.value[l.name]}]),value:s.value[l.name],disabled:t.disabled||l.disabled,onChange:g=>y(l.name,g.target.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,g=>(e.openBlock(),e.createElementBlock("option",{key:g.value,value:g.value},e.toDisplayString(g.label),9,te))),128))],42,ee)):l.type==="switch"?(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(e.unref(n).e("switch"))},[e.createElementVNode("button",{class:e.normalizeClass(["switch-btn",{"is-on":s.value[l.name]}]),disabled:t.disabled||l.disabled,onClick:g=>y(l.name,!s.value[l.name])},e.toDisplayString(s.value[l.name]?"开启":"关闭"),11,oe)],2)):e.createCommentVNode("",!0),d.value[l.name]?(e.openBlock(),e.createElementBlock("span",{key:5,class:e.normalizeClass(e.unref(n).e("error"))},e.toDisplayString(d.value[l.name]),3)):e.createCommentVNode("",!0)],2))),128))],2)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("footer"))},[t.showCancel?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("cancel")),onClick:a},e.toDisplayString(t.cancelText),3)):e.createCommentVNode("",!0),t.showConfirm?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(e.unref(n).e("confirm")),onClick:x},e.toDisplayString(t.confirmText),3)):e.createCommentVNode("",!0)],2)],6)],2),[[e.vShow,t.modelValue]])]),_:1})]))}}),le=e.defineComponent({name:"XAlert",__name:"index",props:{type:{default:"info"},title:{default:""},description:{},closable:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!1},center:{type:Boolean,default:!1}},emits:["close"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("alert"),s=e.ref(!0),d={success:"✓",warning:"⚠",error:"✕",info:"ℹ"},h=e.computed(()=>[n.b(),n.m(o.type),n.is("center",o.center),n.is("with-description",o.description)]),p=a=>{s.value=!1,r("close",a)};return(a,x)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-alert-fade"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(h.value)},[t.showIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("icon"))},e.toDisplayString(d[t.type]),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("content"))},[t.title||a.$slots.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(a.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2)):e.createCommentVNode("",!0),t.description||a.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("description"))},[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.description),1)])],2)):e.createCommentVNode("",!0)],2),t.closable?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(e.unref(n).e("close")),onClick:p}," ✕ ",2)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)]),_:3}))}}),se=e.defineComponent({name:"XTooltip",__name:"index",props:{content:{default:""},placement:{default:"top"},effect:{default:"dark"},disabled:{type:Boolean,default:!1},offset:{default:8},transition:{default:"fade"},visibleArrow:{type:Boolean,default:!0},trigger:{default:"hover"},openDelay:{default:0},closeDelay:{default:0}},emits:["update:visible","show","hide"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("tooltip"),s=e.ref(!1),d=e.ref(),h=e.ref();let p,a;const x=e.ref({}),m=()=>{if(!d.value||!h.value)return;const k=d.value.getBoundingClientRect(),N=h.value;N.style.visibility="hidden",N.style.display="block";const z=N.offsetWidth,S=N.offsetHeight,V=o.offset,W=window.innerWidth,_=window.innerHeight;let B=0,E=0,I=o.placement;switch(o.placement){case"top":B=k.top-S-V,E=k.left+(k.width-z)/2;break;case"bottom":B=k.bottom+V,E=k.left+(k.width-z)/2;break;case"left":B=k.top+(k.height-S)/2,E=k.left-z-V;break;case"right":B=k.top+(k.height-S)/2,E=k.right+V;break}o.placement==="top"&&B<0?(I="bottom",B=k.bottom+V):o.placement==="bottom"&&B+S>_?(I="top",B=k.top-S-V):o.placement==="left"&&E<0?(I="right",E=k.right+V):o.placement==="right"&&E+z>W&&(I="left",E=k.left-z-V),E<8&&(E=8),E+z>W-8&&(E=W-z-8),B<8&&(B=8),B+S>_-8&&(B=_-S-8),x.value={position:"fixed",top:`${B}px`,left:`${E}px`,visibility:"visible",zIndex:"2000"},y.value=I},y=e.ref(o.placement),f=()=>{o.disabled||(clearTimeout(a),p=setTimeout(()=>{s.value=!0,r("update:visible",!0),r("show"),e.nextTick(()=>{m()})},o.openDelay))},u=()=>{clearTimeout(p),a=setTimeout(()=>{s.value=!1,r("update:visible",!1),r("hide")},o.closeDelay)},l=()=>{s.value?u():f()},g=()=>{o.trigger==="hover"&&f()},i=()=>{o.trigger==="hover"&&u()},v=()=>{o.trigger==="click"&&l()},$=()=>{o.trigger==="focus"&&f()},w=()=>{o.trigger==="focus"&&u()},C=k=>{var N,z;o.trigger==="click"&&!((N=d.value)!=null&&N.contains(k.target))&&!((z=h.value)!=null&&z.contains(k.target))&&u()},b=()=>{s.value&&m()};e.watch(s,k=>{k?e.nextTick(()=>{m(),o.trigger==="click"&&document.addEventListener("click",C),window.addEventListener("scroll",b,!0),window.addEventListener("resize",b)}):(document.removeEventListener("click",C),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b))}),e.onUnmounted(()=>{clearTimeout(p),clearTimeout(a),document.removeEventListener("click",C),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)});const R=e.computed(()=>[n.b(),n.m(o.effect)]),O=e.computed(()=>[n.e("arrow"),n.e(`arrow-${y.value}`)]);return(k,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(n).e("wrapper"))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:d,class:e.normalizeClass(e.unref(n).e("trigger")),onMouseenter:g,onMouseleave:i,onClick:v,onFocus:$,onBlur:w},[e.renderSlot(k.$slots,"default")],34),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:`x-tooltip-${t.transition}`},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"tooltipRef",ref:h,class:e.normalizeClass(R.value),style:e.normalizeStyle(x.value),onMouseenter:g,onMouseleave:i},[e.renderSlot(k.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(t.content),1)]),t.visibleArrow?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(O.value)},null,2)):e.createCommentVNode("",!0)],38),[[e.vShow,s.value]])]),_:3},8,["name"])]))],2))}}),ae={class:"x-popconfirm-wrapper"},re={class:"x-popconfirm__main"},ie={class:"x-popconfirm__title"},ce={class:"x-popconfirm__action"},de=e.defineComponent({name:"XPopconfirm",__name:"index",props:{title:{default:""},confirmButtonText:{default:"确定"},cancelButtonText:{default:"取消"},confirmButtonType:{default:"primary"},cancelButtonType:{default:"default"},icon:{default:""},iconColor:{default:"#faad14"},hideIcon:{type:Boolean,default:!1},hideCancelButton:{type:Boolean,default:!1},hideConfirmButton:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},width:{default:200},placement:{default:"top"},offset:{default:12},showArrow:{type:Boolean,default:!0}},emits:["confirm","cancel"],setup(t,{emit:c}){const o=t,r=c,n=e.ref(!1),s=e.ref(null),d=e.ref(null),h=e.ref({}),p=()=>{if(!s.value||!d.value)return;const i=s.value.getBoundingClientRect(),v=d.value.getBoundingClientRect(),$=o.placement,w=o.offset;let C=0,b=0;switch($){case"top":C=i.top-v.height-w,b=i.left+(i.width-v.width)/2;break;case"top-start":C=i.top-v.height-w,b=i.left;break;case"top-end":C=i.top-v.height-w,b=i.right-v.width;break;case"bottom":C=i.bottom+w,b=i.left+(i.width-v.width)/2;break;case"bottom-start":C=i.bottom+w,b=i.left;break;case"bottom-end":C=i.bottom+w,b=i.right-v.width;break;case"left":C=i.top+(i.height-v.height)/2,b=i.left-v.width-w;break;case"left-start":C=i.top,b=i.left-v.width-w;break;case"left-end":C=i.bottom-v.height,b=i.left-v.width-w;break;case"right":C=i.top+(i.height-v.height)/2,b=i.right+w;break;case"right-start":C=i.top,b=i.right+w;break;case"right-end":C=i.bottom-v.height,b=i.right+w;break;default:C=i.top-v.height-w,b=i.left+(i.width-v.width)/2}const R=window.innerWidth,O=window.innerHeight;b<0&&(b=10),b+v.width>R&&(b=R-v.width-10),C<0&&(C=10),C+v.height>O&&(C=O-v.height-10),h.value={position:"fixed",top:`${C}px`,left:`${b}px`,zIndex:"2000"}},a=i=>{var v,$;n.value&&((v=s.value)!=null&&v.contains(i.target)||($=d.value)!=null&&$.contains(i.target)||(n.value=!1))},x=i=>{o.disabled||(i.stopPropagation(),n.value=!n.value,n.value&&setTimeout(p,0))},m=()=>{n.value=!1,r("confirm")},y=()=>{n.value=!1,r("cancel")},f=()=>{n.value&&p()},u=()=>{n.value&&p()};e.watch(n,i=>{i?(setTimeout(p,0),document.addEventListener("click",a),window.addEventListener("scroll",f,!0),window.addEventListener("resize",u)):(document.removeEventListener("click",a),window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",u))}),e.onUnmounted(()=>{document.removeEventListener("click",a),window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",u)});const l=e.computed(()=>({width:typeof o.width=="number"?`${o.width}px`:o.width})),g=e.computed(()=>{const i=o.placement,v={};switch(i){case"top":case"top-start":case"top-end":v.bottom="-6px",v.transform="rotate(45deg)";break;case"bottom":case"bottom-start":case"bottom-end":v.top="-6px",v.transform="rotate(225deg)";break;case"left":case"left-start":case"left-end":v.right="-6px",v.transform="rotate(315deg)";break;case"right":case"right-start":case"right-end":v.left="-6px",v.transform="rotate(135deg)";break}return v});return(i,v)=>(e.openBlock(),e.createElementBlock("span",ae,[e.createElementVNode("span",{ref_key:"triggerRef",ref:s,class:"x-popconfirm-trigger",onClick:x},[e.renderSlot(i.$slots,"default")],512),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-popconfirm-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popperRef",ref:d,class:"x-popconfirm",style:e.normalizeStyle({...h.value,...l.value}),onClick:v[0]||(v[0]=e.withModifiers(()=>{},["stop"]))},[t.showArrow?(e.openBlock(),e.createElementBlock("span",{key:0,class:"x-popconfirm__arrow",style:e.normalizeStyle(g.value)},null,4)):e.createCommentVNode("",!0),e.createElementVNode("div",re,[t.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"x-popconfirm__icon",style:e.normalizeStyle({color:t.iconColor})},[e.renderSlot(i.$slots,"icon",{},()=>[e.createTextVNode(e.toDisplayString(t.icon||"⚠"),1)])],4)),e.createElementVNode("div",ie,[e.renderSlot(i.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])]),e.createElementVNode("div",ce,[t.hideCancelButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,class:"x-button p-button--default p-button--small",onClick:y},e.toDisplayString(t.cancelButtonText),1)),t.hideConfirmButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["x-button x-button--small",`x-button--${t.confirmButtonType}`]),onClick:m},e.toDisplayString(t.confirmButtonText),3))])],4)):e.createCommentVNode("",!0)]),_:3})]))]))}}),ue=e.defineComponent({name:"XBacktop",__name:"index",props:{visibilityHeight:{default:200},right:{default:40},bottom:{default:40}},emits:["click"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("backtop"),s=e.ref(!1),d=()=>{const a=window.scrollY||document.documentElement.scrollTop||document.body.scrollTop||0;s.value=a>=o.visibilityHeight},h=a=>{window.scrollTo({top:0,behavior:"smooth"}),r("click",a)},p=e.computed(()=>({right:`${o.right}px`,bottom:`${o.bottom}px`}));return e.onMounted(()=>{window.addEventListener("scroll",d,{passive:!0,capture:!0}),setTimeout(d,100)}),e.onUnmounted(()=>{window.removeEventListener("scroll",d,!0)}),(a,x)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle(p.value),onClick:h},[e.renderSlot(a.$slots,"default",{},()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("icon"))},"↑",2)])],6),[[e.vShow,s.value]])]),_:3}))}}),me=e.defineComponent({name:"XMessage",__name:"index",props:{message:{default:""},type:{default:"info"},duration:{default:3e3},showClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},offset:{default:20},customClass:{},onClose:{}},emits:["close","destroy"],setup(t,{expose:c,emit:o}){const r=t,n=o,s=T.useNamespace("message"),d=e.ref(!1),h=e.ref(T.nextMessageZIndex()),p={success:"✓",warning:"⚠",error:"✕",info:"ℹ"},a=e.computed(()=>[s.b(),s.m(r.type),s.is("center",r.center),s.is("closable",r.showClose),r.customClass]),x=e.computed(()=>({top:`${r.offset}px`,zIndex:h.value}));let m=null;const y=()=>{r.duration>0&&(m=setTimeout(()=>{u()},r.duration))},f=()=>{m&&(clearTimeout(m),m=null)},u=()=>{var g;d.value=!1,(g=r.onClose)==null||g.call(r),n("close")},l=()=>{n("destroy")};return e.onMounted(()=>{y(),d.value=!0}),e.onUnmounted(()=>{f()}),c({close:u}),(g,i)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-message-fade",onAfterLeave:l},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(a.value),style:e.normalizeStyle(x.value),onMouseenter:f,onMouseleave:y},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).e("icon"))},e.toDisplayString(p[t.type]),3),e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).e("content"))},[e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(s).e("close")),onClick:u}," ✕ ",2)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:3}))}}),D=[];let fe=1;const pe=()=>{D.slice().forEach(t=>t.close())};function q(t){const c=fe++,o=document.createElement("div");document.body.appendChild(o);const r={success:{bg:"#f0f9eb",border:"#67c23a",icon:"✓"},warning:{bg:"#fdf6ec",border:"#e6a23c",icon:"⚠"},error:{bg:"#fef0f0",border:"#f56c6c",icon:"✕"},info:{bg:"#f4f4f5",border:"#909399",icon:"ℹ"}},n=t.type||"info",s=r[n]||r.info,d=e.reactive({visible:!1,offset:t.offset??20});let h=t.offset??20;D.forEach(l=>{const g=l.container.firstElementChild;g&&g.offsetHeight&&(h+=g.offsetHeight+16)}),d.offset=h;let p=null,a=!1;const x=()=>{a||(d.visible=!1,setTimeout(()=>{if(a)return;a=!0;const l=D.findIndex(g=>g.id===c);l!==-1&&D.splice(l,1);try{f.unmount()}catch{}o.parentNode&&o.parentNode.removeChild(o)},300))},m=()=>{const l=t.duration??3e3;l>0&&(p=setTimeout(x,l))},y=()=>{p&&(clearTimeout(p),p=null)},f=e.createApp({render(){if(!d.visible)return null;const l=[e.h("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"20px",height:"20px",marginRight:"10px",fontSize:"16px",color:s.border}},s.icon),e.h("span",{style:{flex:"1",fontSize:"14px",color:"#606266",lineHeight:"1.4"}},t.message||"")];return t.showClose&&l.push(e.h("button",{style:{position:"absolute",top:"50%",right:"12px",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:g=>{g.stopPropagation(),x()}},"✕")),e.h("div",{class:["x-message",`x-message--${n}`,t.center?"is-center":"",t.showClose?"is-closable":""],style:{position:"fixed",left:"50%",top:`${d.offset}px`,transform:"translateX(-50%)",display:"flex",alignItems:"center",padding:t.showClose?"12px 40px 12px 16px":"12px 16px",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0,0,0,0.1)",minWidth:"280px",maxWidth:"480px",backgroundColor:s.bg,border:`1px solid ${s.border}`,zIndex:2e3+c,transition:"opacity 0.3s, transform 0.3s"},onMouseenter:y,onMouseleave:m},l)}});f.mount(o),e.nextTick(()=>{d.visible=!0,m()});const u={id:c,app:f,container:o,close:x};return D.push(u),{close:x}}function he(t){return q(typeof t=="string"?{message:t}:t)}const A=t=>c=>q({...typeof c=="string"?{message:c}:c,type:t}),j=Object.assign(he,{info:A("info"),success:A("success"),warning:A("warning"),error:A("error"),closeAll:pe}),ge=j,ve=me,ye={install(t){t.config.globalProperties.$message=j,t.provide("message",j)}},L=[],xe=()=>{L.slice().forEach(t=>t.close())},be={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}};function F(t){return new Promise(c=>{const o=document.createElement("div");document.body.appendChild(o);let r=!1;const n=e.defineComponent({name:"TMessageBox",setup(){const h=e.ref(!1),p=e.ref(t.inputValue??""),a=e.ref(""),x=2e3+L.length+1,m=g=>{r||(r=!0,h.value=!1,setTimeout(()=>{const i=L.findIndex(v=>v.container===o);i!==-1&&L.splice(i,1);try{s.unmount()}catch{}o.parentNode&&o.parentNode.removeChild(o),c({action:g,value:g==="confirm"?p.value:void 0})},300))},y=()=>{if(t.showInput&&t.inputPattern&&!t.inputPattern.test(p.value)){a.value=t.inputErrorMessage||"输入格式不正确";return}a.value="",m("confirm")},f=()=>{m("cancel")},u=()=>{m("close")},l=()=>{t.closeOnClickModal!==!1&&u()};return e.nextTick(()=>{h.value=!0}),{visible:h,inputValue:p,inputError:a,zIndex:x,handleConfirm:y,handleCancel:f,handleClose:u,handleMaskClick:l}},render(){if(!this.visible)return null;const h=t.type,p=h?be[h]:null,a=[];p&&a.push(e.h("span",{class:"x-message-box__icon",style:{color:p.color,marginRight:"10px",fontSize:"20px"}},p.icon)),a.push(e.h("span",{class:"x-message-box__title"},t.title||"提示")),t.showClose!==!1&&a.push(e.h("button",{class:"x-message-box__close",onClick:this.handleClose},"✕"));const x=[];x.push(e.h("div",{class:"x-message-box__content"},t.message||"")),t.showInput&&x.push(e.h("div",{class:"x-message-box__input",style:{marginTop:"12px"}},[e.h("input",{class:["x-message-box__input-inner",this.inputError?"is-error":""].filter(Boolean),type:t.inputType||"text",placeholder:t.inputPlaceholder||"请输入",value:this.inputValue,onInput:y=>{this.inputValue=y.target.value,this.inputError=""},onKeyup:y=>{y.key==="Enter"&&this.handleConfirm()}}),this.inputError?e.h("div",{class:"x-message-box__error",style:{color:"#f56c6c",fontSize:"12px",marginTop:"4px"}},this.inputError):null]));const m=[];return t.showCancelButton&&m.push(e.h("button",{class:"x-button p-button--default",onClick:this.handleCancel},t.cancelButtonText||"取消")),t.showConfirmButton!==!1&&m.push(e.h("button",{class:"x-button p-button--primary",onClick:this.handleConfirm,style:{marginLeft:"10px"}},t.confirmButtonText||"确定")),e.h("div",{class:["x-message-box-wrapper",t.center?"is-center":""],style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:this.zIndex},onClick:this.handleMaskClick},[e.h("div",{class:["x-message-box",t.customClass],style:{backgroundColor:"#fff",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0, 0, 0, 0.1)",minWidth:"300px",maxWidth:"500px"},onClick:y=>y.stopPropagation()},[e.h("div",{class:"x-message-box__header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid #eee"}},a),e.h("div",{class:"x-message-box__body",style:{padding:"20px",fontSize:"14px",color:"#606266"}},x),e.h("div",{class:"x-message-box__footer",style:{padding:"10px 20px 16px",textAlign:"right"}},m)])])}}),s=e.createApp(n);s.mount(o);const d={app:s,container:o,close:()=>{var p;const h=(p=s._instance)==null?void 0:p.proxy;h!=null&&h.handleClose&&h.handleClose()}};L.push(d)})}async function ke(t,c,o){return F({message:t,title:c,...o,showConfirmButton:!0,showCancelButton:!1})}async function Ce(t,c,o){return F({message:t,title:c,...o,showConfirmButton:!0,showCancelButton:!0})}async function we(t,c,o){return F({message:t,title:c,...o,showInput:!0,showConfirmButton:!0,showCancelButton:!0})}function Be(t){return F(t)}const M=Object.assign(Be,{alert:ke,confirm:Ce,prompt:we,closeAll:xe}),Ee=M,ze={install(t){t.config.globalProperties.$msgbox=M,t.config.globalProperties.$alert=M.alert,t.config.globalProperties.$confirm=M.confirm,t.config.globalProperties.$prompt=M.prompt,t.provide("messageBox",M)}},P=[];let Te=1;const Ne=()=>{P.slice().forEach(t=>t.close())},Ve={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}},Se=(t,c)=>{const o=P.filter(n=>n.position===t);let r=16;for(const n of o)if(n.id<c){const s=n.container.firstElementChild;s&&(r+=s.offsetHeight+16)}return r},$e=(t,c)=>{const o={position:"fixed",width:"330px",zIndex:"2010"};switch(t){case"top-right":o.top=`${c}px`,o.right="16px";break;case"top-left":o.top=`${c}px`,o.left="16px";break;case"bottom-right":o.bottom=`${c}px`,o.right="16px";break;case"bottom-left":o.bottom=`${c}px`,o.left="16px";break;default:o.top=`${c}px`,o.right="16px"}return o};function U(t){const c=Te++,o=t.position||"top-right",r=document.createElement("div");document.body.appendChild(r);let n=null,s=!1;const d=e.defineComponent({name:"TNotification",setup(){const a=e.ref(!1),x=()=>{s||(s=!0,a.value=!1,setTimeout(()=>{var g;const l=P.findIndex(i=>i.id===c);l!==-1&&P.splice(l,1),n&&clearTimeout(n),(g=t.onClose)==null||g.call(t);try{h.unmount()}catch{}r.parentNode&&r.parentNode.removeChild(r)},300))},m=()=>{const l=t.duration??4500;l>0&&(n=setTimeout(x,l))},y=()=>{n&&(clearTimeout(n),n=null)},f=e.computed(()=>(t.offset??0)+Se(o,c)),u=e.computed(()=>$e(o,f.value));return e.nextTick(()=>{a.value=!0,m()}),{visible:a,close:x,positionStyles:u,startTimer:m,clearTimer:y}},render(){if(!this.visible)return null;const a=t.type,x=a?Ve[a]:null,m=[];t.title&&m.push(e.h("div",{class:"x-notification__title",style:{fontWeight:"600",fontSize:"16px",color:"#303133",marginBottom:t.message?"6px":"0"}},t.title)),t.message&&(t.dangerouslyUseHTMLString?m.push(e.h("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"},innerHTML:t.message})):m.push(e.h("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"}},t.message)));const y=[];return x&&y.push(e.h("div",{class:"x-notification__icon",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",marginRight:"12px",fontSize:"18px",color:x.color}},x.icon)),y.push(e.h("div",{class:"x-notification__main",style:{flex:"1"}},m)),t.showClose!==!1&&y.push(e.h("button",{class:"x-notification__close",style:{position:"absolute",top:"18px",right:"15px",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:f=>{f.stopPropagation(),this.close()}},"✕")),e.h("div",{class:["x-notification",t.customClass],style:{...this.positionStyles,display:"flex",alignItems:"flex-start",padding:"14px 26px 14px 13px",borderRadius:"8px",backgroundColor:"#fff",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",transition:"opacity 0.3s, transform 0.3s",boxSizing:"border-box"},onMouseenter:this.clearTimer,onMouseleave:this.startTimer},y)}}),h=e.createApp(d);h.mount(r);const p={id:c,app:h,container:r,position:o,close:()=>{var x;const a=(x=h._instance)==null?void 0:x.proxy;a!=null&&a.close&&a.close()}};return P.push(p),{close:p.close}}function Me(t){return U(typeof t=="string"?{message:t}:t)}const H=t=>c=>U({...typeof c=="string"?{message:c}:c,type:t}),X=Object.assign(Me,{info:H("info"),success:H("success"),warning:H("warning"),error:H("error"),closeAll:Ne}),Ie=X,De={install(t){t.config.globalProperties.$notify=X,t.provide("notification",X)}};exports.Alert=le;exports.Backtop=ue;exports.Drawer=K;exports.DrawerForm=ne;exports.Message=ge;exports.MessageBox=Ee;exports.MessageComponent=ve;exports.Modal=Z;exports.Notification=Ie;exports.Popconfirm=de;exports.TMessage=ye;exports.TMessageBox=ze;exports.TNotification=De;exports.Tooltip=se;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),T=require("@xto/core"),Z=e.defineComponent({name:"XModal",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},title:{default:""},width:{default:"50%"},top:{default:"15vh"},modal:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},center:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","update:open","close","open","ok","cancel"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("modal"),{next:s}=T.useZIndex(),d=e.ref(s()),h=e.computed({get:()=>o.modelValue!==void 0?o.modelValue:o.open!==void 0?o.open:!1,set:u=>{r("update:modelValue",u),r("update:open",u)}}),p=e.ref(),a=()=>{h.value=!1,r("cancel"),r("close")},x=()=>{r("ok")},m=()=>{o.closeOnClickModal&&o.modal&&a()};T.useEscape(()=>{o.closeOnPressEscape&&h.value&&a()}),e.watch(()=>[o.modelValue,o.open],([u,l])=>{(u!==void 0?u:l)&&(d.value=s(),r("open"))},{immediate:!0});const y=e.computed(()=>({paddingTop:o.top})),f=e.computed(()=>({width:typeof o.width=="number"?`${o.width}px`:o.width,zIndex:d.value}));return(u,l)=>{const g=e.resolveComponent("x-button");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-modal-fade"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("wrapper")),style:e.normalizeStyle(y.value),onClick:m},[e.createElementVNode("div",{ref_key:"modalRef",ref:p,class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle(f.value),onClick:l[0]||(l[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(u.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("close")),onClick:a}," ✕ ",2)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("body"))},[e.renderSlot(u.$slots,"default")],2),u.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(u.$slots,"footer",{ok:x,cancel:a})],2)):u.$slots.footer?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.createVNode(g,{onClick:a},{default:e.withCtx(()=>[...l[1]||(l[1]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(g,{type:"primary",style:{"margin-left":"8px"},onClick:x},{default:e.withCtx(()=>[...l[2]||(l[2]=[e.createTextVNode("确定",-1)])]),_:1})],2))],6)],6)):e.createCommentVNode("",!0)]),_:3})])}}}),K=e.defineComponent({name:"XDrawer",inheritAttrs:!1,__name:"index",props:{modelValue:{type:Boolean,default:!1},title:{default:""},placement:{default:void 0},direction:{default:"rtl"},width:{default:void 0},size:{default:"30%"},withHeader:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","close","open"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("drawer"),s=e.ref(2e3),d=()=>{r("update:modelValue",!1),r("close")},h=()=>{o.closeOnClickModal&&d()},p=m=>{m.key==="Escape"&&o.modelValue&&d()};e.watch(()=>o.modelValue,m=>{m?(s.value=2e3+Math.floor(Math.random()*100),r("open"),document.addEventListener("keydown",p)):document.removeEventListener("keydown",p)});const a=e.computed(()=>({zIndex:s.value})),x=e.computed(()=>{const m=o.direction??o.placement??"rtl",y=o.size??o.width??"30%",f=typeof y=="number"?`${y}px`:y;return{ltr:{width:f,height:"100%"},rtl:{width:f,height:"100%"},ttb:{width:"100%",height:f},btt:{width:"100%",height:f}}[m]});return(m,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-drawer-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("overlay")),style:e.normalizeStyle(a.value),onClick:h},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(n).b(),e.unref(n).m(t.direction??t.placement??"rtl")]),style:e.normalizeStyle(x.value),onClick:y[0]||(y[0]=e.withModifiers(()=>{},["stop"]))},[t.withHeader?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(m.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("close")),onClick:d}," ✕ ",2)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(n).e("body"),m.$slots.footer&&e.unref(n).em("body","has-footer")])},[e.renderSlot(m.$slots,"default")],2),m.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(m.$slots,"footer")],2)):e.createCommentVNode("",!0)],6)],6),[[e.vShow,t.modelValue]])]),_:3})]))}}),Y={key:0,class:"required-mark"},G=["value","placeholder","disabled","onInput"],J=["value","placeholder","disabled","onInput"],Q=["value","placeholder","disabled","onInput"],ee=["value","disabled","onChange"],te=["value"],oe=["disabled","onClick"],ne=e.defineComponent({name:"XDrawerForm",__name:"index",props:{modelValue:{type:Boolean,default:!1},title:{default:"配置"},size:{default:"400px"},fields:{default:()=>[]},formData:{default:()=>({})},showConfirm:{type:Boolean,default:!0},showCancel:{type:Boolean,default:!0},confirmText:{default:"确认"},cancelText:{default:"取消"},disabled:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1}},emits:["update:modelValue","confirm","cancel","close","field-change"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("drawer-form"),s=e.ref({}),d=e.ref({});e.computed(()=>[n.b()]),e.watch(()=>o.formData,f=>{s.value={...f}},{immediate:!0,deep:!0});const h=e.computed(()=>typeof o.size=="number"?`${o.size}px`:o.size),p=()=>{r("update:modelValue",!1),r("close")},a=()=>{r("cancel"),p()},x=()=>{m()&&(r("confirm",s.value),p())},m=()=>{d.value={};for(const f of o.fields){if(f.required){const u=s.value[f.name];if(u==null||u===""){d.value[f.name]=`${f.label}为必填项`;continue}}if(f.rules)for(const u of f.rules){const l=s.value[f.name];u.type==="email"&&l&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(l)&&(d.value[f.name]=u.message),u.type==="minLength"&&l&&l.length<u.min&&(d.value[f.name]=u.message)}}return Object.keys(d.value).length===0},y=(f,u)=>{s.value[f]=u,r("field-change",f,u)};return(f,u)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"drawer-form-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("overlay")),onClick:p},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle({width:h.value}),onClick:u[0]||(u[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("title"))},e.toDisplayString(t.title),3),e.createElementVNode("button",{class:e.normalizeClass(e.unref(n).e("close")),onClick:p},"✕",2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("body"))},[!t.destroyOnClose||t.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("form"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,l=>(e.openBlock(),e.createElementBlock("div",{key:l.name,class:e.normalizeClass(e.unref(n).e("field"))},[e.createElementVNode("label",{class:e.normalizeClass(e.unref(n).e("label"))},[e.createTextVNode(e.toDisplayString(l.label)+" ",1),l.required?(e.openBlock(),e.createElementBlock("span",Y,"*")):e.createCommentVNode("",!0)],2),l.type==="input"?(e.openBlock(),e.createElementBlock("input",{key:0,class:e.normalizeClass([e.unref(n).e("input"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,onInput:g=>y(l.name,g.target.value)},null,42,G)):l.type==="textarea"?(e.openBlock(),e.createElementBlock("textarea",{key:1,class:e.normalizeClass([e.unref(n).e("textarea"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,rows:"4",onInput:g=>y(l.name,g.target.value)},null,42,J)):l.type==="number"?(e.openBlock(),e.createElementBlock("input",{key:2,type:"number",class:e.normalizeClass([e.unref(n).e("input"),{"has-error":d.value[l.name]}]),value:s.value[l.name],placeholder:l.placeholder,disabled:t.disabled||l.disabled,onInput:g=>y(l.name,Number(g.target.value))},null,42,Q)):l.type==="select"?(e.openBlock(),e.createElementBlock("select",{key:3,class:e.normalizeClass([e.unref(n).e("select"),{"has-error":d.value[l.name]}]),value:s.value[l.name],disabled:t.disabled||l.disabled,onChange:g=>y(l.name,g.target.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,g=>(e.openBlock(),e.createElementBlock("option",{key:g.value,value:g.value},e.toDisplayString(g.label),9,te))),128))],42,ee)):l.type==="switch"?(e.openBlock(),e.createElementBlock("div",{key:4,class:e.normalizeClass(e.unref(n).e("switch"))},[e.createElementVNode("button",{class:e.normalizeClass(["switch-btn",{"is-on":s.value[l.name]}]),disabled:t.disabled||l.disabled,onClick:g=>y(l.name,!s.value[l.name])},e.toDisplayString(s.value[l.name]?"开启":"关闭"),11,oe)],2)):e.createCommentVNode("",!0),d.value[l.name]?(e.openBlock(),e.createElementBlock("span",{key:5,class:e.normalizeClass(e.unref(n).e("error"))},e.toDisplayString(d.value[l.name]),3)):e.createCommentVNode("",!0)],2))),128))],2)):e.createCommentVNode("",!0)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("footer"))},[t.showCancel?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(n).e("cancel")),onClick:a},e.toDisplayString(t.cancelText),3)):e.createCommentVNode("",!0),t.showConfirm?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(e.unref(n).e("confirm")),onClick:x},e.toDisplayString(t.confirmText),3)):e.createCommentVNode("",!0)],2)],6)],2),[[e.vShow,t.modelValue]])]),_:1})]))}}),le=e.defineComponent({name:"XAlert",__name:"index",props:{type:{default:"info"},title:{default:""},description:{},closable:{type:Boolean,default:!0},showIcon:{type:Boolean,default:!1},center:{type:Boolean,default:!1}},emits:["close"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("alert"),s=e.ref(!0),d={success:"✓",warning:"⚠",error:"✕",info:"ℹ"},h=e.computed(()=>[n.b(),n.m(o.type),n.is("center",o.center),n.is("with-description",o.description)]),p=a=>{s.value=!1,r("close",a)};return(a,x)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-alert-fade"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(h.value)},[t.showIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("icon"))},e.toDisplayString(d[t.type]),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).e("content"))},[t.title||a.$slots.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("title"))},[e.renderSlot(a.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],2)):e.createCommentVNode("",!0),t.description||a.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("description"))},[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.description),1)])],2)):e.createCommentVNode("",!0)],2),t.closable?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(e.unref(n).e("close")),onClick:p}," ✕ ",2)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)]),_:3}))}}),se=e.defineComponent({name:"XTooltip",__name:"index",props:{content:{default:""},placement:{default:"top"},effect:{default:"dark"},disabled:{type:Boolean,default:!1},offset:{default:8},transition:{default:"fade"},visibleArrow:{type:Boolean,default:!0},trigger:{default:"hover"},openDelay:{default:0},closeDelay:{default:0}},emits:["update:visible","show","hide"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("tooltip"),s=e.ref(!1),d=e.ref(),h=e.ref();let p,a;const x=e.ref({}),m=()=>{if(!d.value||!h.value)return;const k=d.value.getBoundingClientRect(),N=h.value;N.style.visibility="hidden",N.style.display="block";const z=N.offsetWidth,S=N.offsetHeight,V=o.offset,W=window.innerWidth,j=window.innerHeight;let B=0,E=0,I=o.placement;switch(o.placement){case"top":B=k.top-S-V,E=k.left+(k.width-z)/2;break;case"bottom":B=k.bottom+V,E=k.left+(k.width-z)/2;break;case"left":B=k.top+(k.height-S)/2,E=k.left-z-V;break;case"right":B=k.top+(k.height-S)/2,E=k.right+V;break}o.placement==="top"&&B<0?(I="bottom",B=k.bottom+V):o.placement==="bottom"&&B+S>j?(I="top",B=k.top-S-V):o.placement==="left"&&E<0?(I="right",E=k.right+V):o.placement==="right"&&E+z>W&&(I="left",E=k.left-z-V),E<8&&(E=8),E+z>W-8&&(E=W-z-8),B<8&&(B=8),B+S>j-8&&(B=j-S-8),x.value={position:"fixed",top:`${B}px`,left:`${E}px`,visibility:"visible",zIndex:"2000"},y.value=I},y=e.ref(o.placement),f=()=>{o.disabled||(clearTimeout(a),p=setTimeout(()=>{s.value=!0,r("update:visible",!0),r("show"),e.nextTick(()=>{m()})},o.openDelay))},u=()=>{clearTimeout(p),a=setTimeout(()=>{s.value=!1,r("update:visible",!1),r("hide")},o.closeDelay)},l=()=>{s.value?u():f()},g=()=>{o.trigger==="hover"&&f()},i=()=>{o.trigger==="hover"&&u()},v=()=>{o.trigger==="click"&&l()},$=()=>{o.trigger==="focus"&&f()},w=()=>{o.trigger==="focus"&&u()},C=k=>{var N,z;o.trigger==="click"&&!((N=d.value)!=null&&N.contains(k.target))&&!((z=h.value)!=null&&z.contains(k.target))&&u()},b=()=>{s.value&&m()};e.watch(s,k=>{k?e.nextTick(()=>{m(),o.trigger==="click"&&document.addEventListener("click",C),window.addEventListener("scroll",b,!0),window.addEventListener("resize",b)}):(document.removeEventListener("click",C),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b))}),e.onUnmounted(()=>{clearTimeout(p),clearTimeout(a),document.removeEventListener("click",C),window.removeEventListener("scroll",b,!0),window.removeEventListener("resize",b)});const R=e.computed(()=>[n.b(),n.m(o.effect)]),O=e.computed(()=>[n.e("arrow"),n.e(`arrow-${y.value}`)]);return(k,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(n).e("wrapper"))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:d,class:e.normalizeClass(e.unref(n).e("trigger")),onMouseenter:g,onMouseleave:i,onClick:v,onFocus:$,onBlur:w},[e.renderSlot(k.$slots,"default")],34),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:`x-tooltip-${t.transition}`},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"tooltipRef",ref:h,class:e.normalizeClass(R.value),style:e.normalizeStyle(x.value),onMouseenter:g,onMouseleave:i},[e.renderSlot(k.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(t.content),1)]),t.visibleArrow?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(O.value)},null,2)):e.createCommentVNode("",!0)],38),[[e.vShow,s.value]])]),_:3},8,["name"])]))],2))}}),ae={class:"x-popconfirm-wrapper"},re={class:"x-popconfirm__main"},ie={class:"x-popconfirm__title"},ce={class:"x-popconfirm__action"},de=e.defineComponent({name:"XPopconfirm",__name:"index",props:{title:{default:""},confirmButtonText:{default:"确定"},cancelButtonText:{default:"取消"},confirmButtonType:{default:"primary"},cancelButtonType:{default:"default"},icon:{default:""},iconColor:{default:"#faad14"},hideIcon:{type:Boolean,default:!1},hideCancelButton:{type:Boolean,default:!1},hideConfirmButton:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},width:{default:200},placement:{default:"top"},offset:{default:12},showArrow:{type:Boolean,default:!0}},emits:["confirm","cancel"],setup(t,{emit:c}){const o=t,r=c,n=e.ref(!1),s=e.ref(null),d=e.ref(null),h=e.ref({}),p=()=>{if(!s.value||!d.value)return;const i=s.value.getBoundingClientRect(),v=d.value.getBoundingClientRect(),$=o.placement,w=o.offset;let C=0,b=0;switch($){case"top":C=i.top-v.height-w,b=i.left+(i.width-v.width)/2;break;case"top-start":C=i.top-v.height-w,b=i.left;break;case"top-end":C=i.top-v.height-w,b=i.right-v.width;break;case"bottom":C=i.bottom+w,b=i.left+(i.width-v.width)/2;break;case"bottom-start":C=i.bottom+w,b=i.left;break;case"bottom-end":C=i.bottom+w,b=i.right-v.width;break;case"left":C=i.top+(i.height-v.height)/2,b=i.left-v.width-w;break;case"left-start":C=i.top,b=i.left-v.width-w;break;case"left-end":C=i.bottom-v.height,b=i.left-v.width-w;break;case"right":C=i.top+(i.height-v.height)/2,b=i.right+w;break;case"right-start":C=i.top,b=i.right+w;break;case"right-end":C=i.bottom-v.height,b=i.right+w;break;default:C=i.top-v.height-w,b=i.left+(i.width-v.width)/2}const R=window.innerWidth,O=window.innerHeight;b<0&&(b=10),b+v.width>R&&(b=R-v.width-10),C<0&&(C=10),C+v.height>O&&(C=O-v.height-10),h.value={position:"fixed",top:`${C}px`,left:`${b}px`,zIndex:"2000"}},a=i=>{var v,$;n.value&&((v=s.value)!=null&&v.contains(i.target)||($=d.value)!=null&&$.contains(i.target)||(n.value=!1))},x=i=>{o.disabled||(i.stopPropagation(),n.value=!n.value,n.value&&setTimeout(p,0))},m=()=>{n.value=!1,r("confirm")},y=()=>{n.value=!1,r("cancel")},f=()=>{n.value&&p()},u=()=>{n.value&&p()};e.watch(n,i=>{i?(setTimeout(p,0),document.addEventListener("click",a),window.addEventListener("scroll",f,!0),window.addEventListener("resize",u)):(document.removeEventListener("click",a),window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",u))}),e.onUnmounted(()=>{document.removeEventListener("click",a),window.removeEventListener("scroll",f,!0),window.removeEventListener("resize",u)});const l=e.computed(()=>({width:typeof o.width=="number"?`${o.width}px`:o.width})),g=e.computed(()=>{const i=o.placement,v={};switch(i){case"top":case"top-start":case"top-end":v.bottom="-6px",v.transform="rotate(45deg)";break;case"bottom":case"bottom-start":case"bottom-end":v.top="-6px",v.transform="rotate(225deg)";break;case"left":case"left-start":case"left-end":v.right="-6px",v.transform="rotate(315deg)";break;case"right":case"right-start":case"right-end":v.left="-6px",v.transform="rotate(135deg)";break}return v});return(i,v)=>(e.openBlock(),e.createElementBlock("span",ae,[e.createElementVNode("span",{ref_key:"triggerRef",ref:s,class:"x-popconfirm-trigger",onClick:x},[e.renderSlot(i.$slots,"default")],512),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"x-popconfirm-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popperRef",ref:d,class:"x-popconfirm",style:e.normalizeStyle({...h.value,...l.value}),onClick:v[0]||(v[0]=e.withModifiers(()=>{},["stop"]))},[t.showArrow?(e.openBlock(),e.createElementBlock("span",{key:0,class:"x-popconfirm__arrow",style:e.normalizeStyle(g.value)},null,4)):e.createCommentVNode("",!0),e.createElementVNode("div",re,[t.hideIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:"x-popconfirm__icon",style:e.normalizeStyle({color:t.iconColor})},[e.renderSlot(i.$slots,"icon",{},()=>[e.createTextVNode(e.toDisplayString(t.icon||"⚠"),1)])],4)),e.createElementVNode("div",ie,[e.renderSlot(i.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])]),e.createElementVNode("div",ce,[t.hideCancelButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,class:"x-button p-button--default p-button--small",onClick:y},e.toDisplayString(t.cancelButtonText),1)),t.hideConfirmButton?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["x-button x-button--small",`x-button--${t.confirmButtonType}`]),onClick:m},e.toDisplayString(t.confirmButtonText),3))])],4)):e.createCommentVNode("",!0)]),_:3})]))]))}}),ue=e.defineComponent({name:"XBacktop",__name:"index",props:{visibilityHeight:{default:200},right:{default:40},bottom:{default:40}},emits:["click"],setup(t,{emit:c}){const o=t,r=c,n=T.useNamespace("backtop"),s=e.ref(!1),d=()=>{const a=window.scrollY||document.documentElement.scrollTop||document.body.scrollTop||0;s.value=a>=o.visibilityHeight},h=a=>{window.scrollTo({top:0,behavior:"smooth"}),r("click",a)},p=e.computed(()=>({right:`${o.right}px`,bottom:`${o.bottom}px`}));return e.onMounted(()=>{window.addEventListener("scroll",d,{passive:!0,capture:!0}),setTimeout(d,100)}),e.onUnmounted(()=>{window.removeEventListener("scroll",d,!0)}),(a,x)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(n).b()),style:e.normalizeStyle(p.value),onClick:h},[e.renderSlot(a.$slots,"default",{},()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("icon"))},"↑",2)])],6),[[e.vShow,s.value]])]),_:3}))}}),me=e.defineComponent({name:"XMessage",__name:"index",props:{message:{default:""},type:{default:"info"},duration:{default:3e3},showClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},offset:{default:20},customClass:{},onClose:{}},emits:["close","destroy"],setup(t,{expose:c,emit:o}){const r=t,n=o,s=T.useNamespace("message"),d=e.ref(!1),h=e.ref(T.nextMessageZIndex()),p={success:"✓",warning:"⚠",error:"✕",info:"ℹ"},a=e.computed(()=>[s.b(),s.m(r.type),s.is("center",r.center),s.is("closable",r.showClose),r.customClass]),x=e.computed(()=>({top:`${r.offset}px`,zIndex:h.value}));let m=null;const y=()=>{r.duration>0&&(m=setTimeout(()=>{u()},r.duration))},f=()=>{m&&(clearTimeout(m),m=null)},u=()=>{var g;d.value=!1,(g=r.onClose)==null||g.call(r),n("close")},l=()=>{n("destroy")};return e.onMounted(()=>{y(),d.value=!0}),e.onUnmounted(()=>{f()}),c({close:u}),(g,i)=>(e.openBlock(),e.createBlock(e.Transition,{name:"x-message-fade",onAfterLeave:l},{default:e.withCtx(()=>[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(a.value),style:e.normalizeStyle(x.value),onMouseenter:f,onMouseleave:y},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).e("icon"))},e.toDisplayString(p[t.type]),3),e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).e("content"))},[e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.message),1)])],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(s).e("close")),onClick:u}," ✕ ",2)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:3}))}}),D=[];let fe=1;const pe=()=>{D.slice().forEach(t=>t.close())};function q(t){const c=fe++,o=document.createElement("div");document.body.appendChild(o);const r={success:{bg:"#f0f9eb",border:"#67c23a",icon:"✓"},warning:{bg:"#fdf6ec",border:"#e6a23c",icon:"⚠"},error:{bg:"#fef0f0",border:"#f56c6c",icon:"✕"},info:{bg:"#f4f4f5",border:"#909399",icon:"ℹ"}},n=t.type||"info",s=r[n]||r.info,d=e.reactive({visible:!1,offset:t.offset??20});let h=t.offset??20;D.forEach(l=>{const g=l.container.firstElementChild;g&&g.offsetHeight&&(h+=g.offsetHeight+16)}),d.offset=h;let p=null,a=!1;const x=()=>{a||(d.visible=!1,setTimeout(()=>{if(a)return;a=!0;const l=D.findIndex(g=>g.id===c);l!==-1&&D.splice(l,1);try{f.unmount()}catch{}o.parentNode&&o.parentNode.removeChild(o)},300))},m=()=>{const l=t.duration??3e3;l>0&&(p=setTimeout(x,l))},y=()=>{p&&(clearTimeout(p),p=null)},f=e.createApp({render(){if(!d.visible)return null;const l=[e.h("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:"20px",height:"20px",marginRight:"10px",fontSize:"16px",color:s.border}},s.icon),e.h("span",{style:{flex:"1",fontSize:"14px",color:"#606266",lineHeight:"1.4"}},t.message||"")];return t.showClose&&l.push(e.h("button",{style:{position:"absolute",top:"50%",right:"12px",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:g=>{g.stopPropagation(),x()}},"✕")),e.h("div",{class:["x-message",`x-message--${n}`,t.center?"is-center":"",t.showClose?"is-closable":""],style:{position:"fixed",left:"50%",top:`${d.offset}px`,transform:"translateX(-50%)",display:"flex",alignItems:"center",padding:t.showClose?"12px 40px 12px 16px":"12px 16px",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0,0,0,0.1)",minWidth:"280px",maxWidth:"480px",backgroundColor:s.bg,border:`1px solid ${s.border}`,zIndex:2e3+c,transition:"opacity 0.3s, transform 0.3s"},onMouseenter:y,onMouseleave:m},l)}});f.mount(o),e.nextTick(()=>{d.visible=!0,m()});const u={id:c,app:f,container:o,close:x};return D.push(u),{close:x}}function he(t){return q(typeof t=="string"?{message:t}:t)}const A=t=>c=>q({...typeof c=="string"?{message:c}:c,type:t}),X=Object.assign(he,{info:A("info"),success:A("success"),warning:A("warning"),error:A("error"),closeAll:pe}),ge=X,ve=me,ye={install(t){t.config.globalProperties.$message=X,t.provide("message",X)}},L=[],xe=()=>{L.slice().forEach(t=>t.close())},be={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}};function F(t){return new Promise(c=>{const o=document.createElement("div");document.body.appendChild(o);let r=!1;const n=e.defineComponent({name:"TMessageBox",setup(){const h=e.ref(!1),p=e.ref(t.inputValue??""),a=e.ref(""),x=2e3+L.length+1,m=g=>{r||(r=!0,h.value=!1,setTimeout(()=>{const i=L.findIndex(v=>v.container===o);i!==-1&&L.splice(i,1);try{s.unmount()}catch{}o.parentNode&&o.parentNode.removeChild(o),c({action:g,value:g==="confirm"?p.value:void 0})},300))},y=()=>{if(t.showInput&&t.inputPattern&&!t.inputPattern.test(p.value)){a.value=t.inputErrorMessage||"输入格式不正确";return}a.value="",m("confirm")},f=()=>{m("cancel")},u=()=>{m("close")},l=()=>{t.closeOnClickModal!==!1&&u()};return e.nextTick(()=>{h.value=!0}),{visible:h,inputValue:p,inputError:a,zIndex:x,handleConfirm:y,handleCancel:f,handleClose:u,handleMaskClick:l}},render(){if(!this.visible)return null;const h=t.type,p=h?be[h]:null,a=[];p&&a.push(e.h("span",{class:"x-message-box__icon",style:{color:p.color,marginRight:"10px",fontSize:"20px"}},p.icon)),a.push(e.h("span",{class:"x-message-box__title"},t.title||"提示")),t.showClose!==!1&&a.push(e.h("button",{class:"x-message-box__close",onClick:this.handleClose},"✕"));const x=[];x.push(e.h("div",{class:"x-message-box__content"},t.message||"")),t.showInput&&x.push(e.h("div",{class:"x-message-box__input",style:{marginTop:"12px"}},[e.h("input",{class:["x-message-box__input-inner",this.inputError?"is-error":""].filter(Boolean),type:t.inputType||"text",placeholder:t.inputPlaceholder||"请输入",value:this.inputValue,onInput:y=>{this.inputValue=y.target.value,this.inputError=""},onKeyup:y=>{y.key==="Enter"&&this.handleConfirm()}}),this.inputError?e.h("div",{class:"x-message-box__error",style:{color:"#f56c6c",fontSize:"12px",marginTop:"4px"}},this.inputError):null]));const m=[];return t.showCancelButton&&m.push(e.h("button",{class:"x-button p-button--default",onClick:this.handleCancel},t.cancelButtonText||"取消")),t.showConfirmButton!==!1&&m.push(e.h("button",{class:"x-button p-button--primary",onClick:this.handleConfirm,style:{marginLeft:"10px"}},t.confirmButtonText||"确定")),e.h("div",{class:["x-message-box-wrapper",t.center?"is-center":""],style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",zIndex:this.zIndex},onClick:this.handleMaskClick},[e.h("div",{class:["x-message-box",t.customClass],style:{backgroundColor:"#fff",borderRadius:"4px",boxShadow:"0 2px 12px rgba(0, 0, 0, 0.1)",minWidth:"300px",maxWidth:"500px"},onClick:y=>y.stopPropagation()},[e.h("div",{class:"x-message-box__header",style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 20px",borderBottom:"1px solid #eee"}},a),e.h("div",{class:"x-message-box__body",style:{padding:"20px",fontSize:"14px",color:"#606266"}},x),e.h("div",{class:"x-message-box__footer",style:{padding:"10px 20px 16px",textAlign:"right"}},m)])])}}),s=e.createApp(n);s.mount(o);const d={app:s,container:o,close:()=>{var p;const h=(p=s._instance)==null?void 0:p.proxy;h!=null&&h.handleClose&&h.handleClose()}};L.push(d)})}async function ke(t,c,o){return F({message:t,title:c,...o,showConfirmButton:!0,showCancelButton:!1})}async function Ce(t,c,o){return F({message:t,title:c,...o,showConfirmButton:!0,showCancelButton:!0})}async function we(t,c,o){return F({message:t,title:c,...o,showInput:!0,showConfirmButton:!0,showCancelButton:!0})}function Be(t){return F(t)}const M=Object.assign(Be,{alert:ke,confirm:Ce,prompt:we,closeAll:xe}),Ee=M,ze={install(t){t.config.globalProperties.$msgbox=M,t.config.globalProperties.$alert=M.alert,t.config.globalProperties.$confirm=M.confirm,t.config.globalProperties.$prompt=M.prompt,t.provide("messageBox",M)}},P=[];let Te=1;const Ne=()=>{P.slice().forEach(t=>t.close())},Ve={success:{icon:"✓",color:"#67c23a"},warning:{icon:"⚠",color:"#e6a23c"},error:{icon:"✕",color:"#f56c6c"},info:{icon:"ℹ",color:"#909399"}},Se=(t,c)=>{const o=P.filter(n=>n.position===t);let r=16;for(const n of o)if(n.id<c){const s=n.container.firstElementChild;s&&(r+=s.offsetHeight+16)}return r},$e=(t,c)=>{const o={position:"fixed",width:"330px",zIndex:"2010"};switch(t){case"top-right":o.top=`${c}px`,o.right="16px";break;case"top-left":o.top=`${c}px`,o.left="16px";break;case"bottom-right":o.bottom=`${c}px`,o.right="16px";break;case"bottom-left":o.bottom=`${c}px`,o.left="16px";break;default:o.top=`${c}px`,o.right="16px"}return o};function U(t){const c=Te++,o=t.position||"top-right",r=document.createElement("div");document.body.appendChild(r);let n=null,s=!1;const d=e.defineComponent({name:"TNotification",setup(){const a=e.ref(!1),x=()=>{s||(s=!0,a.value=!1,setTimeout(()=>{var g;const l=P.findIndex(i=>i.id===c);l!==-1&&P.splice(l,1),n&&clearTimeout(n),(g=t.onClose)==null||g.call(t);try{h.unmount()}catch{}r.parentNode&&r.parentNode.removeChild(r)},300))},m=()=>{const l=t.duration??4500;l>0&&(n=setTimeout(x,l))},y=()=>{n&&(clearTimeout(n),n=null)},f=e.computed(()=>(t.offset??0)+Se(o,c)),u=e.computed(()=>$e(o,f.value));return e.nextTick(()=>{a.value=!0,m()}),{visible:a,close:x,positionStyles:u,startTimer:m,clearTimer:y}},render(){if(!this.visible)return null;const a=t.type,x=a?Ve[a]:null,m=[];t.title&&m.push(e.h("div",{class:"x-notification__title",style:{fontWeight:"600",fontSize:"16px",color:"#303133",marginBottom:t.message?"6px":"0"}},t.title)),t.message&&(t.dangerouslyUseHTMLString?m.push(e.h("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"},innerHTML:t.message})):m.push(e.h("div",{class:"x-notification__content",style:{fontSize:"14px",color:"#606266",lineHeight:"1.5"}},t.message)));const y=[];return x&&y.push(e.h("div",{class:"x-notification__icon",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"24px",height:"24px",marginRight:"12px",fontSize:"18px",color:x.color}},x.icon)),y.push(e.h("div",{class:"x-notification__main",style:{flex:"1"}},m)),t.showClose!==!1&&y.push(e.h("button",{class:"x-notification__close",style:{position:"absolute",top:"18px",right:"15px",background:"none",border:"none",cursor:"pointer",fontSize:"14px",color:"#909399",padding:"0"},onClick:f=>{f.stopPropagation(),this.close()}},"✕")),e.h("div",{class:["x-notification",t.customClass],style:{...this.positionStyles,display:"flex",alignItems:"flex-start",padding:"14px 26px 14px 13px",borderRadius:"8px",backgroundColor:"#fff",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",transition:"opacity 0.3s, transform 0.3s",boxSizing:"border-box"},onMouseenter:this.clearTimer,onMouseleave:this.startTimer},y)}}),h=e.createApp(d);h.mount(r);const p={id:c,app:h,container:r,position:o,close:()=>{var x;const a=(x=h._instance)==null?void 0:x.proxy;a!=null&&a.close&&a.close()}};return P.push(p),{close:p.close}}function Me(t){return U(typeof t=="string"?{message:t}:t)}const H=t=>c=>U({...typeof c=="string"?{message:c}:c,type:t}),_=Object.assign(Me,{info:H("info"),success:H("success"),warning:H("warning"),error:H("error"),closeAll:Ne}),Ie=_,De={install(t){t.config.globalProperties.$notify=_,t.provide("notification",_)}};exports.Alert=le;exports.Backtop=ue;exports.Drawer=K;exports.DrawerForm=ne;exports.Message=ge;exports.MessageBox=Ee;exports.MessageComponent=ve;exports.Modal=Z;exports.Notification=Ie;exports.Popconfirm=de;exports.TMessage=ye;exports.TMessageBox=ze;exports.TNotification=De;exports.Tooltip=se;
|
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.x-modal{position:relative;margin:0 auto 20px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000026;max-height:43vh;display:flex;flex-direction:column}.x-modal__wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center}.x-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8);flex-shrink:0}.x-modal__title{font-size:15px;font-weight:500;color:var(--color-text-primary, #303133)}.x-modal__close{background:none;border:none;font-size:16px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-modal__close:hover{color:var(--color-primary, #409eff)}.x-modal__body{padding:16px;color:var(--color-text-regular, #606266);font-size:14px;overflow-y:auto;flex:1}.x-modal__footer{padding:10px 16px 14px;text-align:right;flex-shrink:0}.x-modal-fade-enter-active,.x-modal-fade-leave-active{transition:opacity .3s ease}.x-modal-fade-enter-from,.x-modal-fade-leave-to{opacity:0}.x-drawer__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080}.x-drawer{position:fixed;top:0;right:0;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;transition:transform .3s}.x-drawer--ltr{top:0;right:auto;left:0}.x-drawer--rtl{top:0;right:0;left:auto}.x-drawer--ttb{top:0;left:0;right:auto}.x-drawer--btt{bottom:0;top:auto;left:0;right:auto}.x-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8)}.x-drawer__title{font-size:18px;font-weight:500;color:var(--color-text-primary, #303133)}.x-drawer__close{background:none;border:none;font-size:20px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-drawer__close:hover{color:var(--color-primary, #409eff)}.x-drawer__body{padding:20px;height:calc(100% - 60px);overflow-y:auto}.x-drawer__footer{padding:16px 20px;border-top:1px solid var(--color-border-lighter, #e8e8e8);text-align:right}.x-drawer-fade-enter-active,.x-drawer-fade-leave-active{transition:opacity .3s}.x-drawer-fade-enter-active .x-drawer,.x-drawer-fade-leave-active .x-drawer{transition:transform .3s}.x-drawer-fade-enter-from,.x-drawer-fade-leave-to{opacity:0}.x-drawer-fade-enter-from .x-drawer--ltr,.x-drawer-fade-leave-to .x-drawer--ltr{transform:translate(-100%)}.x-drawer-fade-enter-from .x-drawer--rtl,.x-drawer-fade-leave-to .x-drawer--rtl{transform:translate(100%)}.x-drawer-fade-enter-from .x-drawer--ttb,.x-drawer-fade-leave-to .x-drawer--ttb{transform:translateY(-100%)}.x-drawer-fade-enter-from .x-drawer--btt,.x-drawer-fade-leave-to .x-drawer--btt{transform:translateY(100%)}.drawer-form__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000}.drawer-form{position:fixed;top:0;right:0;height:100%;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;display:flex;flex-direction:column}.drawer-form__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__title{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133)}.drawer-form__close{background:none;border:none;font-size:18px;color:var(--color-text-secondary, #909399);cursor:pointer}.drawer-form__close:hover{color:var(--color-primary, #409eff)}.drawer-form__body{flex:1;padding:20px;overflow-y:auto}.drawer-form__form{display:flex;flex-direction:column;gap:16px}.drawer-form__field{display:flex;flex-direction:column;gap:8px}.drawer-form__label{font-size:14px;color:var(--color-text-regular, #606266)}.drawer-form__label .required-mark{color:var(--color-danger, #f56c6c);margin-left:4px}.drawer-form__input,.drawer-form__textarea,.drawer-form__select{padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.drawer-form__input:focus,.drawer-form__textarea:focus,.drawer-form__select:focus{border-color:var(--color-primary, #409eff)}.drawer-form__input:disabled,.drawer-form__textarea:disabled,.drawer-form__select:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.drawer-form__input.has-error,.drawer-form__textarea.has-error,.drawer-form__select.has-error{border-color:var(--color-danger, #f56c6c)}.drawer-form__textarea{resize:vertical;min-height:80px}.drawer-form__select{cursor:pointer}.drawer-form__switch .switch-btn{padding:8px 16px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-regular, #606266);cursor:pointer}.drawer-form__switch .switch-btn.is-on{background:var(--color-primary, #409eff);color:#fff;border-color:var(--color-primary, #409eff)}.drawer-form__switch .switch-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-form__error{font-size:12px;color:var(--color-danger, #f56c6c)}.drawer-form__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__cancel{padding:8px 16px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;color:var(--color-text-regular, #606266);font-size:14px;cursor:pointer}.drawer-form__cancel:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.drawer-form__confirm{padding:8px 16px;background:var(--color-primary, #409eff);border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.drawer-form__confirm:hover{background:var(--color-primary-light, #79bbff)}.drawer-form-fade-enter-active,.drawer-form-fade-leave-active{transition:opacity .3s}.drawer-form-fade-enter-active .drawer-form,.drawer-form-fade-leave-active .drawer-form{transition:transform .3s}.drawer-form-fade-enter-from,.drawer-form-fade-leave-to{opacity:0}.drawer-form-fade-enter-from .drawer-form,.drawer-form-fade-leave-to .drawer-form{transform:translate(100%)}.x-alert{position:relative;padding:12px 16px;margin-bottom:16px;border-radius:4px;display:flex;align-items:flex-start;transition:opacity .3s}.x-alert--success{background-color:#e1f3d8;color:#67c23a}.x-alert--success .x-alert__icon{color:#67c23a}.x-alert--warning{background-color:#fdf6ec;color:#e6a23c}.x-alert--warning .x-alert__icon{color:#e6a23c}.x-alert--error{background-color:#fef0f0;color:#f56c6c}.x-alert--error .x-alert__icon{color:#f56c6c}.x-alert--info{background-color:#f4f4f5;color:#909399}.x-alert--info .x-alert__icon{color:#909399}.x-alert.is-center{justify-content:center;text-align:center}.x-alert.is-with-description{padding:14px 16px}.x-alert.is-with-description .x-alert__title{font-weight:500;font-size:16px}.x-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px}.x-alert__content{flex:1}.x-alert__title{display:block;font-size:14px;font-weight:500}.x-alert__description{display:block;font-size:14px;margin-top:6px;opacity:.8}.x-alert__close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.6}.x-alert__close:hover{opacity:1}.x-alert-fade-enter-active,.x-alert-fade-leave-active{transition:opacity .2s ease}.x-alert-fade-enter-from,.x-alert-fade-leave-to{opacity:0}.x-tooltip{padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;max-width:300px;word-wrap:break-word;position:fixed}.x-tooltip--dark{background-color:#303133;color:#fff;box-shadow:0 2px 8px #00000026}.x-tooltip--dark .x-tooltip__arrow--top{border-top-color:#303133}.x-tooltip--dark .x-tooltip__arrow--bottom{border-bottom-color:#303133}.x-tooltip--dark .x-tooltip__arrow--left{border-left-color:#303133}.x-tooltip--dark .x-tooltip__arrow--right{border-right-color:#303133}.x-tooltip--light{background-color:#fff;color:#303133;box-shadow:0 2px 12px #0000001f}.x-tooltip--light .x-tooltip__arrow--top{border-top-color:#fff}.x-tooltip--light .x-tooltip__arrow--bottom{border-bottom-color:#fff}.x-tooltip--light .x-tooltip__arrow--left{border-left-color:#fff}.x-tooltip--light .x-tooltip__arrow--right{border-right-color:#fff}.x-tooltip__wrapper,.x-tooltip__trigger{display:inline-block}.x-tooltip__arrow{position:absolute;width:0;height:0;border:6px solid transparent}.x-tooltip__arrow--top{bottom:-12px;left:50%;transform:translate(-50%);border-bottom:none}.x-tooltip__arrow--bottom{top:-12px;left:50%;transform:translate(-50%);border-top:none}.x-tooltip__arrow--left{right:-12px;top:50%;transform:translateY(-50%);border-right:none}.x-tooltip__arrow--right{left:-12px;top:50%;transform:translateY(-50%);border-left:none}.x-tooltip-fade-enter-active,.x-tooltip-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.x-tooltip-fade-enter-from,.x-tooltip-fade-leave-to{opacity:0;transform:scale(.9)}.x-popconfirm-wrapper,.x-popconfirm-trigger{display:inline-block}.x-popconfirm{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:12px 16px;box-sizing:border-box}.x-popconfirm__arrow{position:absolute;width:12px;height:12px;background:#fff;box-shadow:-1px -1px 2px #0000000d}.x-popconfirm__main{display:flex;align-items:flex-start;margin-bottom:12px}.x-popconfirm__icon{display:flex;align-items:center;justify-content:center;font-size:16px;margin-right:8px;flex-shrink:0}.x-popconfirm__title{font-size:14px;color:#606266;line-height:1.4}.x-popconfirm__action{display:flex;justify-content:flex-end;gap:8px}.x-popconfirm-fade-enter-active,.x-popconfirm-fade-leave-active{transition:opacity .2s,transform .2s}.x-popconfirm-fade-enter-from,.x-popconfirm-fade-leave-to{opacity:0;transform:scale(.9)}.x-backtop{position:fixed;width:40px;height:40px;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1000}.x-backtop:hover{background-color:#f5f5f5;box-shadow:0 4px 12px #00000026}.x-backtop:active{transform:scale(.95)}.x-backtop__icon{font-size:20px;color:#606266;font-weight:700}.x-fade-enter-active,.x-fade-leave-active{transition:opacity .3s,transform .3s}.x-fade-enter-from,.x-fade-leave-to{opacity:0;transform:translateY(20px)}.x-message{position:fixed;left:50%;top:20px;transform:translate(-50%);display:flex;align-items:center;padding:12px 16px;border-radius:4px;box-shadow:0 2px 12px #0000001a;transition:opacity .3s,transform .3s,top .3s;min-width:280px;max-width:480px}.x-message--success{background-color:#f0f9eb;border:1px solid #67c23a}.x-message--success .x-message__icon{color:#67c23a}.x-message--warning{background-color:#fdf6ec;border:1px solid #e6a23c}.x-message--warning .x-message__icon{color:#e6a23c}.x-message--error{background-color:#fef0f0;border:1px solid #f56c6c}.x-message--error .x-message__icon{color:#f56c6c}.x-message--info{background-color:#f4f4f5;border:1px solid #909399}.x-message--info .x-message__icon{color:#909399}.x-message.is-center{justify-content:center;text-align:center}.x-message.is-closable{padding-right:40px}.x-message__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px;flex-shrink:0}.x-message__content{flex:1;font-size:14px;color:#606266;line-height:1.4;word-break:break-word}.x-message__close{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:#909399;padding:0}.x-message__close:hover{color:#606266}.x-message-fade-enter-active,.x-message-fade-leave-active{transition:opacity .3s,transform .3s}.x-message-fade-enter-from,.x-message-fade-leave-to{opacity:0;transform:translate(-50%) translateY(-100%)}
|
|
1
|
+
.x-modal{position:relative;margin:0 auto 20px;background-color:var(--bg-color, #fff);border-radius:8px;box-shadow:0 2px 12px #00000026;max-height:43vh;display:flex;flex-direction:column}.x-modal__wrapper{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000;display:flex;justify-content:center}.x-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8);flex-shrink:0}.x-modal__title{font-size:15px;font-weight:500;color:var(--color-text-primary, #303133)}.x-modal__close{background:none;border:none;font-size:16px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-modal__close:hover{color:var(--color-primary, #409eff)}.x-modal__body{padding:16px;color:var(--color-text-regular, #606266);font-size:14px;overflow-y:auto;flex:1}.x-modal__footer{padding:10px 16px 14px;text-align:right;flex-shrink:0}.x-modal-fade-enter-active,.x-modal-fade-leave-active{transition:opacity .3s ease}.x-modal-fade-enter-from,.x-modal-fade-leave-to{opacity:0}.x-drawer__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080}.x-drawer{position:fixed;top:0;right:0;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;transition:transform .3s}.x-drawer--ltr{top:0;right:auto;left:0}.x-drawer--rtl{top:0;right:0;left:auto}.x-drawer--ttb{top:0;left:0;right:auto}.x-drawer--btt{bottom:0;top:auto;left:0;right:auto}.x-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #e8e8e8)}.x-drawer__title{font-size:18px;font-weight:500;color:var(--color-text-primary, #303133)}.x-drawer__close{background:none;border:none;font-size:20px;color:var(--color-text-secondary, #909399);cursor:pointer}.x-drawer__close:hover{color:var(--color-primary, #409eff)}.x-drawer__body{padding:20px;height:calc(100% - 60px);overflow-y:auto}.x-drawer__body--has-footer{height:calc(100% - 120px)}.x-drawer__footer{padding:16px 20px;border-top:1px solid var(--color-border-lighter, #e8e8e8);text-align:right}.x-drawer-fade-enter-active,.x-drawer-fade-leave-active{transition:opacity .3s}.x-drawer-fade-enter-active .x-drawer,.x-drawer-fade-leave-active .x-drawer{transition:transform .3s}.x-drawer-fade-enter-from,.x-drawer-fade-leave-to{opacity:0}.x-drawer-fade-enter-from .x-drawer--ltr,.x-drawer-fade-leave-to .x-drawer--ltr{transform:translate(-100%)}.x-drawer-fade-enter-from .x-drawer--rtl,.x-drawer-fade-leave-to .x-drawer--rtl{transform:translate(100%)}.x-drawer-fade-enter-from .x-drawer--ttb,.x-drawer-fade-leave-to .x-drawer--ttb{transform:translateY(-100%)}.x-drawer-fade-enter-from .x-drawer--btt,.x-drawer-fade-leave-to .x-drawer--btt{transform:translateY(100%)}.drawer-form__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:2000}.drawer-form{position:fixed;top:0;right:0;height:100%;background-color:var(--bg-color, #fff);box-shadow:0 8px 10px -5px #0003;display:flex;flex-direction:column}.drawer-form__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__title{font-size:16px;font-weight:600;color:var(--color-text-primary, #303133)}.drawer-form__close{background:none;border:none;font-size:18px;color:var(--color-text-secondary, #909399);cursor:pointer}.drawer-form__close:hover{color:var(--color-primary, #409eff)}.drawer-form__body{flex:1;padding:20px;overflow-y:auto}.drawer-form__form{display:flex;flex-direction:column;gap:16px}.drawer-form__field{display:flex;flex-direction:column;gap:8px}.drawer-form__label{font-size:14px;color:var(--color-text-regular, #606266)}.drawer-form__label .required-mark{color:var(--color-danger, #f56c6c);margin-left:4px}.drawer-form__input,.drawer-form__textarea,.drawer-form__select{padding:8px 12px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;font-size:14px;outline:none;transition:border-color .2s}.drawer-form__input:focus,.drawer-form__textarea:focus,.drawer-form__select:focus{border-color:var(--color-primary, #409eff)}.drawer-form__input:disabled,.drawer-form__textarea:disabled,.drawer-form__select:disabled{background:var(--color-fill-light, #f5f7fa);cursor:not-allowed}.drawer-form__input.has-error,.drawer-form__textarea.has-error,.drawer-form__select.has-error{border-color:var(--color-danger, #f56c6c)}.drawer-form__textarea{resize:vertical;min-height:80px}.drawer-form__select{cursor:pointer}.drawer-form__switch .switch-btn{padding:8px 16px;border:1px solid var(--color-border, #dcdfe6);border-radius:4px;background:var(--color-fill-light, #f5f7fa);color:var(--color-text-regular, #606266);cursor:pointer}.drawer-form__switch .switch-btn.is-on{background:var(--color-primary, #409eff);color:#fff;border-color:var(--color-primary, #409eff)}.drawer-form__switch .switch-btn:disabled{opacity:.5;cursor:not-allowed}.drawer-form__error{font-size:12px;color:var(--color-danger, #f56c6c)}.drawer-form__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border-lighter, #ebeef5)}.drawer-form__cancel{padding:8px 16px;background:var(--bg-color, #fff);border:1px solid var(--color-border, #dcdfe6);border-radius:4px;color:var(--color-text-regular, #606266);font-size:14px;cursor:pointer}.drawer-form__cancel:hover{color:var(--color-primary, #409eff);border-color:var(--color-primary, #409eff)}.drawer-form__confirm{padding:8px 16px;background:var(--color-primary, #409eff);border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer}.drawer-form__confirm:hover{background:var(--color-primary-light, #79bbff)}.drawer-form-fade-enter-active,.drawer-form-fade-leave-active{transition:opacity .3s}.drawer-form-fade-enter-active .drawer-form,.drawer-form-fade-leave-active .drawer-form{transition:transform .3s}.drawer-form-fade-enter-from,.drawer-form-fade-leave-to{opacity:0}.drawer-form-fade-enter-from .drawer-form,.drawer-form-fade-leave-to .drawer-form{transform:translate(100%)}.x-alert{position:relative;padding:12px 16px;margin-bottom:16px;border-radius:4px;display:flex;align-items:flex-start;transition:opacity .3s}.x-alert--success{background-color:#e1f3d8;color:#67c23a}.x-alert--success .x-alert__icon{color:#67c23a}.x-alert--warning{background-color:#fdf6ec;color:#e6a23c}.x-alert--warning .x-alert__icon{color:#e6a23c}.x-alert--error{background-color:#fef0f0;color:#f56c6c}.x-alert--error .x-alert__icon{color:#f56c6c}.x-alert--info{background-color:#f4f4f5;color:#909399}.x-alert--info .x-alert__icon{color:#909399}.x-alert.is-center{justify-content:center;text-align:center}.x-alert.is-with-description{padding:14px 16px}.x-alert.is-with-description .x-alert__title{font-weight:500;font-size:16px}.x-alert__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px}.x-alert__content{flex:1}.x-alert__title{display:block;font-size:14px;font-weight:500}.x-alert__description{display:block;font-size:14px;margin-top:6px;opacity:.8}.x-alert__close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.6}.x-alert__close:hover{opacity:1}.x-alert-fade-enter-active,.x-alert-fade-leave-active{transition:opacity .2s ease}.x-alert-fade-enter-from,.x-alert-fade-leave-to{opacity:0}.x-tooltip{padding:8px 12px;font-size:13px;line-height:1.4;border-radius:4px;max-width:300px;word-wrap:break-word;position:fixed}.x-tooltip--dark{background-color:#303133;color:#fff;box-shadow:0 2px 8px #00000026}.x-tooltip--dark .x-tooltip__arrow--top{border-top-color:#303133}.x-tooltip--dark .x-tooltip__arrow--bottom{border-bottom-color:#303133}.x-tooltip--dark .x-tooltip__arrow--left{border-left-color:#303133}.x-tooltip--dark .x-tooltip__arrow--right{border-right-color:#303133}.x-tooltip--light{background-color:#fff;color:#303133;box-shadow:0 2px 12px #0000001f}.x-tooltip--light .x-tooltip__arrow--top{border-top-color:#fff}.x-tooltip--light .x-tooltip__arrow--bottom{border-bottom-color:#fff}.x-tooltip--light .x-tooltip__arrow--left{border-left-color:#fff}.x-tooltip--light .x-tooltip__arrow--right{border-right-color:#fff}.x-tooltip__wrapper,.x-tooltip__trigger{display:inline-block}.x-tooltip__arrow{position:absolute;width:0;height:0;border:6px solid transparent}.x-tooltip__arrow--top{bottom:-12px;left:50%;transform:translate(-50%);border-bottom:none}.x-tooltip__arrow--bottom{top:-12px;left:50%;transform:translate(-50%);border-top:none}.x-tooltip__arrow--left{right:-12px;top:50%;transform:translateY(-50%);border-right:none}.x-tooltip__arrow--right{left:-12px;top:50%;transform:translateY(-50%);border-left:none}.x-tooltip-fade-enter-active,.x-tooltip-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.x-tooltip-fade-enter-from,.x-tooltip-fade-leave-to{opacity:0;transform:scale(.9)}.x-popconfirm-wrapper,.x-popconfirm-trigger{display:inline-block}.x-popconfirm{background:#fff;border-radius:4px;box-shadow:0 2px 12px #0000001a;padding:12px 16px;box-sizing:border-box}.x-popconfirm__arrow{position:absolute;width:12px;height:12px;background:#fff;box-shadow:-1px -1px 2px #0000000d}.x-popconfirm__main{display:flex;align-items:flex-start;margin-bottom:12px}.x-popconfirm__icon{display:flex;align-items:center;justify-content:center;font-size:16px;margin-right:8px;flex-shrink:0}.x-popconfirm__title{font-size:14px;color:#606266;line-height:1.4}.x-popconfirm__action{display:flex;justify-content:flex-end;gap:8px}.x-popconfirm-fade-enter-active,.x-popconfirm-fade-leave-active{transition:opacity .2s,transform .2s}.x-popconfirm-fade-enter-from,.x-popconfirm-fade-leave-to{opacity:0;transform:scale(.9)}.x-backtop{position:fixed;width:40px;height:40px;border-radius:4px;background-color:#fff;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;z-index:1000}.x-backtop:hover{background-color:#f5f5f5;box-shadow:0 4px 12px #00000026}.x-backtop:active{transform:scale(.95)}.x-backtop__icon{font-size:20px;color:#606266;font-weight:700}.x-fade-enter-active,.x-fade-leave-active{transition:opacity .3s,transform .3s}.x-fade-enter-from,.x-fade-leave-to{opacity:0;transform:translateY(20px)}.x-message{position:fixed;left:50%;top:20px;transform:translate(-50%);display:flex;align-items:center;padding:12px 16px;border-radius:4px;box-shadow:0 2px 12px #0000001a;transition:opacity .3s,transform .3s,top .3s;min-width:280px;max-width:480px}.x-message--success{background-color:#f0f9eb;border:1px solid #67c23a}.x-message--success .x-message__icon{color:#67c23a}.x-message--warning{background-color:#fdf6ec;border:1px solid #e6a23c}.x-message--warning .x-message__icon{color:#e6a23c}.x-message--error{background-color:#fef0f0;border:1px solid #f56c6c}.x-message--error .x-message__icon{color:#f56c6c}.x-message--info{background-color:#f4f4f5;border:1px solid #909399}.x-message--info .x-message__icon{color:#909399}.x-message.is-center{justify-content:center;text-align:center}.x-message.is-closable{padding-right:40px}.x-message__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:10px;font-size:16px;flex-shrink:0}.x-message__content{flex:1;font-size:14px;color:#606266;line-height:1.4;word-break:break-word}.x-message__close{position:absolute;top:50%;right:12px;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:#909399;padding:0}.x-message__close:hover{color:#606266}.x-message-fade-enter-active,.x-message-fade-leave-active{transition:opacity .3s,transform .3s}.x-message-fade-enter-from,.x-message-fade-leave-to{opacity:0;transform:translate(-50%) translateY(-100%)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xto/feedback",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Xto Feedback - Feedback components",
|
|
5
5
|
"main": "./lib/index.cjs",
|
|
6
6
|
"module": "./es/index.mjs",
|
|
@@ -20,9 +20,6 @@
|
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"access": "public"
|
|
22
22
|
},
|
|
23
|
-
"scripts": {
|
|
24
|
-
"build": "vite build"
|
|
25
|
-
},
|
|
26
23
|
"dependencies": {
|
|
27
24
|
"@xto/core": "^1.0.0"
|
|
28
25
|
},
|
|
@@ -32,10 +29,13 @@
|
|
|
32
29
|
"devDependencies": {
|
|
33
30
|
"@vitejs/plugin-vue": "^5.0.4",
|
|
34
31
|
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
|
35
|
-
"@xto/build": "workspace:*",
|
|
36
32
|
"typescript": "^5.4.2",
|
|
37
33
|
"vite": "^5.2.0",
|
|
38
34
|
"vitest": "^1.4.0",
|
|
39
|
-
"vue": "^3.4.21"
|
|
35
|
+
"vue": "^3.4.21",
|
|
36
|
+
"@xto/build": "0.1.0"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "vite build"
|
|
40
40
|
}
|
|
41
|
-
}
|
|
41
|
+
}
|