django-vue3-admin-web/node_modules/.vite/deps/chunk-O6L55DMN.js
2025-10-20 21:21:14 +08:00

1532 lines
48 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {
Gl,
Zr,
_t,
hp,
lt,
wu
} from "./chunk-KE6WE6IM.js";
import {
B,
i
} from "./chunk-USOO7D3G.js";
import {
cloneDeep_default,
merge_default
} from "./chunk-LK7GAOJV.js";
import {
Fragment,
computed,
createBaseVNode,
createBlock,
createElementBlock,
createTextVNode,
createVNode,
defineComponent,
guardReactiveProps,
mergeProps,
normalizeProps,
openBlock,
ref,
renderList,
resolveComponent,
resolveDynamicComponent,
unref,
watch,
withCtx
} from "./chunk-YI6SOFIT.js";
// node_modules/@fast-crud/fast-extends/dist/index-50ffe046.mjs
var ye = defineComponent({
name: "FsImagesFormat",
inheritAttrs: false,
props: {
//包裹image的组件配置antdv是preview-groupelement是div
wrapper: {
type: Object,
default: null
},
// 图片的url
// 'url' 或 ['url','url'] 或 [{url:'url'}] 或 {url:'url'}
modelValue: {
type: [String, Array, Object],
require: true
},
/**
* 构建好的图片链接如果此处传值则不走buildUrl方法
* 'url' 或 ['url1','url2'] 或 {url,previewUrl} 或 [{url,previewUrl}]
*/
urls: {
type: [String, Object, Array]
},
/**
* 加载错误时显示的图片
*/
error: {
default: 'data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="%23888" d="M5 21q-.825 0-1.413-.588T3 19v-6.6l3 3l4-4l4 4l4-4l3 3V19q0 .825-.588 1.413T19 21H5ZM5 3h14q.825 0 1.413.588T21 5v6.575l-3-3l-4 4l-4-4l-4 4l-3-3V5q0-.825.588-1.413T5 3Z"%2F%3E%3C%2Fsvg%3E'
},
/**
* 从value构建图片下载url的方法
* 支持异步
* (value)=>Promise<string>
*/
buildUrl: {
type: Function,
default: function(e) {
return e;
}
},
/**
* (values)=>Promise<string[]>
*/
buildUrls: {
type: Function,
default: null
},
/**
* 从value或url构建预览大图的方法
* (url,value)=>Promise<string>
*/
buildPreviewUrl: {
type: Function,
default: function({ url: e, value: t, index: n }) {
return e;
}
},
/**
* (list,values)=>Promise<string[]>
*/
buildPreviewUrls: {
type: Function,
default: null
}
},
setup(e, t) {
const { ui: n } = B(), i2 = ref([]), r = computed(() => merge_default({ style: {} }, { style: t.attrs.style })), o = computed(() => {
const a = [];
if (e.modelValue == null || e.modelValue === "")
return a;
if (typeof e.modelValue == "string")
a.push(e.modelValue);
else if (Array.isArray(e.modelValue))
for (const s of e.modelValue)
s != null && (s.url != null ? s.previewUrl != null ? a.push(s) : a.push(s.url) : a.push(s));
else
e.modelValue.url != null ? e.modelValue.previewUrl != null ? a.push(e.modelValue) : a.push(e.modelValue.url) : a.push(e.modelValue);
return a;
});
function l(a) {
const s = [], p = [];
for (let v = 0; v < a.length; v++) {
const T = a[v];
s.push(T.url), p.push(T.previewUrl);
}
const m = [];
for (let v = 0; v < a.length; v++) {
const T = a[v], k = T.url, S = T.previewUrl || T.url, N = n.image.buildPreviewBind({
url: k,
urls: s,
previewUrl: S,
previewUrls: p,
index: v
});
m.push({
fit: "contain",
src: k,
[n.image.fallback]: e.error,
...t.attrs,
...N
});
}
return m;
}
async function f(a) {
if (e.buildUrls) {
const s = a.map((v) => v.value), p = await e.buildUrls(s);
for (let v = 0; v < a.length; v++)
a[v].url = p[v];
let m = p;
e.buildPreviewUrls && (m = await e.buildPreviewUrls(a, s));
for (let v = 0; v < a.length; v++)
a[v].previewUrl = m[v];
} else if (e.buildUrl)
for (let s of a)
s.url = await e.buildUrl(s.value), e.buildPreviewUrl ? s.previewUrl = await e.buildPreviewUrl(s, s.value) : s.previewUrl = s.previewUrl || s.url;
else
for (let s = 0; s < a.length; s++)
a[s].url = a[s].value, a[s].previewUrl = a[s].value;
}
async function g(a) {
const s = [];
for (let p = 0; p < a.length; p++) {
let m = a[p];
s.push({
value: m,
index: p
});
}
return await f(s), l(s);
}
async function C(a) {
const s = [];
if (typeof a == "string")
s.push({
value: a,
url: a,
index: 0,
previewUrl: a
});
else if (a instanceof Array) {
if (a.length > 0)
if (typeof a[0] == "string")
for (let p = 0; p < a.length; p++) {
const m = a[p];
s.push({
value: m,
url: m,
previewUrl: m,
index: p
});
}
else
for (let p = 0; p < a.length; p++) {
const m = a[p];
s.push({
value: m.url,
...m,
index: p
});
}
} else
s.push({
value: a.url,
...a,
index: 0
});
return l(s);
}
return watch(
() => o.value,
async (a) => {
e.urls || (i2.value = await g(a));
},
{
immediate: true
}
), watch(
() => e.urls,
async (a) => {
a && (i2.value = await C(a));
},
{
immediate: true
}
), { imageListRef: i2, ui: n, errorBinding: r };
}
});
var ge = (e, t) => {
const n = e.__vccOpts || e;
for (const [i2, r] of t)
n[i2] = r;
return n;
};
var he = { class: "fs-image-format" };
var ve = { class: "fs-image-slot" };
var be = { class: "fs-image-slot" };
var Ce = ["src"];
function we(e, t, n, i2, r, o) {
const l = resolveComponent("fs-loading");
return openBlock(), createElementBlock("div", he, [
(openBlock(), createBlock(resolveDynamicComponent(e.ui.imageGroup.name), normalizeProps(guardReactiveProps(e.wrapper)), {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(e.imageListRef, (f) => (openBlock(), createBlock(resolveDynamicComponent(e.ui.image.name), mergeProps({
key: f.src,
class: "fs-image-item"
}, { ref_for: true }, f), {
placeholder: withCtx(() => [
createBaseVNode("div", ve, [
createVNode(l, mergeProps({ loading: true }, { ref_for: true }, e.errorBinding), null, 16)
])
]),
error: withCtx(() => [
createBaseVNode("div", be, [
createBaseVNode("img", mergeProps({ src: e.error }, { ref_for: true }, e.errorBinding), null, 16, Ce)
])
]),
_: 2
}, 1040))), 128))
]),
_: 1
}, 16))
]);
}
var Ee = ge(ye, [["render", we]]);
var Q = Object.freeze(Object.defineProperty({
__proto__: null,
default: Ee
}, Symbol.toStringTag, { value: "Module" }));
var Te = (e) => async (t, n) => {
const i2 = await e(t.fullField, true);
if (i2 && i2.hasUploading())
throw new Error("还有未上传完成的文件");
return true;
};
var F = () => Gl(({ getComponentRef: e }) => Te(e));
var pt = (e, t) => (e == null && (e = []), e.push({
//@ts-ignore
validator: F(),
message: t || "还有文件正在上传,请稍候"
// trigger: "blur" // <-------注意使用blur事件否则会闪现
}), e);
function _e() {
const {
t: e
} = lt(), t = i.get();
return {
"image-uploader": {
form: {
component: {
name: "fs-file-uploader",
listType: t.upload.typeImageCard,
accept: ".png,.jpeg,.jpg,.ico,.bmp,.gif,.webp,.svg"
},
[t.formItem.rules]: [{
validator: F(),
message: e("fs.extends.fileUploader.hasUploading"),
trigger: "blur"
}]
},
column: {
component: {
name: "fs-images-format",
style: "width:30px",
previewTeleported: true,
// @ts-ignore
previewMask: () => createVNode("div", {
class: "ant-mask-info"
}, [createVNode(resolveComponent("fs-icon"), {
icon: t.icons.eye
}, null)])
}
},
viewForm: {
component: {
height: 100,
width: 100
}
}
},
"avatar-uploader": {
form: {
[t.formItem.rules]: [{
validator: F(),
message: e("fs.extends.fileUploader.hasUploading"),
trigger: "blur"
}],
component: {
name: "fs-file-uploader",
limit: 1,
listType: t.upload.typeImageCard,
accept: ".png,.jpeg,.jpg,.ico,.bmp,.gif,.webp,.svg"
}
},
column: {
align: "center",
component: {
name: "fs-images-format",
style: "width:30px",
previewTeleported: true
}
},
viewForm: {
component: {
height: 100,
width: 100
}
},
valueResolve({
row: n,
key: i2
}) {
const r = n[i2];
r != null && r instanceof Array && (r.length >= 0 ? n[i2] = r[0].url : n[i2] = null);
}
},
"file-uploader": {
form: {
component: {
name: "fs-file-uploader",
listType: "text"
},
[t.formItem.rules]: [{
validator: F(),
message: e("fs.extends.fileUploader.hasUploading"),
trigger: "blur"
}]
},
column: {
component: {
name: "fs-files-format"
}
}
},
"cropper-uploader": {
form: {
component: {
name: "fs-cropper-uploader",
accept: ".png,.jpeg,.jpg,.ico,.bmp,.gif,.svg,.webp",
cropper: {
aspectRatio: 1,
autoCropArea: 1,
viewMode: 0
}
},
[t.formItem.rules]: [{
validator: F(),
message: e("fs.extends.fileUploader.hasUploading"),
trigger: "blur"
}]
},
column: {
align: "center",
component: {
name: "fs-images-format",
style: "width:30px",
previewTeleported: true
}
},
viewForm: {
component: {
height: 100,
width: 100
}
}
}
};
}
var xe = {
defaultType: "cos",
cos: {
// 腾讯云 cos 的配置
domain: "https://d2p-demo-1251260344.cos.ap-guangzhou.myqcloud.com",
bucket: "d2p-demo-1251260344",
region: "",
secretId: "",
secretKey: "",
async getAuthorization(e) {
throw new Error("请配置config.cos.getAuthorization 或 uploader.getAuthorization");
}
},
alioss: {
domain: "https://d2p-demo.oss-cn-shenzhen.aliyuncs.com",
bucket: "d2p-demo",
region: "oss-cn-shenzhen",
accessKeyId: "",
accessKeySecret: "",
getAuthorization(e) {
return new Promise((t, n) => {
n(new Error("请实现config.alioss.getAuthorization返回Promise获取临时授权token"));
});
},
keepName: false,
sdkOpts: {
// sdk配置
// secure: false // 默认为非https上传,为了安全你可以设置为true
}
},
qiniu: {
bucket: "d2p-demo",
async getToken(e) {
throw new Error("请实现config.qiniu.getToken方法返回Promise获取七牛的授权token{token:xxx,expires:xxx}");
},
domain: "http://pzrsldiu3.bkt.clouddn.com"
},
s3: {
bucket: "fast-crud",
sdkOpts: {
region: "us-east-1",
forcePathStyle: true,
endpoint: "https://play.min.io",
credentials: {
accessKeyId: "",
secretAccessKey: ""
//访问密码
}
}
},
form: {
successHandle(e) {
return e;
},
action: void 0,
name: "file",
headers: {},
data: {}
// async uploadRequest({ file, action }) {
// 自定义文件上传请求
// return await axios.request();
// }
},
async buildKey(e) {
const { fileName: t } = e, n = /* @__PURE__ */ new Date(), i2 = e.fileType ?? "file", r = e.keepName ?? false;
let o = "";
return r ? o = "/" + t : t.lastIndexOf(".") >= 0 && (o = t.substring(t.lastIndexOf("."))), i2 + "/" + n.getFullYear() + "/" + (n.getMonth() + 1) + "/" + n.getDate() + "/" + Math.floor(Math.random() * 1e14) + o;
}
};
var P = cloneDeep_default(xe);
function ke(e, t) {
merge_default(P, t);
}
var mt = F;
var Se = {
install(e, t) {
const n = _e(), { addTypes: i2 } = hp();
i2(n), ke(e, t);
}
};
async function Ae(e) {
let t = null;
return e === "alioss" ? t = await import("./uploader-alioss-4003d93a-LM457EQP.js") : e === "cos" ? t = await import("./uploader-cos-e64b150f-J6YJCZZI.js") : e === "form" ? t = await import("./uploader-form-8595f8fc-BIC2DPR3.js") : e === "qiniu" ? t = await import("./uploader-qiniu-7f53ab0b-FV6JNAHU.js") : e === "s3" ? t = await import("./uploader-s3-77927a69-S7TFTL7S.js") : console.error(`未找到${e}的上传实现`), t;
}
async function yt(e, t, n) {
return n.buildKey({
fileName: t,
file: e,
...n
});
}
function gt() {
function e() {
const i2 = P;
return i2 == null ? void 0 : i2.defaultType;
}
function t(i2) {
i2 == null && (i2 = e());
const r = P, o = P[i2];
return o.buildKey == null && (o.buildKey = r.buildKey), o;
}
async function n(i2) {
return await Ae(i2 || e());
}
return {
getConfig: t,
getDefaultType: e,
getUploaderImpl: n
};
}
var Fe = Object.assign({ "./components/fs-cropper-uploader.vue": () => import("./fs-cropper-uploader-c3fbe88c-HEO5ACKR.js"), "./components/fs-cropper.vue": () => import("./fs-cropper-d9786edb-FTL4HHUI.js"), "./components/fs-file-uploader.vue": () => import("./fs-file-uploader-506e96b9-RGNPV737.js"), "./components/fs-files-format.vue": () => import("./fs-files-format-ff815381-AMSYB5H7.js"), "./components/fs-images-format.vue": () => Promise.resolve().then(() => Q), "./components/fs-uploader.vue": () => import("./fs-uploader-cf0ce557-HDC5YD3B.js") });
var Ve = Object.assign({ "./components/fs-images-format.vue": Q });
var { registerMergeColumnPlugin: Ue } = Zr();
Ue({
name: "uploader-merge-plugin",
order: 5,
handle: (e = {}, t = {}) => {
if (typeof e.type == "string" && e.type.endsWith("uploader")) {
const n = e.buildUrl, i2 = e.buildUrls;
merge_default(e, {
form: {
component: {
buildUrl: n,
buildUrls: i2
}
},
column: {
component: {
buildUrl: n,
buildUrls: i2
}
}
});
}
return e;
}
});
var Ne = {
install(e) {
_t.vite.installAsyncComponents(e, Fe, ["FsImagesFormat"], null, null), _t.vite.installSyncComponents(e, Ve, null, null, null);
}
};
var ht = {
install(e, t) {
e.use(Se, t), e.use(Ne);
}
};
function Oe() {
return {
"editor-wang": {
form: { component: { name: "fs-editor-wang" } }
},
"editor-wang5": {
form: { component: { name: "fs-editor-wang5", style: { zIndex: 800 }, toolbarAttrs: { style: { zIndex: 800 } } } }
}
};
}
var je = {
wangEditor: {},
wangEditor5: {
editorConfig: {},
toolbarConfig: {}
}
};
function Me(e, t) {
e.config.globalProperties.$fs_editor_config = merge_default(je, t);
}
var Ie = {
install(e, t) {
const n = Oe(), { addTypes: i2 } = hp();
i2(n), Me(e, t);
}
};
var Le = Object.assign({ "./components/fs-editor-wang/index.vue": () => import("./index-61efc2d4-ZYYKKOL6.js"), "./components/fs-editor-wang5/index.vue": () => import("./index-4d97297b-4PRTILE7.js") });
var Pe = {
install(e) {
_t.vite.installAsyncComponents(e, Le, null, /^.*\/([^\/]+)\/.*.vue$/, null);
}
};
var vt = {
install(e, t) {
e.use(Ie, t), e.use(Pe);
}
};
function $e() {
return {
json: {
form: {
component: {
name: "fs-json-editor"
}
}
}
};
}
var Be = {
install(e) {
const t = $e(), { addTypes: n } = hp();
n(t);
}
};
var Re = Object.assign({ "./components/fs-json-editor.vue": () => import("./fs-json-editor-985ed0b5-HDVYTRP2.js") });
var ze = {
install(e) {
_t.vite.installAsyncComponents(e, Re, [], null, null);
}
};
var bt = {
install(e) {
e.use(Be), e.use(ze);
}
};
function De() {
return {
copyable: {
column: {
component: {
name: "fs-copyable",
vModel: "modelValue"
}
}
}
};
}
var He = {
install(e) {
const t = De(), { addTypes: n } = hp();
n(t);
}
};
var qe = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
function Ke(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
function Ye(e, t, n) {
return n = {
path: t,
exports: {},
require: function(i2, r) {
return Ge(i2, r ?? n.path);
}
}, e(n, n.exports), n.exports;
}
function Ge() {
throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
}
var Je = Ye(function(e, t) {
(function(i2, r) {
e.exports = r();
})(qe, function() {
return (
/******/
function(n) {
var i2 = {};
function r(o) {
if (i2[o])
return i2[o].exports;
var l = i2[o] = {
/******/
i: o,
/******/
l: false,
/******/
exports: {}
/******/
};
return n[o].call(l.exports, l, l.exports, r), l.l = true, l.exports;
}
return r.m = n, r.c = i2, r.d = function(o, l, f) {
r.o(o, l) || Object.defineProperty(o, l, { enumerable: true, get: f });
}, r.r = function(o) {
typeof Symbol < "u" && Symbol.toStringTag && Object.defineProperty(o, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(o, "__esModule", { value: true });
}, r.t = function(o, l) {
if (l & 1 && (o = r(o)), l & 8 || l & 4 && typeof o == "object" && o && o.__esModule)
return o;
var f = /* @__PURE__ */ Object.create(null);
if (r.r(f), Object.defineProperty(f, "default", { enumerable: true, value: o }), l & 2 && typeof o != "string")
for (var g in o)
r.d(f, g, (function(C) {
return o[C];
}).bind(null, g));
return f;
}, r.n = function(o) {
var l = o && o.__esModule ? (
/******/
function() {
return o.default;
}
) : (
/******/
function() {
return o;
}
);
return r.d(l, "a", l), l;
}, r.o = function(o, l) {
return Object.prototype.hasOwnProperty.call(o, l);
}, r.p = "", r(r.s = 6);
}([
/* 0 */
/***/
function(n, i2) {
function r(o) {
var l;
if (o.nodeName === "SELECT")
o.focus(), l = o.value;
else if (o.nodeName === "INPUT" || o.nodeName === "TEXTAREA") {
var f = o.hasAttribute("readonly");
f || o.setAttribute("readonly", ""), o.select(), o.setSelectionRange(0, o.value.length), f || o.removeAttribute("readonly"), l = o.value;
} else {
o.hasAttribute("contenteditable") && o.focus();
var g = window.getSelection(), C = document.createRange();
C.selectNodeContents(o), g.removeAllRanges(), g.addRange(C), l = g.toString();
}
return l;
}
n.exports = r;
},
/* 1 */
/***/
function(n, i2) {
function r() {
}
r.prototype = {
on: function(o, l, f) {
var g = this.e || (this.e = {});
return (g[o] || (g[o] = [])).push({
fn: l,
ctx: f
}), this;
},
once: function(o, l, f) {
var g = this;
function C() {
g.off(o, C), l.apply(f, arguments);
}
return C._ = l, this.on(o, C, f);
},
emit: function(o) {
var l = [].slice.call(arguments, 1), f = ((this.e || (this.e = {}))[o] || []).slice(), g = 0, C = f.length;
for (g; g < C; g++)
f[g].fn.apply(f[g].ctx, l);
return this;
},
off: function(o, l) {
var f = this.e || (this.e = {}), g = f[o], C = [];
if (g && l)
for (var a = 0, s = g.length; a < s; a++)
g[a].fn !== l && g[a].fn._ !== l && C.push(g[a]);
return C.length ? f[o] = C : delete f[o], this;
}
}, n.exports = r, n.exports.TinyEmitter = r;
},
/* 2 */
/***/
function(n, i2, r) {
var o = r(3), l = r(4);
function f(s, p, m) {
if (!s && !p && !m)
throw new Error("Missing required arguments");
if (!o.string(p))
throw new TypeError("Second argument must be a String");
if (!o.fn(m))
throw new TypeError("Third argument must be a Function");
if (o.node(s))
return g(s, p, m);
if (o.nodeList(s))
return C(s, p, m);
if (o.string(s))
return a(s, p, m);
throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");
}
function g(s, p, m) {
return s.addEventListener(p, m), {
destroy: function() {
s.removeEventListener(p, m);
}
};
}
function C(s, p, m) {
return Array.prototype.forEach.call(s, function(v) {
v.addEventListener(p, m);
}), {
destroy: function() {
Array.prototype.forEach.call(s, function(v) {
v.removeEventListener(p, m);
});
}
};
}
function a(s, p, m) {
return l(document.body, s, p, m);
}
n.exports = f;
},
/* 3 */
/***/
function(n, i2) {
i2.node = function(r) {
return r !== void 0 && r instanceof HTMLElement && r.nodeType === 1;
}, i2.nodeList = function(r) {
var o = Object.prototype.toString.call(r);
return r !== void 0 && (o === "[object NodeList]" || o === "[object HTMLCollection]") && "length" in r && (r.length === 0 || i2.node(r[0]));
}, i2.string = function(r) {
return typeof r == "string" || r instanceof String;
}, i2.fn = function(r) {
var o = Object.prototype.toString.call(r);
return o === "[object Function]";
};
},
/* 4 */
/***/
function(n, i2, r) {
var o = r(5);
function l(C, a, s, p, m) {
var v = g.apply(this, arguments);
return C.addEventListener(s, v, m), {
destroy: function() {
C.removeEventListener(s, v, m);
}
};
}
function f(C, a, s, p, m) {
return typeof C.addEventListener == "function" ? l.apply(null, arguments) : typeof s == "function" ? l.bind(null, document).apply(null, arguments) : (typeof C == "string" && (C = document.querySelectorAll(C)), Array.prototype.map.call(C, function(v) {
return l(v, a, s, p, m);
}));
}
function g(C, a, s, p) {
return function(m) {
m.delegateTarget = o(m.target, a), m.delegateTarget && p.call(C, m);
};
}
n.exports = f;
},
/* 5 */
/***/
function(n, i2) {
var r = 9;
if (typeof Element < "u" && !Element.prototype.matches) {
var o = Element.prototype;
o.matches = o.matchesSelector || o.mozMatchesSelector || o.msMatchesSelector || o.oMatchesSelector || o.webkitMatchesSelector;
}
function l(f, g) {
for (; f && f.nodeType !== r; ) {
if (typeof f.matches == "function" && f.matches(g))
return f;
f = f.parentNode;
}
}
n.exports = l;
},
/* 6 */
/***/
function(n, i2, r) {
r.r(i2);
var o = r(0), l = r.n(o), f = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(y) {
return typeof y;
} : function(y) {
return y && typeof Symbol == "function" && y.constructor === Symbol && y !== Symbol.prototype ? "symbol" : typeof y;
}, g = /* @__PURE__ */ function() {
function y(u, c) {
for (var d = 0; d < c.length; d++) {
var w = c[d];
w.enumerable = w.enumerable || false, w.configurable = true, "value" in w && (w.writable = true), Object.defineProperty(u, w.key, w);
}
}
return function(u, c, d) {
return c && y(u.prototype, c), d && y(u, d), u;
};
}();
function C(y, u) {
if (!(y instanceof u))
throw new TypeError("Cannot call a class as a function");
}
var a = function() {
function y(u) {
C(this, y), this.resolveOptions(u), this.initSelection();
}
return g(y, [{
key: "resolveOptions",
value: function() {
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
this.action = c.action, this.container = c.container, this.emitter = c.emitter, this.target = c.target, this.text = c.text, this.trigger = c.trigger, this.selectedText = "";
}
/**
* Decides which selection strategy is going to be applied based
* on the existence of `text` and `target` properties.
*/
}, {
key: "initSelection",
value: function() {
this.text ? this.selectFake() : this.target && this.selectTarget();
}
/**
* Creates a fake textarea element, sets its value from `text` property,
* and makes a selection on it.
*/
}, {
key: "selectFake",
value: function() {
var c = this, d = document.documentElement.getAttribute("dir") == "rtl";
this.removeFake(), this.fakeHandlerCallback = function() {
return c.removeFake();
}, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || true, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[d ? "right" : "left"] = "-9999px";
var w = window.pageYOffset || document.documentElement.scrollTop;
this.fakeElem.style.top = w + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = l()(this.fakeElem), this.copyText();
}
/**
* Only removes the fake element after another click event, that way
* a user can hit `Ctrl+C` to copy because selection still exists.
*/
}, {
key: "removeFake",
value: function() {
this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null);
}
/**
* Selects the content from element passed on `target` property.
*/
}, {
key: "selectTarget",
value: function() {
this.selectedText = l()(this.target), this.copyText();
}
/**
* Executes the copy operation based on the current selection.
*/
}, {
key: "copyText",
value: function() {
var c = void 0;
try {
c = document.execCommand(this.action);
} catch {
c = false;
}
this.handleResult(c);
}
/**
* Fires an event based on the copy operation result.
* @param {Boolean} succeeded
*/
}, {
key: "handleResult",
value: function(c) {
this.emitter.emit(c ? "success" : "error", {
action: this.action,
text: this.selectedText,
trigger: this.trigger,
clearSelection: this.clearSelection.bind(this)
});
}
/**
* Moves focus away from `target` and back to the trigger, removes current selection.
*/
}, {
key: "clearSelection",
value: function() {
this.trigger && this.trigger.focus(), document.activeElement.blur(), window.getSelection().removeAllRanges();
}
/**
* Sets the `action` to be performed which can be either 'copy' or 'cut'.
* @param {String} action
*/
}, {
key: "destroy",
/**
* Destroy lifecycle.
*/
value: function() {
this.removeFake();
}
}, {
key: "action",
set: function() {
var c = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "copy";
if (this._action = c, this._action !== "copy" && this._action !== "cut")
throw new Error('Invalid "action" value, use either "copy" or "cut"');
},
get: function() {
return this._action;
}
/**
* Sets the `target` property using an element
* that will be have its content copied.
* @param {Element} target
*/
}, {
key: "target",
set: function(c) {
if (c !== void 0)
if (c && (typeof c > "u" ? "undefined" : f(c)) === "object" && c.nodeType === 1) {
if (this.action === "copy" && c.hasAttribute("disabled"))
throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
if (this.action === "cut" && (c.hasAttribute("readonly") || c.hasAttribute("disabled")))
throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`);
this._target = c;
} else
throw new Error('Invalid "target" value, use a valid Element');
},
get: function() {
return this._target;
}
}]), y;
}(), s = a, p = r(1), m = r.n(p), v = r(2), T = r.n(v), k = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(y) {
return typeof y;
} : function(y) {
return y && typeof Symbol == "function" && y.constructor === Symbol && y !== Symbol.prototype ? "symbol" : typeof y;
}, S = /* @__PURE__ */ function() {
function y(u, c) {
for (var d = 0; d < c.length; d++) {
var w = c[d];
w.enumerable = w.enumerable || false, w.configurable = true, "value" in w && (w.writable = true), Object.defineProperty(u, w.key, w);
}
}
return function(u, c, d) {
return c && y(u.prototype, c), d && y(u, d), u;
};
}();
function N(y, u) {
if (!(y instanceof u))
throw new TypeError("Cannot call a class as a function");
}
function h(y, u) {
if (!y)
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
return u && (typeof u == "object" || typeof u == "function") ? u : y;
}
function b(y, u) {
if (typeof u != "function" && u !== null)
throw new TypeError("Super expression must either be null or a function, not " + typeof u);
y.prototype = Object.create(u && u.prototype, { constructor: { value: y, enumerable: false, writable: true, configurable: true } }), u && (Object.setPrototypeOf ? Object.setPrototypeOf(y, u) : y.__proto__ = u);
}
var E = function(y) {
b(u, y);
function u(c, d) {
N(this, u);
var w = h(this, (u.__proto__ || Object.getPrototypeOf(u)).call(this));
return w.resolveOptions(d), w.listenClick(c), w;
}
return S(u, [{
key: "resolveOptions",
value: function() {
var d = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
this.action = typeof d.action == "function" ? d.action : this.defaultAction, this.target = typeof d.target == "function" ? d.target : this.defaultTarget, this.text = typeof d.text == "function" ? d.text : this.defaultText, this.container = k(d.container) === "object" ? d.container : document.body;
}
/**
* Adds a click event listener to the passed trigger.
* @param {String|HTMLElement|HTMLCollection|NodeList} trigger
*/
}, {
key: "listenClick",
value: function(d) {
var w = this;
this.listener = T()(d, "click", function(O) {
return w.onClick(O);
});
}
/**
* Defines a new `ClipboardAction` on each click event.
* @param {Event} e
*/
}, {
key: "onClick",
value: function(d) {
var w = d.delegateTarget || d.currentTarget;
this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new s({
action: this.action(w),
target: this.target(w),
text: this.text(w),
container: this.container,
trigger: w,
emitter: this
});
}
/**
* Default `action` lookup function.
* @param {Element} trigger
*/
}, {
key: "defaultAction",
value: function(d) {
return _("action", d);
}
/**
* Default `target` lookup function.
* @param {Element} trigger
*/
}, {
key: "defaultTarget",
value: function(d) {
var w = _("target", d);
if (w)
return document.querySelector(w);
}
/**
* Returns the support of the given action, or all actions if no action is
* given.
* @param {String} [action]
*/
}, {
key: "defaultText",
/**
* Default `text` lookup function.
* @param {Element} trigger
*/
value: function(d) {
return _("text", d);
}
/**
* Destroy lifecycle.
*/
}, {
key: "destroy",
value: function() {
this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null);
}
}], [{
key: "isSupported",
value: function() {
var d = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ["copy", "cut"], w = typeof d == "string" ? [d] : d, O = !!document.queryCommandSupported;
return w.forEach(function(re) {
O = O && !!document.queryCommandSupported(re);
}), O;
}
}]), u;
}(m.a);
function _(y, u) {
var c = "data-clipboard-" + y;
if (u.hasAttribute(c))
return u.getAttribute(c);
}
i2.default = E;
}
/******/
]).default
);
});
});
var ee = Ke(Je);
var I = {
autoSetContainer: false,
appendToBody: true
};
var Xe = {
config: (e) => {
const { autoSetContainer: t, appendToBody: n } = e;
I.autoSetContainer = t || false, I.appendToBody = n || true;
},
install: (e) => {
e.config.globalProperties.$vclipboard = X, e.directive("clipboard", {
beforeMount(t, n) {
if (n.arg === "success")
t._vClipboard_success = n.value;
else if (n.arg === "error")
t._vClipboard_error = n.value;
else {
const i2 = new ee(t, {
text: () => n.value,
action: () => n.arg === "cut" ? "cut" : "copy",
container: I.autoSetContainer ? t : void 0
});
i2.on("success", (r) => {
const o = t._vClipboard_success;
o && o(r);
}), i2.on("error", (r) => {
const o = t._vClipboard_error;
o && o(r);
}), t._vClipboard = i2;
}
},
updated(t, n) {
n.arg === "success" ? t._vClipboard_success = n.value : n.arg === "error" ? t._vClipboard_error = n.value : (t._vClipboard.text = () => n.value, t._vClipboard.action = () => n.arg === "cut" ? "cut" : "copy");
},
unmounted(t, n) {
n.arg === "success" ? delete t._vClipboard_success : n.arg === "error" ? delete t._vClipboard_error : (t._vClipboard.destroy(), delete t._vClipboard);
}
});
},
toClipboard: (e, t) => X(e, t)
};
var X = (e, t = "copy") => new Promise((n, i2) => {
const r = document.createElement("button"), o = new ee(r, {
text: () => e,
action: () => t
});
o.on("success", (l) => {
o.destroy(), n(l);
}), o.on("error", (l) => {
o.destroy(), i2(l);
}), I.appendToBody && document.body.appendChild(r), r.click(), I.appendToBody && document.body.removeChild(r);
});
var Ze = Object.assign({ "./components/fs-copyable.vue": () => import("./fs-copyable-07963571-P7LK56JC.js") });
var We = {
install(e) {
_t.vite.installAsyncComponents(e, Ze, [], null, null);
}
};
var Ct = {
install(e) {
e.use(He), e.use(We), e.use(Xe);
}
};
function Qe() {
return {
"time-humanize": {
column: {
component: {
name: "fs-time-humanize",
vModel: "modelValue"
}
}
}
};
}
var et = {
install(e) {
const t = Qe(), { addTypes: n } = hp();
n(t);
}
};
var tt = Object.assign({ "./components/fs-time-humanize.vue": () => import("./fs-time-humanize-ddeec7a4-6QPVUJ4A.js") });
var nt = {
install(e) {
_t.vite.installAsyncComponents(e, tt, [], null, null);
}
};
var wt = {
install(e) {
e.use(et), e.use(nt);
}
};
async function Y() {
const e = Object.assign({ "./phoneCodeCountries.ts": () => import("./phoneCodeCountries-923a4b31-XQ5YSBKJ.js") }), { countries: t } = await e["./phoneCodeCountries.ts"]();
return t;
}
async function te(e) {
const t = await Y();
let n = null;
return e != null && (e.countryCode != null ? n = t.find((i2) => i2.iso2 === e.countryCode) : e.callingCode != null && (n = t.find((i2) => i2.dialCode === e.callingCode))), n != null && (n = {
callingCode: n.dialCode,
countryCode: n.iso2
}), n;
}
var ot = Object.freeze(Object.defineProperty({
__proto__: null,
getCountries: Y,
getCountryByValue: te
}, Symbol.toStringTag, { value: "Module" }));
var rt = { class: "fs-phone-input" };
var Et = defineComponent({
__name: "fs-phone-input",
props: {
select: {},
input: {},
modelValue: {},
onlyCountries: {},
ignoredCountries: {},
priorityCountries: {},
clearable: { type: Boolean },
filterable: { type: Boolean },
defaultCountry: { default: "CN" },
disabled: { type: Boolean },
readonly: { type: Boolean }
},
emits: ["change", "input", "update:modelValue"],
setup(e, { emit: t }) {
const { ui: n } = B(), i2 = n.formItem.injectFormItemContext(), r = e, o = t, l = ref(
r.modelValue || {
callingCode: void 0,
// 电话区号
countryCode: void 0,
// 国家代码
phoneNumber: void 0
// 电话号码
}
), f = wu({
value: "iso2",
label: "label"
}), g = ref([]);
async function C() {
g.value = await Y();
}
C();
const a = computed(() => {
const h = g.value;
let b = [];
if (r.onlyCountries != null && r.onlyCountries.length > 0)
for (let E of h)
r.onlyCountries.find((_) => _.toLowerCase() === E.iso2.toLowerCase()) && b.push(E);
else {
const E = r.priorityCountries || [], _ = r.ignoredCountries || [], y = [], u = [];
for (let c of h)
E.find((d) => d.toLowerCase() === c.iso2.toLowerCase()) && y.push(c), _.find((d) => d.toLowerCase() === c.iso2.toLowerCase()) || u.push(c);
b = y.concat(u);
}
return b = b.map((E) => ({
...E,
label: E.name + "(" + E.dialCode + ")"
})), b;
}), s = computed(() => {
const h = {
placeholder: "请选择",
[n.select.filterable]: true,
[n.select.clearable]: true,
[n.select.modelValue]: l.value.countryCode,
["onUpdate:" + n.select.modelValue]: T
};
return merge_default(h, r.select);
}), p = computed(() => {
const h = {
placeholder: "请输入",
[n.select.clearable]: true,
[n.input.modelValue]: l.value.phoneNumber,
[`onUpdate:${n.input.modelValue}`]: k
};
return merge_default(h, r.input);
});
async function m(h) {
l.value = { callingCode: void 0, countryCode: void 0, phoneNumber: void 0 };
const b = await v(h);
b != null && (l.value.callingCode = b.callingCode, l.value.countryCode = b.countryCode), h && h.phoneNumber ? l.value.phoneNumber = h.phoneNumber : l.value.phoneNumber = void 0;
}
async function v(h) {
let b = null;
return h != null && (h.countryCode != null ? b = a.value.find((E) => E.iso2 === h.countryCode) : h.callingCode != null && (b = a.value.find((E) => E.dialCode === h.callingCode))), b != null && (b = {
callingCode: b.dialCode,
countryCode: b.iso2
}), b == null && (b = await te({ countryCode: r.defaultCountry })), b;
}
async function T(h) {
await N(h);
let b = S();
o("update:modelValue", b), o("input", b), o("change", b), await i2.onChange(), await i2.onBlur();
}
async function k(h) {
if (l.value.phoneNumber = h, l.value.callingCode == null && l.value.countryCode == null) {
l.value.countryCode = r.defaultCountry;
const E = await v(l.value);
E && (l.value.callingCode = E.callingCode);
}
let b = S();
o("update:modelValue", b), o("input", b), o("change", b), await i2.onChange(), await i2.onBlur();
}
function S() {
return {
countryCode: l.value.countryCode,
callingCode: l.value.callingCode,
phoneNumber: l.value.phoneNumber
};
}
async function N(h) {
h || (l.value.callingCode = void 0), l.value.countryCode = h;
let b = await v(l.value);
b && (l.value.callingCode = b.callingCode);
}
return watch(
() => r.modelValue,
async (h, b) => {
await m(h), o("change", l.value);
},
{
immediate: true
}
), (h, b) => {
const E = resolveComponent("fs-dict-select");
return openBlock(), createElementBlock("div", rt, [
createVNode(E, mergeProps({
disabled: h.disabled,
readonly: h.readonly,
filterable: h.filterable,
clearable: h.clearable,
options: a.value,
dict: unref(f),
"show-search": true,
"allow-clear": true
}, s.value), null, 16, ["disabled", "readonly", "filterable", "clearable", "options", "dict"]),
(openBlock(), createBlock(resolveDynamicComponent(unref(n).input.name), mergeProps({
type: "text",
clearable: h.clearable,
disabled: h.disabled,
readonly: h.readonly,
"allow-clear": true
}, p.value), null, 16, ["clearable", "disabled", "readonly"]))
]);
};
}
});
async function ne({ phoneNumber: e, countryCode: t }) {
const i2 = (await import("./index-95df7f7f-B24P5CJE.js")).parsePhoneNumberFromString, r = e && t ? i2(e, t) : null;
return {
phoneNumber: e || null,
countryCode: t,
isValid: false,
...r ? {
formattedNumber: r.number,
nationalNumber: r.nationalNumber,
isValid: r.isValid(),
type: r.getType(),
formatInternational: r.formatInternational(),
formatNational: r.formatNational(),
uri: r.getURI(),
e164: r.format("E.164")
} : null
};
}
async function oe(e) {
const t = Object.assign({ "./utils.ts": () => Promise.resolve().then(() => ot) }), { getCountryByValue: n } = await t["./utils.ts"]();
return n(e);
}
async function Tt(e, t) {
if (!t || t.phoneNumber == null || t.phoneNumber === "")
return true;
if (!t.countryCode && t.callingCode) {
const i2 = await oe(t);
i2 && (t.countryCode = i2.countryCode);
}
const n = await ne({
phoneNumber: t.phoneNumber,
countryCode: t.countryCode
});
if (!n.isValid)
throw console.warn("parse:", n), new Error("电话号码错误");
return true;
}
async function it(e, t, n) {
if (!t || t.phoneNumber == null || t.phoneNumber === "" || t.countryCode == null || t.countryCode === "")
return true;
if (!t.countryCode && t.callingCode) {
const r = await oe(t);
r && (t.countryCode = r.countryCode);
}
const i2 = await ne({
phoneNumber: t.phoneNumber,
countryCode: t.countryCode
});
if (!i2.isValid || i2.type !== "MOBILE" && i2.type !== "FIXED_LINE_OR_MOBILE")
throw console.warn("parse:", i2), new Error("手机号错误");
return true;
}
async function _t2(e, t) {
const n = t.countryCode == null || t.countryCode === "", i2 = t.callingCode == null || t.callingCode === "", r = t.phoneNumber == null || t.phoneNumber === "";
if (!t || r || n && i2)
throw new Error("该项必填");
return true;
}
function lt2() {
return {
phone: {
column: {
cellRender({
value: e
}) {
return !e || !e.phoneNumber ? "" : createVNode("div", null, [createTextVNode("("), e.callingCode || "86", createTextVNode(")"), e.phoneNumber]);
}
},
form: {
component: {
name: "fs-phone-input",
vModel: "modelValue"
},
rules: [{
validator: it,
message: "请填写正确的手机号码"
}]
}
}
};
}
var at = {
install(e) {
const t = lt2(), { addTypes: n } = hp();
n(t);
}
};
var st = Object.assign({ "./components/fs-phone-input/fs-phone-input.vue": () => import("./fs-phone-input-51dfe04c-U3PUVGXH.js") });
var ut = {
install(e) {
_t.vite.installAsyncComponents(e, st, [], null, null);
}
};
var xt = {
install(e) {
e.use(at), e.use(ut);
}
};
export {
ge,
Te,
F,
pt,
mt,
Ae,
yt,
gt,
ht,
je,
vt,
bt,
Ct,
wt,
Et,
ne,
Tt,
it,
_t2 as _t,
xt
};
/*! Bundled license information:
@fast-crud/fast-extends/dist/index-50ffe046.mjs:
(*!
* @soerenmartius/vue3-clipboard v0.1.2
* (c) 2021 Soeren Martius
* @license MIT
*)
(*!
* clipboard.js v2.0.6
* https://clipboardjs.com/
*
* Licensed MIT © Zeno Rocha
*)
*/
//# sourceMappingURL=chunk-O6L55DMN.js.map