skyline-vue-admin 0.0.15 → 0.0.17

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.
Files changed (75) hide show
  1. package/dist/components/auto-complete-array-input/index.cjs +1 -1
  2. package/dist/components/auto-complete-array-input/index.cjs.map +1 -1
  3. package/dist/components/auto-complete-array-input/index.mjs +25 -22
  4. package/dist/components/auto-complete-array-input/index.mjs.map +1 -1
  5. package/dist/components/avatar-input/index.cjs +1 -1
  6. package/dist/components/avatar-input/index.cjs.map +1 -1
  7. package/dist/components/avatar-input/index.d.ts +0 -4
  8. package/dist/components/avatar-input/index.mjs +72 -104
  9. package/dist/components/avatar-input/index.mjs.map +1 -1
  10. package/dist/components/can-access/index.cjs +1 -1
  11. package/dist/components/can-access/index.mjs +1 -1
  12. package/dist/components/create/index.cjs +1 -1
  13. package/dist/components/create/index.mjs +4 -4
  14. package/dist/components/data-table/index.cjs +1 -1
  15. package/dist/components/data-table/index.mjs +4 -4
  16. package/dist/components/data-table-col/index.cjs +1 -1
  17. package/dist/components/data-table-col/index.cjs.map +1 -1
  18. package/dist/components/data-table-col/index.mjs +5 -4
  19. package/dist/components/data-table-col/index.mjs.map +1 -1
  20. package/dist/components/edit/index.cjs +1 -1
  21. package/dist/components/edit/index.mjs +1 -1
  22. package/dist/components/file-multiple-input/index.cjs +1 -1
  23. package/dist/components/file-multiple-input/index.cjs.map +1 -1
  24. package/dist/components/file-multiple-input/index.d.ts +2 -8
  25. package/dist/components/file-multiple-input/index.mjs +38 -146
  26. package/dist/components/file-multiple-input/index.mjs.map +1 -1
  27. package/dist/components/file-multiple-model-input/index.cjs +2 -0
  28. package/dist/components/file-multiple-model-input/index.cjs.map +1 -0
  29. package/dist/components/file-multiple-model-input/index.d.ts +72 -0
  30. package/dist/components/file-multiple-model-input/index.mjs +154 -0
  31. package/dist/components/file-multiple-model-input/index.mjs.map +1 -0
  32. package/dist/components/filter/index.cjs +1 -1
  33. package/dist/components/filter/index.mjs +6 -6
  34. package/dist/components/image-field/index.cjs +1 -1
  35. package/dist/components/image-field/index.cjs.map +1 -1
  36. package/dist/components/image-field/index.mjs +3 -2
  37. package/dist/components/image-field/index.mjs.map +1 -1
  38. package/dist/components/link-field/index.cjs +1 -1
  39. package/dist/components/link-field/index.cjs.map +1 -1
  40. package/dist/components/link-field/index.mjs +3 -2
  41. package/dist/components/link-field/index.mjs.map +1 -1
  42. package/dist/components/radio-button-group-input/index.cjs +1 -1
  43. package/dist/components/radio-button-group-input/index.cjs.map +1 -1
  44. package/dist/components/radio-button-group-input/index.mjs +3 -2
  45. package/dist/components/radio-button-group-input/index.mjs.map +1 -1
  46. package/dist/components/reference-field/index.cjs +1 -1
  47. package/dist/components/reference-field/index.mjs +1 -1
  48. package/dist/components/show-simple-layout/index.cjs +1 -1
  49. package/dist/components/show-simple-layout/index.cjs.map +1 -1
  50. package/dist/components/show-simple-layout/index.mjs +4 -2
  51. package/dist/components/show-simple-layout/index.mjs.map +1 -1
  52. package/dist/components/simple-form/index.cjs +1 -1
  53. package/dist/components/simple-form/index.cjs.map +1 -1
  54. package/dist/components/simple-form/index.mjs +3 -2
  55. package/dist/components/simple-form/index.mjs.map +1 -1
  56. package/dist/components/text-field/index.cjs +1 -1
  57. package/dist/components/text-field/index.cjs.map +1 -1
  58. package/dist/components/text-field/index.mjs +6 -4
  59. package/dist/components/text-field/index.mjs.map +1 -1
  60. package/dist/components/text-input/index.cjs +1 -1
  61. package/dist/components/text-input/index.cjs.map +1 -1
  62. package/dist/components/text-input/index.mjs +7 -6
  63. package/dist/components/text-input/index.mjs.map +1 -1
  64. package/dist/hooks/useUpload.cjs +1 -1
  65. package/dist/hooks/useUpload.cjs.map +1 -1
  66. package/dist/hooks/useUpload.d.ts +9 -3
  67. package/dist/hooks/useUpload.mjs +20 -5
  68. package/dist/hooks/useUpload.mjs.map +1 -1
  69. package/dist/layouts/default.cjs +1 -1
  70. package/dist/layouts/default.mjs +14 -14
  71. package/dist/provides/dataProvider.d.ts +2 -6
  72. package/dist/styles/components/file-multiple-input.css +1 -1
  73. package/dist/styles/components/file-multiple-model-input.css +1 -0
  74. package/dist/styles/index.css +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/file-multiple-model-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type { SkyUploadRawFile } from '@/provides'\nimport {\n ElDialog,\n ElIcon,\n ElUpload,\n genFileId,\n type UploadFile,\n type UploadInstance,\n type UploadProps,\n type UploadRawFile,\n} from 'element-plus'\nimport {\n cloneVNode,\n computed,\n defineComponent,\n Fragment,\n h,\n ref,\n useTemplateRef,\n type PropType,\n} from 'vue'\nimport { useUpload, type SkyUploadUserFile } from '@/hooks'\nimport { EpUploadFilled } from '@/icons/EpUploadFilled'\nimport { useI18n } from 'vue-i18n'\n\nexport type SkyFileMultipleModelInputProps = {\n type?: 'file' | 'image'\n dataName?: string\n dataUrl?: string\n limit?: number\n autoUpload?: UploadProps['autoUpload']\n modelValue?: Array<Record<string, unknown>>\n} & Partial<UploadProps>\n\nexport const SkyFileMultipleModelInput = defineComponent({\n name: 'SkyFileMultipleModelInput',\n inheritAttrs: false,\n props: {\n // 这样就不能透传了\n // ...uploadProps,\n type: {\n type: String,\n default: 'file',\n },\n dataName: {\n type: String,\n default: 'name',\n },\n dataUrl: {\n type: String,\n default: 'url',\n },\n limit: {\n type: Number,\n default: 1,\n },\n autoUpload: {\n type: Boolean,\n default: true,\n },\n modelValue: {\n type: Array as PropType<Array<Record<string, unknown>>>,\n default: () => [],\n },\n },\n emits: {\n 'update:modelValue': (value: Array<Record<string, unknown>>) => value,\n },\n setup(props, { slots, attrs, emit }) {\n const { t } = useI18n()\n // init fileList\n const { fileList, action, data, headers, method, name, beforeUpload } = useUpload()\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\n\n fileList.value = props.modelValue!.map((md) => ({\n upload: md,\n name: md[props.dataName!] as string,\n url: md[props.dataUrl!] as string,\n }))\n\n const onExceed = (files: File[]) => {\n if (props.limit === 1) {\n uploadRef.value?.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value?.handleStart(file)\n if (props.autoUpload) {\n uploadRef.value?.submit()\n }\n }\n }\n\n const onSuccess = () => {\n const result: Array<Record<string, unknown>> = []\n for (const fl of fileList.value) {\n if (fl.upload) {\n result.push(fl.upload)\n } else {\n const raw = fl.raw as SkyUploadRawFile | undefined\n if (raw?.upload) {\n result.push(raw.upload)\n }\n }\n }\n emit('update:modelValue', result)\n }\n\n const preview = ref(false)\n const previewUrl = ref<string>()\n const onPreview = (file: UploadFile) => {\n previewUrl.value = file.url\n preview.value = true\n }\n\n const accept = computed(() => (props.type === 'image' ? 'image/*' : undefined))\n const listType = computed(() => (props.type === 'image' ? 'picture-card' : 'text'))\n\n return () => (\n <>\n <ElUpload\n class=\"sky-file-multiple-model-input\"\n ref=\"uploadRef\"\n action={action.value}\n method={method.value}\n name={name.value}\n multiple={props.limit! > 1}\n limit={props.limit}\n beforeUpload={beforeUpload}\n onSuccess={onSuccess}\n onExceed={onExceed}\n headers={headers.value}\n data={data.value}\n listType={listType.value}\n fileList={fileList.value}\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\n autoUpload={props.autoUpload}\n drag={props.type === 'file'}\n showFileList\n onPreview={onPreview}\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\n accept={accept.value}\n {...attrs}\n >\n {{\n default: () =>\n props.type === 'image' ? (\n <ElIcon>\n <EpPlus />\n </ElIcon>\n ) : (\n <>\n <ElIcon class=\"sky-file-multiple-model-input__icon\">\n <EpUploadFilled />\n </ElIcon>\n <div class=\"sky-file-multiple-model-input__text\">\n {t('upload.drop')}\n <em>{t('upload.click')}</em>\n </div>\n </>\n ),\n file: (scope: { file: UploadFile; index: number }) => {\n if (slots.default) {\n const vnodes = slots.default()\n return h(\n Fragment,\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\n )\n }\n },\n }}\n </ElUpload>\n <ElDialog\n appendToBody\n modelValue={preview.value}\n onUpdate:modelValue={(v) => (preview.value = v)}\n >\n <img class=\"sky-file-multiple-model-input__img\" src={previewUrl.value} />\n </ElDialog>\n </>\n )\n },\n})\n"],"names":["SkyFileMultipleModelInput","defineComponent","name","inheritAttrs","props","type","default","dataName","dataUrl","limit","autoUpload","modelValue","emits","emit","t","beforeUpload","uploadRef","useTemplateRef","upload","url","file","files","fl","fileList","result","raw","preview","ref","previewUrl","accept","computed","listType","onSuccess","onExceed","fs","onPreview","attrs","_createVNode","_Fragment","ElIcon","vnodes","slots","h","Fragment","vnode","cloneVNode","v"],"mappings":"2iCAmCAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,4BACAC,aAAAA,GACAC,MAAAA,CAGEC,KAAAA,CACEA,KAAAA,OACAC,QAAAA,QAEFC,SAAAA,CACEF,KAAAA,OACAC,QAAAA,QAEFE,QAAAA,CACEH,KAAAA,OACAC,QAAAA,OAEFG,MAAAA,CACEJ,KAAAA,OACAC,QAAAA,GAEFI,WAAAA,CACEL,KAAAA,QACAC,QAAAA,IAEFK,WAAAA,CACEN,KAAAA,oBAEF,GAEFO,MAAAA,oDAG6BC,KAAAA,CAAK,EAAA,OACxBC,EAAAA,qEAE+CC,aAAAA,iBACvDC,EAAAC,EAAAA,eAAA,WAAA,gCAGEC,OAAAA,EACAhB,KAAAA,EAAAA,EAAAA,QAAAA,EACAiB,IAAAA,EAAAA,EAAAA,OAAAA,CACF,EAAA,cAGE,GAAAf,EAAA,QAAA,EAAA,CACEY,EAAAA,OAAAA,WAAAA,EACA,MAAAI,EAAAC,EAAA,CAAA,EACAD,EAAAA,IAAAA,YAAAA,EACAJ,EAAAA,OAAAA,YAAAA,CAAAA,gBAEEA,EAAAA,OAAAA,OAAAA,CAEJ,qBAKA,UAAAM,KAAAC,EAAA,kBAEIC,EAAAA,KAAAA,EAAAA,MAAAA,MACF,CACE,MAAAC,EAAAH,EAAA,eAEEE,EAAAA,KAAAA,EAAAA,MAAAA,CAEJ,CAEFX,EAAAA,oBAAAA,CAAAA,GAGFa,EAAAC,EAAAA,IAAA,EAAA,EACAC,EAAAD,EAAAA,IAAA,QAEEC,EAAAA,MAAAA,EAAAA,gBAIFC,EAAAC,EAAAA,SAAA,IAAA1B,EAAA,OAAA,QAAA,UAAA,MAAA,EACA2B,EAAAD,EAAAA,SAAA,IAAA1B,EAAA,OAAA,QAAA,eAAA,MAAA,kFAEO,MAAA,gCAAA,IAAA,uDAOe,SAAAA,EAAA,MAAA,gBAEE,aAAAW,EACQ,UAAAiB,EACN,SAAAC,iEAKI,qBAAAC,GAAAX,EAAA,MAAAW,0BAEI,KAAA9B,EAAA,OAAA,OACD,aAAA,GAAA,UAAA+B,EAEP,OAAAN,EAAA,KAEA,EAAAO,CAAA,EAAA,2DAKM9B,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,OAAAA,KAAAA,IAAAA,CAAAA,CAAA,CAAA,EAAA+B,EAAAA,YAAAC,EAAAA,SAAA,KAAA,CAAAD,EAAAA,YAAAE,EAAAA,OAAA,CAAA,MAAA,qCAAA,EAAA,CAAAjC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,EAAAA,eAAAA,KAAAA,IAAAA,CAAAA,CAAA,CAAA,EAAA+B,EAAAA,YAAA,MAAA,CAAA,MAAA,iIAiBpB,MAAAG,EAAAC,EAAA,QAAA,EACA,OAAAC,EAAAA,EAAAC,EAAAA,SAAAH,EAAA,IAAAI,GAAAC,EAAAA,WAAAD,EAAA,SAIF,CACF,8BAAC,aAAA,sBAKsB,sBAAAE,GAAApB,EAAA,MAAAoB,CACsB,EAAA,mCAAA,MAAA,qCAAA,IAAAlB,EAAA,KAEsB,EAAA,IAAA,CAAA,KAI7E,CACF,CAAA"}
@@ -0,0 +1,72 @@
1
+ import { UploadProps } from 'element-plus';
2
+ import { PropType } from 'vue';
3
+ export type SkyFileMultipleModelInputProps = {
4
+ type?: 'file' | 'image';
5
+ dataName?: string;
6
+ dataUrl?: string;
7
+ limit?: number;
8
+ autoUpload?: UploadProps['autoUpload'];
9
+ modelValue?: Array<Record<string, unknown>>;
10
+ } & Partial<UploadProps>;
11
+ export declare const SkyFileMultipleModelInput: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
12
+ type: {
13
+ type: StringConstructor;
14
+ default: string;
15
+ };
16
+ dataName: {
17
+ type: StringConstructor;
18
+ default: string;
19
+ };
20
+ dataUrl: {
21
+ type: StringConstructor;
22
+ default: string;
23
+ };
24
+ limit: {
25
+ type: NumberConstructor;
26
+ default: number;
27
+ };
28
+ autoUpload: {
29
+ type: BooleanConstructor;
30
+ default: boolean;
31
+ };
32
+ modelValue: {
33
+ type: PropType<Array<Record<string, unknown>>>;
34
+ default: () => never[];
35
+ };
36
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
37
+ 'update:modelValue': (value: Array<Record<string, unknown>>) => Record<string, unknown>[];
38
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
39
+ type: {
40
+ type: StringConstructor;
41
+ default: string;
42
+ };
43
+ dataName: {
44
+ type: StringConstructor;
45
+ default: string;
46
+ };
47
+ dataUrl: {
48
+ type: StringConstructor;
49
+ default: string;
50
+ };
51
+ limit: {
52
+ type: NumberConstructor;
53
+ default: number;
54
+ };
55
+ autoUpload: {
56
+ type: BooleanConstructor;
57
+ default: boolean;
58
+ };
59
+ modelValue: {
60
+ type: PropType<Array<Record<string, unknown>>>;
61
+ default: () => never[];
62
+ };
63
+ }>> & Readonly<{
64
+ "onUpdate:modelValue"?: ((value: Record<string, unknown>[]) => any) | undefined;
65
+ }>, {
66
+ type: string;
67
+ modelValue: Record<string, unknown>[];
68
+ autoUpload: boolean;
69
+ limit: number;
70
+ dataName: string;
71
+ dataUrl: string;
72
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,154 @@
1
+ import "element-plus/es/components/dialog/style/css";
2
+ import "element-plus/es/components/icon/style/css";
3
+ import "element-plus/es/components/upload/style/css";
4
+ import { defineComponent as I, useTemplateRef as N, ref as f, computed as s, createVNode as t, Fragment as d, mergeProps as b, h as M, cloneVNode as P } from "vue";
5
+ import { EpPlus as R } from "../../icons/EpPlus.mjs";
6
+ import { ElUpload as T, ElIcon as c, ElDialog as L, genFileId as A } from "element-plus";
7
+ import "../../hooks/useUser.mjs";
8
+ import "../../hooks/usePermission.mjs";
9
+ import "../../hooks/useMenu.mjs";
10
+ import "../../hooks/useTab.mjs";
11
+ import "../../hooks/useRouteKeepAlive.mjs";
12
+ import "../../hooks/useSize.mjs";
13
+ import "../../hooks/useLang.mjs";
14
+ import "../../hooks/useTheme.mjs";
15
+ import "../../hooks/useList.mjs";
16
+ import "../../hooks/useHiddenTitle.mjs";
17
+ import "../../hooks/useForm.mjs";
18
+ import "../../hooks/useShow.mjs";
19
+ import "../../hooks/useReferenceArrayField.mjs";
20
+ import "../../hooks/useTreeWithDetails.mjs";
21
+ import "../../hooks/useFormGrid.mjs";
22
+ import "../../hooks/useReferenceArrayInput.mjs";
23
+ import { useUpload as B } from "../../hooks/useUpload.mjs";
24
+ import { EpUploadFilled as C } from "../../icons/EpUploadFilled.mjs";
25
+ import { useI18n as D } from "vue-i18n";
26
+ const ne = /* @__PURE__ */ I({
27
+ name: "SkyFileMultipleModelInput",
28
+ inheritAttrs: !1,
29
+ props: {
30
+ // 这样就不能透传了
31
+ // ...uploadProps,
32
+ type: {
33
+ type: String,
34
+ default: "file"
35
+ },
36
+ dataName: {
37
+ type: String,
38
+ default: "name"
39
+ },
40
+ dataUrl: {
41
+ type: String,
42
+ default: "url"
43
+ },
44
+ limit: {
45
+ type: Number,
46
+ default: 1
47
+ },
48
+ autoUpload: {
49
+ type: Boolean,
50
+ default: !0
51
+ },
52
+ modelValue: {
53
+ type: Array,
54
+ default: () => []
55
+ }
56
+ },
57
+ emits: {
58
+ "update:modelValue": (l) => l
59
+ },
60
+ setup(l, {
61
+ slots: p,
62
+ attrs: v,
63
+ emit: y
64
+ }) {
65
+ const {
66
+ t: r
67
+ } = D(), {
68
+ fileList: o,
69
+ action: g,
70
+ data: U,
71
+ headers: h,
72
+ method: S,
73
+ name: V,
74
+ beforeUpload: k
75
+ } = B(), u = N("uploadRef");
76
+ o.value = l.modelValue.map((e) => ({
77
+ upload: e,
78
+ name: e[l.dataName],
79
+ url: e[l.dataUrl]
80
+ }));
81
+ const w = (e) => {
82
+ if (l.limit === 1) {
83
+ u.value?.clearFiles();
84
+ const a = e[0];
85
+ a.uid = A(), u.value?.handleStart(a), l.autoUpload && u.value?.submit();
86
+ }
87
+ }, E = () => {
88
+ const e = [];
89
+ for (const a of o.value)
90
+ if (a.upload)
91
+ e.push(a.upload);
92
+ else {
93
+ const i = a.raw;
94
+ i?.upload && e.push(i.upload);
95
+ }
96
+ y("update:modelValue", e);
97
+ }, m = f(!1), n = f(), F = (e) => {
98
+ n.value = e.url, m.value = !0;
99
+ }, _ = s(() => l.type === "image" ? "image/*" : void 0), x = s(() => l.type === "image" ? "picture-card" : "text");
100
+ return () => t(d, null, [t(T, b({
101
+ class: "sky-file-multiple-model-input",
102
+ ref: "uploadRef",
103
+ action: g.value,
104
+ method: S.value,
105
+ name: V.value,
106
+ multiple: l.limit > 1,
107
+ limit: l.limit,
108
+ beforeUpload: k,
109
+ onSuccess: E,
110
+ onExceed: w,
111
+ headers: h.value,
112
+ data: U.value,
113
+ listType: x.value,
114
+ fileList: o.value,
115
+ "onUpdate:file-list": (e) => o.value = e,
116
+ autoUpload: l.autoUpload,
117
+ drag: l.type === "file",
118
+ showFileList: !0,
119
+ onPreview: F,
120
+ accept: _.value
121
+ }, v), {
122
+ default: () => l.type === "image" ? t(c, null, {
123
+ default: () => [t(R, null, null)]
124
+ }) : t(d, null, [t(c, {
125
+ class: "sky-file-multiple-model-input__icon"
126
+ }, {
127
+ default: () => [t(C, null, null)]
128
+ }), t("div", {
129
+ class: "sky-file-multiple-model-input__text"
130
+ }, [r("upload.drop"), t("em", null, [r("upload.click")])])]),
131
+ file: (e) => {
132
+ if (p.default) {
133
+ const a = p.default();
134
+ return M(d, a.map((i) => P(i, {
135
+ ...e
136
+ })));
137
+ }
138
+ }
139
+ }), t(L, {
140
+ appendToBody: !0,
141
+ modelValue: m.value,
142
+ "onUpdate:modelValue": (e) => m.value = e
143
+ }, {
144
+ default: () => [t("img", {
145
+ class: "sky-file-multiple-model-input__img",
146
+ src: n.value
147
+ }, null)]
148
+ })]);
149
+ }
150
+ });
151
+ export {
152
+ ne as SkyFileMultipleModelInput
153
+ };
154
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/file-multiple-model-input/index.tsx"],"sourcesContent":["import { EpPlus } from '@/icons/EpPlus'\nimport type { SkyUploadRawFile } from '@/provides'\nimport {\n ElDialog,\n ElIcon,\n ElUpload,\n genFileId,\n type UploadFile,\n type UploadInstance,\n type UploadProps,\n type UploadRawFile,\n} from 'element-plus'\nimport {\n cloneVNode,\n computed,\n defineComponent,\n Fragment,\n h,\n ref,\n useTemplateRef,\n type PropType,\n} from 'vue'\nimport { useUpload, type SkyUploadUserFile } from '@/hooks'\nimport { EpUploadFilled } from '@/icons/EpUploadFilled'\nimport { useI18n } from 'vue-i18n'\n\nexport type SkyFileMultipleModelInputProps = {\n type?: 'file' | 'image'\n dataName?: string\n dataUrl?: string\n limit?: number\n autoUpload?: UploadProps['autoUpload']\n modelValue?: Array<Record<string, unknown>>\n} & Partial<UploadProps>\n\nexport const SkyFileMultipleModelInput = defineComponent({\n name: 'SkyFileMultipleModelInput',\n inheritAttrs: false,\n props: {\n // 这样就不能透传了\n // ...uploadProps,\n type: {\n type: String,\n default: 'file',\n },\n dataName: {\n type: String,\n default: 'name',\n },\n dataUrl: {\n type: String,\n default: 'url',\n },\n limit: {\n type: Number,\n default: 1,\n },\n autoUpload: {\n type: Boolean,\n default: true,\n },\n modelValue: {\n type: Array as PropType<Array<Record<string, unknown>>>,\n default: () => [],\n },\n },\n emits: {\n 'update:modelValue': (value: Array<Record<string, unknown>>) => value,\n },\n setup(props, { slots, attrs, emit }) {\n const { t } = useI18n()\n // init fileList\n const { fileList, action, data, headers, method, name, beforeUpload } = useUpload()\n const uploadRef = useTemplateRef<UploadInstance>('uploadRef')\n\n fileList.value = props.modelValue!.map((md) => ({\n upload: md,\n name: md[props.dataName!] as string,\n url: md[props.dataUrl!] as string,\n }))\n\n const onExceed = (files: File[]) => {\n if (props.limit === 1) {\n uploadRef.value?.clearFiles()\n const file = files[0] as UploadRawFile\n file.uid = genFileId()\n uploadRef.value?.handleStart(file)\n if (props.autoUpload) {\n uploadRef.value?.submit()\n }\n }\n }\n\n const onSuccess = () => {\n const result: Array<Record<string, unknown>> = []\n for (const fl of fileList.value) {\n if (fl.upload) {\n result.push(fl.upload)\n } else {\n const raw = fl.raw as SkyUploadRawFile | undefined\n if (raw?.upload) {\n result.push(raw.upload)\n }\n }\n }\n emit('update:modelValue', result)\n }\n\n const preview = ref(false)\n const previewUrl = ref<string>()\n const onPreview = (file: UploadFile) => {\n previewUrl.value = file.url\n preview.value = true\n }\n\n const accept = computed(() => (props.type === 'image' ? 'image/*' : undefined))\n const listType = computed(() => (props.type === 'image' ? 'picture-card' : 'text'))\n\n return () => (\n <>\n <ElUpload\n class=\"sky-file-multiple-model-input\"\n ref=\"uploadRef\"\n action={action.value}\n method={method.value}\n name={name.value}\n multiple={props.limit! > 1}\n limit={props.limit}\n beforeUpload={beforeUpload}\n onSuccess={onSuccess}\n onExceed={onExceed}\n headers={headers.value}\n data={data.value}\n listType={listType.value}\n fileList={fileList.value}\n onUpdate:file-list={(fs: SkyUploadUserFile[]) => (fileList.value = fs)}\n autoUpload={props.autoUpload}\n drag={props.type === 'file'}\n showFileList\n onPreview={onPreview}\n // https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/accept\n accept={accept.value}\n {...attrs}\n >\n {{\n default: () =>\n props.type === 'image' ? (\n <ElIcon>\n <EpPlus />\n </ElIcon>\n ) : (\n <>\n <ElIcon class=\"sky-file-multiple-model-input__icon\">\n <EpUploadFilled />\n </ElIcon>\n <div class=\"sky-file-multiple-model-input__text\">\n {t('upload.drop')}\n <em>{t('upload.click')}</em>\n </div>\n </>\n ),\n file: (scope: { file: UploadFile; index: number }) => {\n if (slots.default) {\n const vnodes = slots.default()\n return h(\n Fragment,\n vnodes.map((vnode) => cloneVNode(vnode, { ...scope })),\n )\n }\n },\n }}\n </ElUpload>\n <ElDialog\n appendToBody\n modelValue={preview.value}\n onUpdate:modelValue={(v) => (preview.value = v)}\n >\n <img class=\"sky-file-multiple-model-input__img\" src={previewUrl.value} />\n </ElDialog>\n </>\n )\n },\n})\n"],"names":["SkyFileMultipleModelInput","defineComponent","name","inheritAttrs","props","type","default","dataName","dataUrl","limit","autoUpload","modelValue","emits","emit","t","beforeUpload","uploadRef","useTemplateRef","upload","url","file","files","fl","fileList","result","raw","preview","ref","previewUrl","accept","computed","listType","onSuccess","onExceed","fs","onPreview","attrs","_createVNode","_Fragment","ElIcon","vnodes","slots","h","Fragment","vnode","cloneVNode","v"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA;AAAAA;AAAAA,IAGEC,MAAAA;AAAAA,MACEA,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,UAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFE,SAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFG,OAAAA;AAAAA,MACEJ,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFI,YAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFK,YAAAA;AAAAA,MACEN,MAAAA;AAAAA;IAEF;AAAA;EAEFO,OAAAA;AAAAA;;;;;IAG6BC,MAAAA;AAAAA,EAAK,GAAA;;MACxBC,GAAAA;AAAAA;;;;;;;MAE+CC,cAAAA;AAAAA,aACvDC,IAAAC,EAAA,WAAA;;MAGEC,QAAAA;AAAAA,MACAhB,MAAAA,EAAAA,EAAAA,QAAAA;AAAAA,MACAiB,KAAAA,EAAAA,EAAAA,OAAAA;AAAAA,IACF,EAAA;;AAGE,UAAAf,EAAA,UAAA,GAAA;AACEY,QAAAA,EAAAA,OAAAA,WAAAA;AACA,cAAAI,IAAAC,EAAA,CAAA;AACAD,QAAAA,EAAAA,MAAAA,EAAAA,GACAJ,EAAAA,OAAAA,YAAAA,CAAAA,mBAEEA,EAAAA,OAAAA,OAAAA;AAAAA,MAEJ;AAAA;;AAKA,iBAAAM,KAAAC,EAAA;;AAEIC,UAAAA,EAAAA,KAAAA,EAAAA,MAAAA;AAAAA,aACF;AACE,gBAAAC,IAAAH,EAAA;uBAEEE,EAAAA,KAAAA,EAAAA,MAAAA;AAAAA,QAEJ;AAEFX,MAAAA,EAAAA,qBAAAA,CAAAA;AAAAA,OAGFa,IAAAC,EAAA,EAAA,GACAC,IAAAD,EAAA;AAEEC,MAAAA,EAAAA,QAAAA,EAAAA;OAIFC,IAAAC,EAAA,MAAA1B,EAAA,SAAA,UAAA,YAAA,MAAA,GACA2B,IAAAD,EAAA,MAAA1B,EAAA,SAAA,UAAA,iBAAA,MAAA;;MAEO,OAAA;AAAA,MAAA,KAAA;AAAA;;;MAOe,UAAAA,EAAA,QAAA;AAAA;MAEE,cAAAW;AAAA,MACQ,WAAAiB;AAAA,MACN,UAAAC;AAAA;;;;MAKI,sBAAA,CAAAC,MAAAX,EAAA,QAAAW;AAAA;MAEI,MAAA9B,EAAA,SAAA;AAAA,MACD,cAAA;AAAA,MAAA,WAAA+B;AAAA,MAEP,QAAAN,EAAA;AAAA,IAEA,GAAAO,CAAA,GAAA;AAAA;QAKM9B,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,CAAAA;AAAAA,MAAA,CAAA,IAAA+B,EAAAC,GAAA,MAAA,CAAAD,EAAAE,GAAA;AAAA,QAAA,OAAA;AAAA,MAAA,GAAA;AAAA,QAAAjC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,MAAAA,IAAAA,CAAAA;AAAAA,MAAA,CAAA,GAAA+B,EAAA,OAAA;AAAA,QAAA,OAAA;AAAA;;;AAiBpB,gBAAAG,IAAAC,EAAA,QAAA;AACA,iBAAAC,EAAAC,GAAAH,EAAA,IAAA,CAAAI,MAAAC,EAAAD,GAAA;AAAA;;QAIF;AAAA,MACF;AAAA;MAAC,cAAA;AAAA;MAKsB,uBAAA,CAAAE,MAAApB,EAAA,QAAAoB;AAAA,IACsB,GAAA;AAAA;QAAA,OAAA;AAAA,QAAA,KAAAlB,EAAA;AAAA,MAEsB,GAAA,IAAA,CAAA;AAAA;EAI7E;AACF,CAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/form/style/css");require("element-plus/es/components/form-item/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");const q=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const a=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const u=require("element-plus"),d=require("vue-i18n");function f(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!e.isVNode(r)}const m=e.defineComponent({name:"SkyFilter",setup(r,{slots:o}){const{t:n}=d.useI18n(),{formData:i}=a.useProvideForm(),{filterData:l,getList:s}=q.useList(),c=()=>{Object.assign(l,i),s()};return()=>{let t;return e.createVNode(u.ElForm,{class:"sky-filter",inline:!0,model:i},{default:()=>[o.default?.(),e.createVNode(u.ElFormItem,null,{default:()=>[e.createVNode(u.ElButton,{type:"primary",onClick:c},f(t=n("button.query"))?t:{default:()=>[t]})]})]})}}});exports.SkyFilter=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");require("element-plus/es/components/form/style/css");require("element-plus/es/components/form-item/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");const q=require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const a=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const d=require("vue-i18n"),u=require("element-plus");function f(r){return typeof r=="function"||Object.prototype.toString.call(r)==="[object Object]"&&!e.isVNode(r)}const m=e.defineComponent({name:"SkyFilter",setup(r,{slots:o}){const{t:n}=d.useI18n(),{formData:i}=a.useProvideForm(),{filterData:l,getList:s}=q.useList(),c=()=>{Object.assign(l,i),s()};return()=>{let t;return e.createVNode(u.ElForm,{class:"sky-filter",inline:!0,model:i},{default:()=>[o.default?.(),e.createVNode(u.ElFormItem,null,{default:()=>[e.createVNode(u.ElButton,{type:"primary",onClick:c},f(t=n("button.query"))?t:{default:()=>[t]})]})]})}}});exports.SkyFilter=m;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -18,8 +18,8 @@ import "../../hooks/useReferenceArrayField.mjs";
18
18
  import "../../hooks/useTreeWithDetails.mjs";
19
19
  import "../../hooks/useFormGrid.mjs";
20
20
  import "../../hooks/useReferenceArrayInput.mjs";
21
- import { ElForm as a, ElFormItem as d, ElButton as y } from "element-plus";
22
- import { useI18n as b } from "vue-i18n";
21
+ import { useI18n as a } from "vue-i18n";
22
+ import { ElForm as d, ElFormItem as y, ElButton as b } from "element-plus";
23
23
  function k(t) {
24
24
  return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !u(t);
25
25
  }
@@ -30,7 +30,7 @@ const G = /* @__PURE__ */ s({
30
30
  }) {
31
31
  const {
32
32
  t: m
33
- } = b(), {
33
+ } = a(), {
34
34
  formData: i
35
35
  } = f(), {
36
36
  filterData: p,
@@ -40,13 +40,13 @@ const G = /* @__PURE__ */ s({
40
40
  };
41
41
  return () => {
42
42
  let o;
43
- return r(a, {
43
+ return r(d, {
44
44
  class: "sky-filter",
45
45
  inline: !0,
46
46
  model: i
47
47
  }, {
48
- default: () => [e.default?.(), r(d, null, {
49
- default: () => [r(y, {
48
+ default: () => [e.default?.(), r(y, null, {
49
+ default: () => [r(b, {
50
50
  type: "primary",
51
51
  onClick: l
52
52
  }, k(o = m("button.query")) ? o : {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/image/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const c=require("element-plus"),d=require("vue-router"),q=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyImageField",inheritAttrs:!1,props:{source:{type:String,required:!0},src:{type:String,default:"src"},label:String,row:Object},setup(r,{attrs:i}){const n=d.useRoute(),l=a.useHiddenTitle(),o=e.computed(()=>r.label||r.source),s=n.meta,t=e.computed(()=>{const u=r.row?.[r.source];return u?typeof u!="object"?String(u):u[r.src]||"":""});return()=>e.createVNode(q.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[t.value&&(l?e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null):e.createVNode("div",{class:"sky-image-field"},[o.value&&e.createVNode("h4",null,[o.value]),e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null)]))]})}});exports.SkyImageField=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/image/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");require("vue-i18n");const c=require("element-plus"),d=require("vue-router"),q=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyImageField",inheritAttrs:!1,props:{source:{type:String,required:!0},src:{type:String,default:"src"},label:String,row:Object},setup(r,{attrs:i}){const n=d.useRoute(),l=a.useHiddenTitle(),o=e.computed(()=>r.label||r.source),s=n.meta,t=e.computed(()=>{const u=r.row?.[r.source];return u?typeof u!="object"?String(u):u[r.src]||"":""});return()=>e.createVNode(q.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[t.value&&(l?e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null):e.createVNode("div",{class:"sky-image-field"},[o.value&&e.createVNode("h4",null,[o.value]),e.createVNode(c.ElImage,e.mergeProps({src:t.value},i),null)]))]})}});exports.SkyImageField=m;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (!v) {\n return ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":"s3BAcAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,IAAAA,CACEF,KAAAA,OACAG,QAAAA,OAEFC,MAAAA,OACAC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAC,EAAAA,SAAA,IAAAd,EAAA,OAAAA,EAAA,MAAA,EACAe,EAAAN,EAAA,KAEAO,EAAAF,EAAAA,SAAA,IAAA,oCAKE,OAAAG,GAAA,mBAGAA,EAAAjB,EAAA,GAAA,GAAA,GALE,EAMJ,CAAA,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,CAAAK,QAAAA,IAAAA,CAAAA,EAAAA,QAAAA,EAAAA,EAAAA,YAAAA,EAAAA,QAAAA,aAAAA,CAE1E,IAAAW,EAAA,qCAC0B,MAAA,iBAAA,EAAA,CAAAH,EAAA,OAAAK,EAAAA,YAAA,KAAA,KAAA,CAAAL,EAAA,KAAA,CAAA,EAAAK,cAAAC,EAAAA,QAAAC,EAAAA,WAAA,CAGI,IAAAJ,EAAA,qBAMlD,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (!v) {\n return ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":"04BAcAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,IAAAA,CACEF,KAAAA,OACAG,QAAAA,OAEFC,MAAAA,OACAC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAC,EAAAA,SAAA,IAAAd,EAAA,OAAAA,EAAA,MAAA,EACAe,EAAAN,EAAA,KAEAO,EAAAF,EAAAA,SAAA,IAAA,oCAKE,OAAAG,GAAA,mBAGAA,EAAAjB,EAAA,GAAA,GAAA,GALE,EAMJ,CAAA,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,CAAAK,QAAAA,IAAAA,CAAAA,EAAAA,QAAAA,EAAAA,EAAAA,YAAAA,EAAAA,QAAAA,aAAAA,CAE1E,IAAAW,EAAA,qCAC0B,MAAA,iBAAA,EAAA,CAAAH,EAAA,OAAAK,EAAAA,YAAA,KAAA,KAAA,CAAAL,EAAA,KAAA,CAAA,EAAAK,cAAAC,EAAAA,QAAAC,EAAAA,WAAA,CAGI,IAAAJ,EAAA,qBAMlD,CACF,CAAA"}
@@ -16,10 +16,11 @@ import "../../hooks/useReferenceArrayField.mjs";
16
16
  import "../../hooks/useTreeWithDetails.mjs";
17
17
  import "../../hooks/useFormGrid.mjs";
18
18
  import "../../hooks/useReferenceArrayInput.mjs";
19
+ import "vue-i18n";
19
20
  import { ElImage as n } from "element-plus";
20
21
  import { useRoute as f } from "vue-router";
21
22
  import { SkyCanAccess as g } from "../can-access/index.mjs";
22
- const R = /* @__PURE__ */ a({
23
+ const V = /* @__PURE__ */ a({
23
24
  name: "SkyImageField",
24
25
  inheritAttrs: !1,
25
26
  props: {
@@ -57,6 +58,6 @@ const R = /* @__PURE__ */ a({
57
58
  }
58
59
  });
59
60
  export {
60
- R as SkyImageField
61
+ V as SkyImageField
61
62
  };
62
63
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (!v) {\n return ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAcA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,KAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAG,SAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,MAAAd,EAAA,SAAAA,EAAA,MAAA,GACAe,IAAAN,EAAA,MAEAO,IAAAF,EAAA,MAAA;;iBAKE,OAAAG,KAAA,uBAGAA,EAAAjB,EAAA,GAAA,KAAA,KALE;AAAA,IAMJ,CAAA;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA,MAAAK,SAAAA,MAAAA,CAAAA,EAAAA,UAAAA,IAAAA,EAAAA,GAAAA,EAAAA;AAAAA,QAE1E,KAAAW,EAAA;AAAA;QAC0B,OAAA;AAAA,MAAA,GAAA,CAAAH,EAAA,SAAAK,EAAA,MAAA,MAAA,CAAAL,EAAA,KAAA,CAAA,GAAAK,EAAAC,GAAAC,EAAA;AAAA,QAGI,KAAAJ,EAAA;AAAA;;EAMlD;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport { ElImage, type ImageProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport type { SkyLayoutRouteMeta } from '@/router'\n\nexport interface SkyImageFieldProps {\n source: string\n src?: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\n name: 'SkyImageField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n src: {\n type: String,\n default: 'src',\n },\n label: String,\n row: Object,\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const title = computed<string>(() => props.label || props.source)\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (!v) {\n return ''\n }\n if (typeof v !== 'object') {\n return String(v)\n }\n return (v as Record<string, string>)[props.src!] || ''\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {field.value &&\n (hiddenTitle ? (\n <ElImage src={field.value} {...attrs} />\n ) : (\n <div class=\"sky-image-field\">\n {title.value && <h4>{title.value}</h4>}\n <ElImage src={field.value} {...attrs} />\n </div>\n ))}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyImageField","defineComponent","name","inheritAttrs","props","source","type","required","src","default","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","title","computed","routeMeta","field","v","_createVNode","ElImage","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,KAAAA;AAAAA,MACEF,MAAAA;AAAAA,MACAG,SAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,MAAAd,EAAA,SAAAA,EAAA,MAAA,GACAe,IAAAN,EAAA,MAEAO,IAAAF,EAAA,MAAA;;iBAKE,OAAAG,KAAA,uBAGAA,EAAAjB,EAAA,GAAA,KAAA,KALE;AAAA,IAMJ,CAAA;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA,MAAAK,SAAAA,MAAAA,CAAAA,EAAAA,UAAAA,IAAAA,EAAAA,GAAAA,EAAAA;AAAAA,QAE1E,KAAAW,EAAA;AAAA;QAC0B,OAAA;AAAA,MAAA,GAAA,CAAAH,EAAA,SAAAK,EAAA,MAAA,MAAA,CAAAL,EAAA,KAAA,CAAA,GAAAK,EAAAC,GAAAC,EAAA;AAAA,QAGI,KAAAJ,EAAA;AAAA;;EAMlD;AACF,CAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const o=require("element-plus"),q=require("vue-router"),k=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyLinkField",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,row:Object},emits:["click"],setup(r,{emit:t,attrs:u}){const c=q.useRoute(),l=a.useHiddenTitle(),s=c.meta,i=e.computed(()=>{const n=r.row?.[r.source];return n?String(n):""}),d=e.computed(()=>r.label||r.source);return()=>e.createVNode(k.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[l?e.createVNode("div",null,[e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})]):e.createVNode("div",{class:"sky-link-field"},[e.createVNode("h4",null,[d.value]),e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})])]})}});exports.SkyLinkField=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const a=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");require("vue-i18n");const o=require("element-plus"),q=require("vue-router"),k=require("../can-access/index.cjs"),m=e.defineComponent({name:"SkyLinkField",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,row:Object},emits:["click"],setup(r,{emit:t,attrs:u}){const c=q.useRoute(),l=a.useHiddenTitle(),s=c.meta,i=e.computed(()=>{const n=r.row?.[r.source];return n?String(n):""}),d=e.computed(()=>r.label||r.source);return()=>e.createVNode(k.SkyCanAccess,{resource:s.resource,action:["list","show"],column:r.source},{default:()=>[l?e.createVNode("div",null,[e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})]):e.createVNode("div",{class:"sky-link-field"},[e.createVNode("h4",null,[d.value]),e.createVNode(o.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:()=>t("click",r.row)},u),{default:()=>[i.value]})])]})}});exports.SkyLinkField=m;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyLinkFieldProps {\n source: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\n name: 'SkyLinkField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n emits: ['click'],\n setup(props, { emit, attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (v) {\n return String(v)\n }\n return ''\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {hiddenTitle ? (\n <div>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n ) : (\n <div class=\"sky-link-field\">\n <h4>{title.value}</h4>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyLinkField","defineComponent","name","inheritAttrs","props","source","type","required","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","routeMeta","field","computed","v","title","default","_createVNode"],"mappings":"u3BAaAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,eACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,IAAAA,wCAGmBC,MAAAA,CAAM,EAAA,CACzB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAJ,EAAA,KAEAK,EAAAC,EAAAA,SAAA,IAAA,2BAEE,OAAAC,YAGA,EACF,CAAA,EAEAC,EAAAF,EAAAA,SAAA,IACEb,EAAA,OAAAA,EAAA,MACF,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,iFAC5E,KAAA,UAAA,KAAA,GAAA,GAAA,+BAEgE,EAAAM,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,CACrE,CAAA,CAAA,CAAA,EAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,6FAKE,KAAA,UAAA,KAAA,GAAA,GAAA,+BACwD,EAAAX,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,QAO7F,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyLinkFieldProps {\n source: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\n name: 'SkyLinkField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n emits: ['click'],\n setup(props, { emit, attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (v) {\n return String(v)\n }\n return ''\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {hiddenTitle ? (\n <div>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n ) : (\n <div class=\"sky-link-field\">\n <h4>{title.value}</h4>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyLinkField","defineComponent","name","inheritAttrs","props","source","type","required","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","routeMeta","field","computed","v","title","default","_createVNode"],"mappings":"24BAaAA,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,eACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,IAAAA,wCAGmBC,MAAAA,CAAM,EAAA,CACzB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,eAAA,EACAC,EAAAJ,EAAA,KAEAK,EAAAC,EAAAA,SAAA,IAAA,2BAEE,OAAAC,YAGA,EACF,CAAA,EAEAC,EAAAF,EAAAA,SAAA,IACEb,EAAA,OAAAA,EAAA,MACF,8DAG4C,OAAA,CAAA,OAAA,MAAA,EAA0B,OAAAA,EAAA,MAAsB,EAAA,iFAC5E,KAAA,UAAA,KAAA,GAAA,GAAA,+BAEgE,EAAAM,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,CACrE,CAAA,CAAA,CAAA,EAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,6FAKE,KAAA,UAAA,KAAA,GAAA,GAAA,+BACwD,EAAAX,CAAA,EAAA,CAAWU,QAAAA,IAAAA,CAAAA,EAAAA,KAAAA,QAO7F,CACF,CAAA"}
@@ -16,10 +16,11 @@ import "../../hooks/useReferenceArrayField.mjs";
16
16
  import "../../hooks/useTreeWithDetails.mjs";
17
17
  import "../../hooks/useFormGrid.mjs";
18
18
  import "../../hooks/useReferenceArrayInput.mjs";
19
+ import "vue-i18n";
19
20
  import { ElButton as n } from "element-plus";
20
21
  import { useRoute as k } from "vue-router";
21
22
  import { SkyCanAccess as y } from "../can-access/index.mjs";
22
- const R = /* @__PURE__ */ d({
23
+ const V = /* @__PURE__ */ d({
23
24
  name: "SkyLinkField",
24
25
  inheritAttrs: !1,
25
26
  props: {
@@ -65,6 +66,6 @@ const R = /* @__PURE__ */ d({
65
66
  }
66
67
  });
67
68
  export {
68
- R as SkyLinkField
69
+ V as SkyLinkField
69
70
  };
70
71
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyLinkFieldProps {\n source: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\n name: 'SkyLinkField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n emits: ['click'],\n setup(props, { emit, attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (v) {\n return String(v)\n }\n return ''\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {hiddenTitle ? (\n <div>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n ) : (\n <div class=\"sky-link-field\">\n <h4>{title.value}</h4>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyLinkField","defineComponent","name","inheritAttrs","props","source","type","required","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","routeMeta","field","computed","v","title","default","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAaA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;;;IAGmBC,OAAAA;AAAAA,EAAM,GAAA;AACzB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAJ,EAAA,MAEAK,IAAAC,EAAA,MAAA;;AAEE,aAAAC,gBAGA;AAAA,IACF,CAAA,GAEAC,IAAAF,EAAA,MACEb,EAAA,SAAAA,EAAA,MACF;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA;QAC5E,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MAEgE,GAAAM,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA,MACrE,CAAA,CAAA,CAAA,IAAAC,EAAA,OAAA;AAAA,QAAA,OAAA;AAAA;QAKE,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MACwD,GAAAX,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA;;EAO7F;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyLinkFieldProps {\n source: string\n label?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\n name: 'SkyLinkField',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n row: Object,\n },\n emits: ['click'],\n setup(props, { emit, attrs }) {\n const route = useRoute()\n const hiddenTitle = useHiddenTitle()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const field = computed<string>(() => {\n const v = props.row?.[props.source]\n if (v) {\n return String(v)\n }\n return ''\n })\n\n const title = computed(() => {\n return props.label || props.source\n })\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\n {hiddenTitle ? (\n <div>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n ) : (\n <div class=\"sky-link-field\">\n <h4>{title.value}</h4>\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\n {field.value}\n </ElButton>\n </div>\n )}\n </SkyCanAccess>\n )\n },\n})\n"],"names":["SkyLinkField","defineComponent","name","inheritAttrs","props","source","type","required","label","row","attrs","route","useRoute","hiddenTitle","useHiddenTitle","routeMeta","field","computed","v","title","default","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,KAAAA;AAAAA;;;;IAGmBC,OAAAA;AAAAA,EAAM,GAAA;AACzB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,GACAC,IAAAJ,EAAA,MAEAK,IAAAC,EAAA,MAAA;;AAEE,aAAAC,gBAGA;AAAA,IACF,CAAA,GAEAC,IAAAF,EAAA,MACEb,EAAA,SAAAA,EAAA,MACF;;;MAG4C,QAAA,CAAA,QAAA,MAAA;AAAA,MAA0B,QAAAA,EAAA;AAAA,IAAsB,GAAA;AAAA;QAC5E,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MAEgE,GAAAM,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA,MACrE,CAAA,CAAA,CAAA,IAAAC,EAAA,OAAA;AAAA,QAAA,OAAA;AAAA;QAKE,MAAA;AAAA,QAAA,MAAA;AAAA,QAAA,IAAA;AAAA;MACwD,GAAAX,CAAA,GAAA;AAAA,QAAWU,SAAAA,MAAAA,CAAAA,EAAAA,KAAAA;AAAAA;;EAO7F;AACF,CAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/radio/style/css");require("element-plus/es/components/radio-group/style/css");const r=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const q=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const m=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const i=require("element-plus"),f=require("vue-router"),y=require("../can-access/index.cjs");function b(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const S=r.defineComponent({name:"SkyRadioButtonGroupInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,options:Array,rules:Object,defaultValue:{type:[String,Number],default:""}},setup(e,{attrs:l}){const n=f.useRoute(),c=m.useFormGrid(),{formData:u,editData:a}=q.useForm(),s=n.meta,d=r.computed(()=>e.label||e.source);return typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),a.value&&(u[e.source]=a.value[e.source]),()=>{let o;return r.createVNode(y.SkyCanAccess,{resource:s.resource,action:["create","edit"],column:e.source},{default:()=>[r.createVNode(i.ElFormItem,{label:d.value,prop:e.source,rules:e.rules,style:c?`grid-area: ${e.source}`:""},{default:()=>[r.createVNode(i.ElRadioGroup,r.mergeProps({modelValue:u[e.source],"onUpdate:modelValue":t=>u[e.source]=t},l),b(o=e.options.map(t=>r.h(i.ElRadio,{key:t.value,value:t.value},{default:()=>t.label})))?o:{default:()=>[o]})]})]})}}});exports.SkyRadioButtonGroupInput=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/form-item/style/css");require("element-plus/es/components/radio/style/css");require("element-plus/es/components/radio-group/style/css");const r=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");const q=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const m=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");require("vue-i18n");const i=require("element-plus"),f=require("vue-router"),y=require("../can-access/index.cjs");function b(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const S=r.defineComponent({name:"SkyRadioButtonGroupInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,options:Array,rules:Object,defaultValue:{type:[String,Number],default:""}},setup(e,{attrs:l}){const n=f.useRoute(),c=m.useFormGrid(),{formData:u,editData:a}=q.useForm(),s=n.meta,d=r.computed(()=>e.label||e.source);return typeof u[e.source]>"u"&&(u[e.source]=e.defaultValue),a.value&&(u[e.source]=a.value[e.source]),()=>{let o;return r.createVNode(y.SkyCanAccess,{resource:s.resource,action:["create","edit"],column:e.source},{default:()=>[r.createVNode(i.ElFormItem,{label:d.value,prop:e.source,rules:e.rules,style:c?`grid-area: ${e.source}`:""},{default:()=>[r.createVNode(i.ElRadioGroup,r.mergeProps({modelValue:u[e.source],"onUpdate:modelValue":t=>u[e.source]=t},l),b(o=e.options.map(t=>r.h(i.ElRadio,{key:t.value,value:t.value},{default:()=>t.label})))?o:{default:()=>[o]})]})]})}}});exports.SkyRadioButtonGroupInput=S;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":"o/BAW4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAgB5C,MAAAE,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,2BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,QAAAA,MACAC,MAAAA,OACAC,aAAAA,CACEL,KAAAA,CAAAA,OAAAA,MAAAA,EACAM,QAAAA,EACF,YAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAClBC,EAAAL,EAAA,KAEAM,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,wEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,QAGK,IAAAC,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAAnB,EAAA,MAAsB,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,2CAItE,MAAAI,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,aAAAA,EAAAA,WAAAA,CAAA,WAAAU,EAAAlB,EAAA,MAAA,wCAK4B,EAAAS,CAAA,EAAAhB,EAAA0B,EAAAnB,EAAA,QAAA,IAAAoB,GAAAC,EAAAA,EAAAC,UAAA,0BAOhC,EAAA,CACvCd,QAAAA,IAAAA,EAAAA,4BAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAKX,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":"wgCAW4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAgB5C,MAAAE,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,2BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,QAAAA,MACAC,MAAAA,OACAC,aAAAA,CACEL,KAAAA,CAAAA,OAAAA,MAAAA,EACAM,QAAAA,EACF,YAEaC,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAClBC,EAAAL,EAAA,KAEAM,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,wEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,QAGK,IAAAC,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAAnB,EAAA,MAAsB,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,2CAItE,MAAAI,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAQ,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,aAAAA,EAAAA,WAAAA,CAAA,WAAAU,EAAAlB,EAAA,MAAA,wCAK4B,EAAAS,CAAA,EAAAhB,EAAA0B,EAAAnB,EAAA,QAAA,IAAAoB,GAAAC,EAAAA,EAAAC,UAAA,0BAOhC,EAAA,CACvCd,QAAAA,IAAAA,EAAAA,4BAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAKX,CACF,CAAA"}
@@ -18,13 +18,14 @@ import "../../hooks/useReferenceArrayField.mjs";
18
18
  import "../../hooks/useTreeWithDetails.mjs";
19
19
  import { useFormGrid as S } from "../../hooks/useFormGrid.mjs";
20
20
  import "../../hooks/useReferenceArrayInput.mjs";
21
+ import "vue-i18n";
21
22
  import { ElFormItem as g, ElRadioGroup as v, ElRadio as V } from "element-plus";
22
23
  import { useRoute as G } from "vue-router";
23
24
  import { SkyCanAccess as R } from "../can-access/index.mjs";
24
25
  function j(e) {
25
26
  return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !y(e);
26
27
  }
27
- const L = /* @__PURE__ */ d({
28
+ const Q = /* @__PURE__ */ d({
28
29
  name: "SkyRadioButtonGroupInput",
29
30
  inheritAttrs: !1,
30
31
  props: {
@@ -77,6 +78,6 @@ const L = /* @__PURE__ */ d({
77
78
  }
78
79
  });
79
80
  export {
80
- L as SkyRadioButtonGroupInput
81
+ Q as SkyRadioButtonGroupInput
81
82
  };
82
83
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAW4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAgB5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEL,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAM,SAAAA;AAAAA,IACF;AAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAL,EAAA,MAEAM,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;mFAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGK,UAAAC;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAAnB,EAAA;AAAA,MAAsB,GAAA;AAAA,QAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;;;UAItE,OAAAI,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,QACiC,GAAA;AAAA,UAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,YAAA,YAAAU,EAAAlB,EAAA,MAAA;AAAA;UAK4B,GAAAS,CAAA,GAAAhB,EAAA0B,IAAAnB,EAAA,QAAA,IAAA,CAAAoB,MAAAC,EAAAC,GAAA;AAAA;;UAOhC,GAAA;AAAA,YACvCd,SAAAA,MAAAA,EAAAA;AAAAA;;UAEL,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAKX;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElFormItem,\n ElRadio,\n ElRadioGroup,\n type FormItemRule,\n type RadioGroupProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, type PropType } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyRadioButtonGroupInputOptionItem {\n value: string | number\n label: string\n disabled?: boolean\n}\n\nexport interface SkyRadioButtonGroupInputProps {\n source: string\n label?: string\n options: SkyRadioButtonGroupInputOptionItem[]\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: string | number\n}\n\nexport const SkyRadioButtonGroupInput = defineComponent<\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\n>({\n name: 'SkyRadioButtonGroupInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\n rules: Object,\n defaultValue: {\n type: [String, Number],\n default: '',\n },\n },\n setup(props, { attrs }) {\n const route = useRoute()\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n const title = computed<string>(() => props.label || props.source)\n\n if (typeof formData[props.source] === 'undefined') {\n formData[props.source] = props.defaultValue!\n }\n\n if (editData.value) {\n formData[props.source] = editData.value[props.source]\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElRadioGroup\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\n onUpdate:modelValue={(v) =>\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\n }\n {...attrs}\n >\n {props.options.map((option) =>\n h(\n ElRadio,\n { key: option.value, value: option.value },\n { default: () => option.label },\n ),\n )}\n </ElRadioGroup>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyRadioButtonGroupInput","defineComponent","name","inheritAttrs","props","source","type","required","label","options","rules","defaultValue","default","attrs","route","useRoute","formGrid","useFormGrid","editData","routeMeta","title","computed","formData","_slot","option","h","ElRadio"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAW4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAgB5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA,IACAC,SAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEL,MAAAA,CAAAA,QAAAA,MAAAA;AAAAA,MACAM,SAAAA;AAAAA,IACF;AAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAL,EAAA,MAEAM,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;mFAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;AAGK,UAAAC;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAAnB,EAAA;AAAA,MAAsB,GAAA;AAAA,QAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA;;;UAItE,OAAAI,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,QACiC,GAAA;AAAA,UAAAQ,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,YAAA,YAAAU,EAAAlB,EAAA,MAAA;AAAA;UAK4B,GAAAS,CAAA,GAAAhB,EAAA0B,IAAAnB,EAAA,QAAA,IAAA,CAAAoB,MAAAC,EAAAC,GAAA;AAAA;;UAOhC,GAAA;AAAA,YACvCd,SAAAA,MAAAA,EAAAA;AAAAA;;UAEL,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAKX;AACF,CAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");const e=require("vue"),u=require("element-plus"),S=require("@vueuse/core"),d=require("vue-router");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const k=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const b=require("../can-access/index.cjs"),q=require("../../setup/index.cjs"),h=e.defineComponent({name:"SkyReferenceField",inheritAttrs:!1,props:{reference:{type:String,required:!0},source:{type:String,required:!0},id:{type:String,default:"id"},name:{type:String,default:"name"},label:String,row:Object},setup(r,{attrs:n}){const o=d.useRouter(),f=d.useRoute(),m=k.useHiddenTitle(),c=e.computed(()=>r.label||r.source),g=f.meta;let a;const{isLoading:y,state:v}=S.useAsyncState(async()=>{const t=r.row?.[r.source];if(t)return a=new AbortController,q.skyConfig.dataProvider?.getOne?.(r.reference,{id:t,signal:a.signal})},void 0,{immediate:!0}),i=e.computed(()=>v.value?.data?.[r.name]),l=()=>{const t=q.skyConfig.getShowRouteName(r.reference),s=r.row?.[r.id];s&&o.hasRoute(t)&&o.push({name:t,params:{id:String(s)}})};return()=>e.createVNode(b.SkyCanAccess,{resource:g.resource,action:["list","show"],column:r.source},{default:()=>[i.value&&e.withDirectives(e.createVNode("div",{class:"sky-reference-field"},[m?e.createVNode(u.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:l},n),{default:()=>[i.value]}):e.createVNode(e.Fragment,null,[c.value&&e.createVNode("h4",null,[c.value]),e.createVNode(u.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:l},n),{default:()=>[i.value]})])]),[[u.ElLoadingDirective,y.value]])]})}});exports.SkyReferenceField=h;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("element-plus/es/components/button/style/css");const e=require("vue"),u=require("element-plus"),S=require("@vueuse/core"),d=require("vue-router");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");const k=require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const q=require("../../setup/index.cjs"),b=require("../can-access/index.cjs"),h=e.defineComponent({name:"SkyReferenceField",inheritAttrs:!1,props:{reference:{type:String,required:!0},source:{type:String,required:!0},id:{type:String,default:"id"},name:{type:String,default:"name"},label:String,row:Object},setup(r,{attrs:n}){const o=d.useRouter(),f=d.useRoute(),m=k.useHiddenTitle(),c=e.computed(()=>r.label||r.source),g=f.meta;let a;const{isLoading:y,state:v}=S.useAsyncState(async()=>{const t=r.row?.[r.source];if(t)return a=new AbortController,q.skyConfig.dataProvider?.getOne?.(r.reference,{id:t,signal:a.signal})},void 0,{immediate:!0}),i=e.computed(()=>v.value?.data?.[r.name]),l=()=>{const t=q.skyConfig.getShowRouteName(r.reference),s=r.row?.[r.id];s&&o.hasRoute(t)&&o.push({name:t,params:{id:String(s)}})};return()=>e.createVNode(b.SkyCanAccess,{resource:g.resource,action:["list","show"],column:r.source},{default:()=>[i.value&&e.withDirectives(e.createVNode("div",{class:"sky-reference-field"},[m?e.createVNode(u.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:l},n),{default:()=>[i.value]}):e.createVNode(e.Fragment,null,[c.value&&e.createVNode("h4",null,[c.value]),e.createVNode(u.ElButton,e.mergeProps({type:"primary",text:!0,bg:!0,onClick:l},n),{default:()=>[i.value]})])]),[[u.ElLoadingDirective,y.value]])]})}});exports.SkyReferenceField=h;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -19,8 +19,8 @@ import "../../hooks/useReferenceArrayField.mjs";
19
19
  import "../../hooks/useTreeWithDetails.mjs";
20
20
  import "../../hooks/useFormGrid.mjs";
21
21
  import "../../hooks/useReferenceArrayInput.mjs";
22
- import { SkyCanAccess as F } from "../can-access/index.mjs";
23
22
  import { skyConfig as f } from "../../setup/index.mjs";
23
+ import { SkyCanAccess as F } from "../can-access/index.mjs";
24
24
  const Z = /* @__PURE__ */ h({
25
25
  name: "SkyReferenceField",
26
26
  inheritAttrs: !1,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");const o=require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const t=e.defineComponent({name:"SkyShowSimpleLayout",setup(q,{slots:r}){const{data:u}=o.useShow();return()=>e.createVNode("div",{class:"sky-show-simple-layout"},[r.default?.().map(i=>e.cloneVNode(i,{row:u.value?.data}))])}});exports.SkyShowSimpleLayout=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue");require("../../hooks/useUser.cjs");require("../../hooks/usePermission.cjs");require("../../hooks/useMenu.cjs");require("../../hooks/useTab.cjs");require("../../hooks/useRouteKeepAlive.cjs");require("../../hooks/useSize.cjs");require("../../hooks/useLang.cjs");require("../../hooks/useTheme.cjs");require("../../hooks/useList.cjs");require("../../hooks/useHiddenTitle.cjs");require("../../hooks/useForm.cjs");const o=require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");require("vue-i18n");require("element-plus");const t=e.defineComponent({name:"SkyShowSimpleLayout",setup(q,{slots:r}){const{data:u}=o.useShow();return()=>e.createVNode("div",{class:"sky-show-simple-layout"},[r.default?.().map(i=>e.cloneVNode(i,{row:u.value?.data}))])}});exports.SkyShowSimpleLayout=t;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/show-simple-layout/index.tsx"],"sourcesContent":["import { useShow } from '@/hooks'\nimport { cloneVNode, defineComponent } from 'vue'\n\nexport const SkyShowSimpleLayout = defineComponent({\n name: 'SkyShowSimpleLayout',\n setup(_props, { slots }) {\n const { data } = useShow()!\n\n // h(vnode.type as Component, { key: i, row, ...vnode.props }, (vnode.children as Slots)?.default) 等效于 cloneVNode(vnode, { row... })\n return () => (\n <div class=\"sky-show-simple-layout\">\n {slots.default?.().map((vnode) => cloneVNode(vnode, { row: data.value?.data }))}\n </div>\n )\n },\n})\n"],"names":["SkyShowSimpleLayout","defineComponent","name","setup","_props","slots","data","useShow","_createVNode","default","map","vnode","cloneVNode","row","value"],"mappings":"muBAGO,MAAMA,EAAsBC,EAAAA,gBAAgB,CACjDC,KAAM,sBACNC,MAAMC,EAAQ,CAAEC,MAAAA,CAAM,EAAG,CACvB,KAAM,CAAEC,KAAAA,GAASC,UAAO,EAGxB,MAAO,IAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,wBAAA,EAAA,CAEFH,EAAMI,UAAO,EAAKC,IAAKC,GAAUC,EAAAA,WAAWD,EAAO,CAAEE,IAAKP,EAAKQ,OAAOR,KAAM,CAAC,CAAC,CAAA,CAGrF,CACF,CAAC"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/show-simple-layout/index.tsx"],"sourcesContent":["import { useShow } from '@/hooks'\nimport { cloneVNode, defineComponent } from 'vue'\n\nexport const SkyShowSimpleLayout = defineComponent({\n name: 'SkyShowSimpleLayout',\n setup(_props, { slots }) {\n const { data } = useShow()!\n\n // h(vnode.type as Component, { key: i, row, ...vnode.props }, (vnode.children as Slots)?.default) 等效于 cloneVNode(vnode, { row... })\n return () => (\n <div class=\"sky-show-simple-layout\">\n {slots.default?.().map((vnode) => cloneVNode(vnode, { row: data.value?.data }))}\n </div>\n )\n },\n})\n"],"names":["SkyShowSimpleLayout","defineComponent","name","setup","_props","slots","data","useShow","_createVNode","default","map","vnode","cloneVNode","row","value"],"mappings":"+wBAGO,MAAMA,EAAsBC,EAAAA,gBAAgB,CACjDC,KAAM,sBACNC,MAAMC,EAAQ,CAAEC,MAAAA,CAAM,EAAG,CACvB,KAAM,CAAEC,KAAAA,GAASC,UAAO,EAGxB,MAAO,IAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,wBAAA,EAAA,CAEFH,EAAMI,UAAO,EAAKC,IAAKC,GAAUC,EAAAA,WAAWD,EAAO,CAAEE,IAAKP,EAAKQ,OAAOR,KAAM,CAAC,CAAC,CAAA,CAGrF,CACF,CAAC"}