skyline-vue-admin 0.0.21 → 0.0.22

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 (122) hide show
  1. package/dist/components/auto-complete-array-input/index.cjs.map +1 -1
  2. package/dist/components/auto-complete-array-input/index.mjs.map +1 -1
  3. package/dist/components/create/index.cjs.map +1 -1
  4. package/dist/components/create/index.mjs.map +1 -1
  5. package/dist/components/data-list-input/index.cjs +2 -0
  6. package/dist/components/data-list-input/index.cjs.map +1 -0
  7. package/dist/components/data-list-input/index.d.ts +10 -0
  8. package/dist/components/data-list-input/index.mjs +136 -0
  9. package/dist/components/data-list-input/index.mjs.map +1 -0
  10. package/dist/components/data-list-item-input/index.cjs +2 -0
  11. package/dist/components/data-list-item-input/index.cjs.map +1 -0
  12. package/dist/components/data-list-item-input/index.d.ts +6 -0
  13. package/dist/components/data-list-item-input/index.mjs +22 -0
  14. package/dist/components/data-list-item-input/index.mjs.map +1 -0
  15. package/dist/components/edit-button/index.cjs.map +1 -1
  16. package/dist/components/edit-button/index.mjs.map +1 -1
  17. package/dist/components/image-field/index.cjs.map +1 -1
  18. package/dist/components/image-field/index.mjs.map +1 -1
  19. package/dist/components/index.d.ts +2 -0
  20. package/dist/components/link-field/index.cjs.map +1 -1
  21. package/dist/components/link-field/index.mjs.map +1 -1
  22. package/dist/components/radio-button-group-input/index.cjs.map +1 -1
  23. package/dist/components/radio-button-group-input/index.mjs.map +1 -1
  24. package/dist/components/reference-array-field/index.cjs.map +1 -1
  25. package/dist/components/reference-array-field/index.mjs.map +1 -1
  26. package/dist/components/reference-array-input/index.cjs.map +1 -1
  27. package/dist/components/reference-array-input/index.mjs.map +1 -1
  28. package/dist/components/reference-field/index.cjs.map +1 -1
  29. package/dist/components/reference-field/index.mjs.map +1 -1
  30. package/dist/components/reference-image-field/index.cjs.map +1 -1
  31. package/dist/components/reference-image-field/index.mjs.map +1 -1
  32. package/dist/components/show/index.cjs.map +1 -1
  33. package/dist/components/show/index.mjs.map +1 -1
  34. package/dist/components/show-button/index.cjs.map +1 -1
  35. package/dist/components/show-button/index.mjs.map +1 -1
  36. package/dist/components/show-simple-layout/index.cjs.map +1 -1
  37. package/dist/components/show-simple-layout/index.mjs.map +1 -1
  38. package/dist/components/simple-form/index.cjs.map +1 -1
  39. package/dist/components/simple-form/index.mjs.map +1 -1
  40. package/dist/components/single-field-list/index.cjs.map +1 -1
  41. package/dist/components/single-field-list/index.mjs.map +1 -1
  42. package/dist/components/text-input/index.cjs.map +1 -1
  43. package/dist/components/text-input/index.mjs.map +1 -1
  44. package/dist/hooks/useFormGrid.cjs.map +1 -1
  45. package/dist/hooks/useFormGrid.mjs.map +1 -1
  46. package/dist/hooks/useMenu.cjs.map +1 -1
  47. package/dist/hooks/useMenu.mjs.map +1 -1
  48. package/dist/hooks/usePermission.cjs.map +1 -1
  49. package/dist/hooks/usePermission.mjs.map +1 -1
  50. package/dist/hooks/useReferenceArrayField.cjs.map +1 -1
  51. package/dist/hooks/useReferenceArrayField.mjs.map +1 -1
  52. package/dist/hooks/useReferenceArrayInput.cjs.map +1 -1
  53. package/dist/hooks/useReferenceArrayInput.mjs.map +1 -1
  54. package/dist/hooks/useRouteKeepAlive.cjs.map +1 -1
  55. package/dist/hooks/useRouteKeepAlive.mjs.map +1 -1
  56. package/dist/hooks/useShow.cjs.map +1 -1
  57. package/dist/hooks/useShow.mjs.map +1 -1
  58. package/dist/hooks/useSize.cjs.map +1 -1
  59. package/dist/hooks/useSize.mjs.map +1 -1
  60. package/dist/hooks/useTab.cjs.map +1 -1
  61. package/dist/hooks/useTab.mjs.map +1 -1
  62. package/dist/hooks/useTreeWithDetails.cjs.map +1 -1
  63. package/dist/hooks/useTreeWithDetails.mjs.map +1 -1
  64. package/dist/hooks/useUpload.cjs.map +1 -1
  65. package/dist/hooks/useUpload.mjs.map +1 -1
  66. package/dist/hooks/useUser.cjs.map +1 -1
  67. package/dist/hooks/useUser.mjs.map +1 -1
  68. package/dist/i18n/locales/en.cjs +1 -1
  69. package/dist/i18n/locales/en.cjs.map +1 -1
  70. package/dist/i18n/locales/en.d.ts +3 -0
  71. package/dist/i18n/locales/en.mjs +3 -0
  72. package/dist/i18n/locales/en.mjs.map +1 -1
  73. package/dist/i18n/locales/zh-cn.cjs +1 -1
  74. package/dist/i18n/locales/zh-cn.cjs.map +1 -1
  75. package/dist/i18n/locales/zh-cn.d.ts +3 -0
  76. package/dist/i18n/locales/zh-cn.mjs +3 -0
  77. package/dist/i18n/locales/zh-cn.mjs.map +1 -1
  78. package/dist/icons/EpDelete.cjs.map +1 -1
  79. package/dist/icons/EpDelete.mjs.map +1 -1
  80. package/dist/icons/EpDocumentAdd.cjs.map +1 -1
  81. package/dist/icons/EpDocumentAdd.mjs.map +1 -1
  82. package/dist/icons/EpDownload.cjs.map +1 -1
  83. package/dist/icons/EpDownload.mjs.map +1 -1
  84. package/dist/icons/EpFullScreen.cjs.map +1 -1
  85. package/dist/icons/EpFullScreen.mjs.map +1 -1
  86. package/dist/icons/EpMoon.cjs.map +1 -1
  87. package/dist/icons/EpMoon.mjs.map +1 -1
  88. package/dist/icons/EpPlus.cjs.map +1 -1
  89. package/dist/icons/EpPlus.mjs.map +1 -1
  90. package/dist/icons/EpRefresh.cjs.map +1 -1
  91. package/dist/icons/EpRefresh.mjs.map +1 -1
  92. package/dist/icons/EpSunny.cjs.map +1 -1
  93. package/dist/icons/EpSunny.mjs.map +1 -1
  94. package/dist/icons/EpSwitchFilled.cjs.map +1 -1
  95. package/dist/icons/EpSwitchFilled.mjs.map +1 -1
  96. package/dist/icons/EpUploadFilled.cjs.map +1 -1
  97. package/dist/icons/EpUploadFilled.mjs.map +1 -1
  98. package/dist/icons/FluentFullScreenMinimize20Regular.cjs.map +1 -1
  99. package/dist/icons/FluentFullScreenMinimize20Regular.mjs.map +1 -1
  100. package/dist/icons/NimbusTextSize.cjs.map +1 -1
  101. package/dist/icons/NimbusTextSize.mjs.map +1 -1
  102. package/dist/icons/SkyMenuCollapse.cjs.map +1 -1
  103. package/dist/icons/SkyMenuCollapse.mjs.map +1 -1
  104. package/dist/icons/SlTrans.cjs.map +1 -1
  105. package/dist/icons/SlTrans.mjs.map +1 -1
  106. package/dist/index.cjs +1 -1
  107. package/dist/index.mjs +38 -34
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/pages/login.cjs.map +1 -1
  110. package/dist/pages/login.mjs.map +1 -1
  111. package/dist/pages/not-found.cjs.map +1 -1
  112. package/dist/pages/not-found.mjs.map +1 -1
  113. package/dist/pages/welcome.cjs.map +1 -1
  114. package/dist/pages/welcome.mjs.map +1 -1
  115. package/dist/router/index.cjs.map +1 -1
  116. package/dist/router/index.mjs.map +1 -1
  117. package/dist/setup/index.cjs.map +1 -1
  118. package/dist/setup/index.mjs.map +1 -1
  119. package/dist/styles/components/data-list-input.css +1 -0
  120. package/dist/styles/components/data-list-item-input.css +1 -0
  121. package/dist/styles/index.css +1 -1
  122. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElFormItem,\r\n ElLoadingDirective,\r\n ElSelect,\r\n type FormItemRule,\r\n type SelectProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\r\n\r\nexport interface SkyAutoCompleteArrayInputProps {\r\n source: string\r\n label?: string\r\n optionText?: string\r\n optionValue?: string\r\n filterToQuery?: (searchText: string) => Record<string, unknown>\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: Identifier[]\r\n}\r\n\r\nexport const SkyAutoCompleteArrayInput = defineComponent<\r\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\r\n>({\r\n name: 'SkyAutoCompleteArrayInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n // placeholder: String,\r\n optionText: {\r\n type: String,\r\n default: 'name',\r\n },\r\n optionValue: {\r\n type: String,\r\n default: 'id',\r\n },\r\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\r\n rules: Object,\r\n defaultValue: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const remoteMethod = (search: string) => {\r\n const filter = props.filterToQuery?.(search)\r\n if (filter) {\r\n getList(filter)\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const data = formData[props.source] as Identifier[] | Identifier | undefined\r\n\r\n if (data) {\r\n const ids = Array.isArray(data) ? data : [data]\r\n if (ids.length) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.getMany?.(reference, {\r\n ids,\r\n signal: controller.signal,\r\n })\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const getOptionItem = (item: Record<string, unknown>) => {\r\n const label = item[props.optionText!] as string\r\n const value = item[props.optionValue!] as Identifier\r\n return {\r\n label,\r\n value,\r\n }\r\n }\r\n\r\n const options = computed(() => {\r\n if (listData.value?.data) {\r\n return (\r\n listData.value.data\r\n // .filter((item) => {\r\n // const value = item[props.optionValue] as Identifier\r\n // return !formData[props.source]?.includes(value)\r\n // })\r\n .map(getOptionItem)\r\n )\r\n }\r\n\r\n const editArr = theReferenceArrayData.value?.data || []\r\n // create = []\r\n // edit = theReferenceArrayData.value?.data\r\n return editArr.map(getOptionItem)\r\n })\r\n\r\n return () =>\r\n withDirectives(\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElSelect\r\n modelValue={formData[props.source] as Identifier[]}\r\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\r\n multiple\r\n filterable\r\n remote\r\n reserveKeyword\r\n remoteShowSuffix\r\n remoteMethod={remoteMethod}\r\n loading={listLoading.value}\r\n debounce={500}\r\n options={options.value}\r\n props={{ value: 'value', label: 'label' }}\r\n {...attrs}\r\n >\r\n {/* {options.value.map((option) => (\r\n <ElOption key={option.value} label={option.label} value={option.value} />\r\n ))} */}\r\n </ElSelect>\r\n </ElFormItem>,\r\n // h(\r\n // ElFormItem,\r\n // {\r\n // label: title.value,\r\n // prop: props.source,\r\n // rules: props.rules,\r\n // style: formGrid ? `grid-area: ${props.source}` : '',\r\n // },\r\n // {\r\n // default: () =>\r\n // h(\r\n // ElSelect,\r\n // {\r\n // modelValue: formData[props.source] as Identifier[],\r\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\r\n // multiple: true,\r\n // filterable: true,\r\n // remote: true,\r\n // reserveKeyword: true,\r\n // remoteShowSuffix: true,\r\n // remoteMethod,\r\n // loading: listLoading.value,\r\n // debounce: 500,\r\n // ...attrs,\r\n // },\r\n // {\r\n // default: () =>\r\n // options.value.map((option) => (\r\n // <ElOption key={option.value} label={option.label} value={option.value} />\r\n // )),\r\n // },\r\n // ),\r\n // },\r\n // ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n },\r\n})\r\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","ids","skyConfig","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":"q7BAuBAA,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,4BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OAEAC,WAAAA,CACEH,KAAAA,OACAI,QAAAA,QAEFC,YAAAA,CACEL,KAAAA,OACAI,QAAAA,MAEFE,cAAAA,SACAC,MAAAA,OACAC,aAAAA,CACER,KAAAA,oBAEF,YAEaS,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,mDACsBC,UAAAA,8BACxCC,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,iEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,eAIA,MAAAC,EAAAnB,EAAA,gBAAAoB,CAAA,EACAD,SAKF,IAAAE,QACQC,MAAAA,EAA8BC,UAAAA,6BAElC,MAAAC,EAAAN,EAAAlB,EAAA,MAAA,EAEA,GAAAwB,EAAA,CACE,MAAAC,EAAA,MAAA,QAAAD,CAAA,EAAAA,EAAA,CAAAA,CAAA,cAEEH,OAAAA,EAAAA,IAAAA,gBACAK,YAAA,cAAA,UAAAX,EAAA,sBAGA,CAAA,CAEJ,WAIAY,UAAAA,EACF,CAAA,QAIA,MAAAvB,EAAAwB,EAAA5B,EAAA,UAAA,EACA6B,EAAAD,EAAA5B,EAAA,WAAA,iBAGE6B,MAAAA,IAIJC,EAAAb,EAAAA,SAAA,IACEc,EAAA,OAAA,6CAcA,IAAAC,CAAA,CACF,EAEA,MAAA,IAAAC,EAAAA,eAAAC,EAAAA,YAAAC,aAAA,2CAKwB,MAAAvB,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAM,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,WAAAY,EAAAlB,EAAA,MAAA,yCAIO,SAAA,GAAA,WAAA,GAAA,OAAA,GAAA,eAAA,GAAA,iBAAA,GAAA,aAAAoC,kBAO9B,SAAA,2BAGjBP,MAAAA,QAAgBzB,MAAAA,OAAe,CAAC,EAAAO,CAAA,EAAA,IAAA,CAAA,CAChC,CAAA,mCA2CnB,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\nimport type { GetManyResult, Identifier } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport {\n ElFormItem,\n ElLoadingDirective,\n ElSelect,\n type FormItemRule,\n type SelectProps,\n} from 'element-plus'\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\n\nexport interface SkyAutoCompleteArrayInputProps {\n source: string\n label?: string\n optionText?: string\n optionValue?: string\n filterToQuery?: (searchText: string) => Record<string, unknown>\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier[]\n}\n\nexport const SkyAutoCompleteArrayInput = defineComponent<\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\n>({\n name: 'SkyAutoCompleteArrayInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n optionText: {\n type: String,\n default: 'name',\n },\n optionValue: {\n type: String,\n default: 'id',\n },\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\n rules: Object,\n defaultValue: {\n type: Array,\n default: () => [],\n },\n },\n setup(props, { attrs }) {\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\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 const remoteMethod = (search: string) => {\n const filter = props.filterToQuery?.(search)\n if (filter) {\n getList(filter)\n }\n }\n\n let controller: AbortController | undefined\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\n async () => {\n const data = formData[props.source] as Identifier[] | Identifier | undefined\n\n if (data) {\n const ids = Array.isArray(data) ? data : [data]\n if (ids.length) {\n controller = new AbortController()\n return skyConfig.dataProvider?.getMany?.(reference, {\n ids,\n signal: controller.signal,\n })\n }\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const getOptionItem = (item: Record<string, unknown>) => {\n const label = item[props.optionText!] as string\n const value = item[props.optionValue!] as Identifier\n return {\n label,\n value,\n }\n }\n\n const options = computed(() => {\n if (listData.value?.data) {\n return (\n listData.value.data\n // .filter((item) => {\n // const value = item[props.optionValue] as Identifier\n // return !formData[props.source]?.includes(value)\n // })\n .map(getOptionItem)\n )\n }\n\n const editArr = theReferenceArrayData.value?.data || []\n // create = []\n // edit = theReferenceArrayData.value?.data\n return editArr.map(getOptionItem)\n })\n\n return () =>\n withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElSelect\n modelValue={formData[props.source] as Identifier[]}\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\n multiple\n filterable\n remote\n reserveKeyword\n remoteShowSuffix\n remoteMethod={remoteMethod}\n loading={listLoading.value}\n debounce={500}\n options={options.value}\n props={{ value: 'value', label: 'label' }}\n {...attrs}\n >\n {/* {options.value.map((option) => (\n <ElOption key={option.value} label={option.label} value={option.value} />\n ))} */}\n </ElSelect>\n </ElFormItem>,\n // h(\n // ElFormItem,\n // {\n // label: title.value,\n // prop: props.source,\n // rules: props.rules,\n // style: formGrid ? `grid-area: ${props.source}` : '',\n // },\n // {\n // default: () =>\n // h(\n // ElSelect,\n // {\n // modelValue: formData[props.source] as Identifier[],\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\n // multiple: true,\n // filterable: true,\n // remote: true,\n // reserveKeyword: true,\n // remoteShowSuffix: true,\n // remoteMethod,\n // loading: listLoading.value,\n // debounce: 500,\n // ...attrs,\n // },\n // {\n // default: () =>\n // options.value.map((option) => (\n // <ElOption key={option.value} label={option.label} value={option.value} />\n // )),\n // },\n // ),\n // },\n // ),\n [[ElLoadingDirective, isLoading.value]],\n )\n },\n})\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","ids","skyConfig","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":"q7BAuBAA,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,4BACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OAEAC,WAAAA,CACEH,KAAAA,OACAI,QAAAA,QAEFC,YAAAA,CACEL,KAAAA,OACAI,QAAAA,MAEFE,cAAAA,SACAC,MAAAA,OACAC,aAAAA,CACER,KAAAA,oBAEF,YAEaS,MAAAA,CAAM,EAAA,CACnB,MAAAC,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,mDACsBC,UAAAA,8BACxCC,EAAAC,EAAAA,SAAA,IAAAjB,EAAA,OAAAA,EAAA,MAAA,iEAOEkB,EAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,EAAAA,MAAAA,eAIA,MAAAC,EAAAnB,EAAA,gBAAAoB,CAAA,EACAD,SAKF,IAAAE,QACQC,MAAAA,EAA8BC,UAAAA,6BAElC,MAAAC,EAAAN,EAAAlB,EAAA,MAAA,EAEA,GAAAwB,EAAA,CACE,MAAAC,EAAA,MAAA,QAAAD,CAAA,EAAAA,EAAA,CAAAA,CAAA,cAEEH,OAAAA,EAAAA,IAAAA,gBACAK,YAAA,cAAA,UAAAX,EAAA,sBAGA,CAAA,CAEJ,WAIAY,UAAAA,EACF,CAAA,QAIA,MAAAvB,EAAAwB,EAAA5B,EAAA,UAAA,EACA6B,EAAAD,EAAA5B,EAAA,WAAA,iBAGE6B,MAAAA,IAIJC,EAAAb,EAAAA,SAAA,IACEc,EAAA,OAAA,6CAcA,IAAAC,CAAA,CACF,EAEA,MAAA,IAAAC,EAAAA,eAAAC,EAAAA,YAAAC,aAAA,2CAKwB,MAAAvB,EAAA,cAAAZ,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAM,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,WAAAY,EAAAlB,EAAA,MAAA,yCAIO,SAAA,GAAA,WAAA,GAAA,OAAA,GAAA,eAAA,GAAA,iBAAA,GAAA,aAAAoC,kBAO9B,SAAA,2BAGjBP,MAAAA,QAAgBzB,MAAAA,OAAe,CAAC,EAAAO,CAAA,EAAA,IAAA,CAAA,CAChC,CAAA,mCA2CnB,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\r\nimport type { GetManyResult, Identifier } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport {\r\n ElFormItem,\r\n ElLoadingDirective,\r\n ElSelect,\r\n type FormItemRule,\r\n type SelectProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\r\n\r\nexport interface SkyAutoCompleteArrayInputProps {\r\n source: string\r\n label?: string\r\n optionText?: string\r\n optionValue?: string\r\n filterToQuery?: (searchText: string) => Record<string, unknown>\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: Identifier[]\r\n}\r\n\r\nexport const SkyAutoCompleteArrayInput = defineComponent<\r\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\r\n>({\r\n name: 'SkyAutoCompleteArrayInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n // placeholder: String,\r\n optionText: {\r\n type: String,\r\n default: 'name',\r\n },\r\n optionValue: {\r\n type: String,\r\n default: 'id',\r\n },\r\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\r\n rules: Object,\r\n defaultValue: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n const remoteMethod = (search: string) => {\r\n const filter = props.filterToQuery?.(search)\r\n if (filter) {\r\n getList(filter)\r\n }\r\n }\r\n\r\n let controller: AbortController | undefined\r\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\r\n async () => {\r\n const data = formData[props.source] as Identifier[] | Identifier | undefined\r\n\r\n if (data) {\r\n const ids = Array.isArray(data) ? data : [data]\r\n if (ids.length) {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.getMany?.(reference, {\r\n ids,\r\n signal: controller.signal,\r\n })\r\n }\r\n }\r\n },\r\n undefined,\r\n {\r\n immediate: true,\r\n },\r\n )\r\n\r\n const getOptionItem = (item: Record<string, unknown>) => {\r\n const label = item[props.optionText!] as string\r\n const value = item[props.optionValue!] as Identifier\r\n return {\r\n label,\r\n value,\r\n }\r\n }\r\n\r\n const options = computed(() => {\r\n if (listData.value?.data) {\r\n return (\r\n listData.value.data\r\n // .filter((item) => {\r\n // const value = item[props.optionValue] as Identifier\r\n // return !formData[props.source]?.includes(value)\r\n // })\r\n .map(getOptionItem)\r\n )\r\n }\r\n\r\n const editArr = theReferenceArrayData.value?.data || []\r\n // create = []\r\n // edit = theReferenceArrayData.value?.data\r\n return editArr.map(getOptionItem)\r\n })\r\n\r\n return () =>\r\n withDirectives(\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElSelect\r\n modelValue={formData[props.source] as Identifier[]}\r\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\r\n multiple\r\n filterable\r\n remote\r\n reserveKeyword\r\n remoteShowSuffix\r\n remoteMethod={remoteMethod}\r\n loading={listLoading.value}\r\n debounce={500}\r\n options={options.value}\r\n props={{ value: 'value', label: 'label' }}\r\n {...attrs}\r\n >\r\n {/* {options.value.map((option) => (\r\n <ElOption key={option.value} label={option.label} value={option.value} />\r\n ))} */}\r\n </ElSelect>\r\n </ElFormItem>,\r\n // h(\r\n // ElFormItem,\r\n // {\r\n // label: title.value,\r\n // prop: props.source,\r\n // rules: props.rules,\r\n // style: formGrid ? `grid-area: ${props.source}` : '',\r\n // },\r\n // {\r\n // default: () =>\r\n // h(\r\n // ElSelect,\r\n // {\r\n // modelValue: formData[props.source] as Identifier[],\r\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\r\n // multiple: true,\r\n // filterable: true,\r\n // remote: true,\r\n // reserveKeyword: true,\r\n // remoteShowSuffix: true,\r\n // remoteMethod,\r\n // loading: listLoading.value,\r\n // debounce: 500,\r\n // ...attrs,\r\n // },\r\n // {\r\n // default: () =>\r\n // options.value.map((option) => (\r\n // <ElOption key={option.value} label={option.label} value={option.value} />\r\n // )),\r\n // },\r\n // ),\r\n // },\r\n // ),\r\n [[ElLoadingDirective, isLoading.value]],\r\n )\r\n },\r\n})\r\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","ids","skyConfig","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA;AAAAA,IAEAC,YAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFC,aAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFE,eAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACER,MAAAA;AAAAA;IAEF;AAAA;;IAEaS,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA;;;;MACsBC,WAAAA;AAAAA,aACxCC,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;4EAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;;AAIA,YAAAC,IAAAnB,EAAA,gBAAAoB,CAAA;AACA,MAAAD;;AAKF,QAAAE;;MACQC,OAAAA;AAAAA,MAA8BC,WAAAA;AAAAA;AAElC,YAAAC,IAAAN,EAAAlB,EAAA,MAAA;AAEA,UAAAwB,GAAA;AACE,cAAAC,IAAA,MAAA,QAAAD,CAAA,IAAAA,IAAA,CAAAA,CAAA;;AAEEH,iBAAAA,IAAAA,IAAAA,gBAAAA,GACAK,EAAA,cAAA,UAAAX,GAAA;AAAA;;UAGA,CAAA;AAAA,MAEJ;AAAA;MAIAY,WAAAA;AAAAA,IACF,CAAA;AAIA,YAAAvB,IAAAwB,EAAA5B,EAAA,UAAA,GACA6B,IAAAD,EAAA5B,EAAA,WAAA;;;QAGE6B,OAAAA;AAAAA;OAIJC,IAAAb,EAAA,MACEc,EAAA,OAAA,mDAcA,IAAAC,CAAA,CACF;AAEA,WAAA,MAAAC;AAAA,MAAAC,EAAAC,GAAA;AAAA;;;QAKwB,OAAAvB,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAM,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,YAAAY,EAAAlB,EAAA,MAAA;AAAA;UAIO,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,QAAA;AAAA,UAAA,gBAAA;AAAA,UAAA,kBAAA;AAAA,UAAA,cAAAoC;AAAA;UAO9B,UAAA;AAAA;;YAGjBP,OAAAA;AAAAA,YAAgBzB,OAAAA;AAAAA,UAAe;AAAA,QAAC,GAAAO,CAAA,GAAA,IAAA,CAAA;AAAA,MAChC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;EA2CnB;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/auto-complete-array-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid, useReferenceArrayInput } from '@/hooks'\nimport type { GetManyResult, Identifier } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport {\n ElFormItem,\n ElLoadingDirective,\n ElSelect,\n type FormItemRule,\n type SelectProps,\n} from 'element-plus'\nimport { computed, defineComponent, withDirectives, type PropType } from 'vue'\n\nexport interface SkyAutoCompleteArrayInputProps {\n source: string\n label?: string\n optionText?: string\n optionValue?: string\n filterToQuery?: (searchText: string) => Record<string, unknown>\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Identifier[]\n}\n\nexport const SkyAutoCompleteArrayInput = defineComponent<\n SkyAutoCompleteArrayInputProps & Partial<SelectProps>\n>({\n name: 'SkyAutoCompleteArrayInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n // placeholder: String,\n optionText: {\n type: String,\n default: 'name',\n },\n optionValue: {\n type: String,\n default: 'id',\n },\n filterToQuery: Function as PropType<SkyAutoCompleteArrayInputProps['filterToQuery']>,\n rules: Object,\n defaultValue: {\n type: Array,\n default: () => [],\n },\n },\n setup(props, { attrs }) {\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const { getList, listLoading, listData, reference } = useReferenceArrayInput()!\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 const remoteMethod = (search: string) => {\n const filter = props.filterToQuery?.(search)\n if (filter) {\n getList(filter)\n }\n }\n\n let controller: AbortController | undefined\n const { state: theReferenceArrayData, isLoading } = useAsyncState<GetManyResult | undefined>(\n async () => {\n const data = formData[props.source] as Identifier[] | Identifier | undefined\n\n if (data) {\n const ids = Array.isArray(data) ? data : [data]\n if (ids.length) {\n controller = new AbortController()\n return skyConfig.dataProvider?.getMany?.(reference, {\n ids,\n signal: controller.signal,\n })\n }\n }\n },\n undefined,\n {\n immediate: true,\n },\n )\n\n const getOptionItem = (item: Record<string, unknown>) => {\n const label = item[props.optionText!] as string\n const value = item[props.optionValue!] as Identifier\n return {\n label,\n value,\n }\n }\n\n const options = computed(() => {\n if (listData.value?.data) {\n return (\n listData.value.data\n // .filter((item) => {\n // const value = item[props.optionValue] as Identifier\n // return !formData[props.source]?.includes(value)\n // })\n .map(getOptionItem)\n )\n }\n\n const editArr = theReferenceArrayData.value?.data || []\n // create = []\n // edit = theReferenceArrayData.value?.data\n return editArr.map(getOptionItem)\n })\n\n return () =>\n withDirectives(\n <ElFormItem\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElSelect\n modelValue={formData[props.source] as Identifier[]}\n onUpdate:modelValue={(v) => (formData[props.source] = v)}\n multiple\n filterable\n remote\n reserveKeyword\n remoteShowSuffix\n remoteMethod={remoteMethod}\n loading={listLoading.value}\n debounce={500}\n options={options.value}\n props={{ value: 'value', label: 'label' }}\n {...attrs}\n >\n {/* {options.value.map((option) => (\n <ElOption key={option.value} label={option.label} value={option.value} />\n ))} */}\n </ElSelect>\n </ElFormItem>,\n // h(\n // ElFormItem,\n // {\n // label: title.value,\n // prop: props.source,\n // rules: props.rules,\n // style: formGrid ? `grid-area: ${props.source}` : '',\n // },\n // {\n // default: () =>\n // h(\n // ElSelect,\n // {\n // modelValue: formData[props.source] as Identifier[],\n // 'onUpdate:modelValue': (v) => (formData[props.source] = v),\n // multiple: true,\n // filterable: true,\n // remote: true,\n // reserveKeyword: true,\n // remoteShowSuffix: true,\n // remoteMethod,\n // loading: listLoading.value,\n // debounce: 500,\n // ...attrs,\n // },\n // {\n // default: () =>\n // options.value.map((option) => (\n // <ElOption key={option.value} label={option.label} value={option.value} />\n // )),\n // },\n // ),\n // },\n // ),\n [[ElLoadingDirective, isLoading.value]],\n )\n },\n})\n"],"names":["SkyAutoCompleteArrayInput","defineComponent","name","inheritAttrs","props","source","type","required","label","optionText","default","optionValue","filterToQuery","rules","defaultValue","attrs","formGrid","useFormGrid","editData","reference","title","computed","formData","filter","search","controller","state","isLoading","data","ids","skyConfig","immediate","item","value","options","listData","getOptionItem","withDirectives","_createVNode","ElFormItem","remoteMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAAA,KAAA,gBAAAC,EAAA;AAAA,EAGEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,QAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,UAAAA;AAAAA;IAEFC,OAAAA;AAAAA;AAAAA,IAEAC,YAAAA;AAAAA,MACEH,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFC,aAAAA;AAAAA,MACEL,MAAAA;AAAAA,MACAI,SAAAA;AAAAA;IAEFE,eAAAA;AAAAA,IACAC,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACER,MAAAA;AAAAA;IAEF;AAAA;;IAEaS,OAAAA;AAAAA,EAAM,GAAA;AACnB,UAAAC,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA;;;;MACsBC,WAAAA;AAAAA,aACxCC,IAAAC,EAAA,MAAAjB,EAAA,SAAAA,EAAA,MAAA;4EAOEkB,EAAAA,EAAAA,MAAAA,IAAAA,EAAAA,MAAAA,EAAAA,MAAAA;;AAIA,YAAAC,IAAAnB,EAAA,gBAAAoB,CAAA;AACA,MAAAD;;AAKF,QAAAE;;MACQC,OAAAA;AAAAA,MAA8BC,WAAAA;AAAAA;AAElC,YAAAC,IAAAN,EAAAlB,EAAA,MAAA;AAEA,UAAAwB,GAAA;AACE,cAAAC,IAAA,MAAA,QAAAD,CAAA,IAAAA,IAAA,CAAAA,CAAA;;AAEEH,iBAAAA,IAAAA,IAAAA,gBAAAA,GACAK,EAAA,cAAA,UAAAX,GAAA;AAAA;;UAGA,CAAA;AAAA,MAEJ;AAAA;MAIAY,WAAAA;AAAAA,IACF,CAAA;AAIA,YAAAvB,IAAAwB,EAAA5B,EAAA,UAAA,GACA6B,IAAAD,EAAA5B,EAAA,WAAA;;;QAGE6B,OAAAA;AAAAA;OAIJC,IAAAb,EAAA,MACEc,EAAA,OAAA,mDAcA,IAAAC,CAAA,CACF;AAEA,WAAA,MAAAC;AAAA,MAAAC,EAAAC,GAAA;AAAA;;;QAKwB,OAAAvB,IAAA,cAAAZ,EAAA,MAAA,KAAA;AAAA,MACiC,GAAA;AAAA,QAAAM,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,YAAAY,EAAAlB,EAAA,MAAA;AAAA;UAIO,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,QAAA;AAAA,UAAA,gBAAA;AAAA,UAAA,kBAAA;AAAA,UAAA,cAAAoC;AAAA;UAO9B,UAAA;AAAA;;YAGjBP,OAAAA;AAAAA,YAAgBzB,OAAAA;AAAAA,UAAe;AAAA,QAAC,GAAAO,CAAA,GAAA,IAAA,CAAA;AAAA,MAChC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;EA2CnB;AACF,CAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { CreateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\n name: 'SkyCreate',\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n const { removeTab, lastTab } = useTab()\n const { formData, formRef } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n let controller: AbortController | undefined\n\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\n CreateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSumit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const res = await execute(0, { ...formData })\n if (res) {\n if (treeWithDetails?.createSuccess) {\n treeWithDetails.createSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-create\">\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\n <ElCard {...attrs}>\n {{\n default: slots.default,\n footer: () => (\n <div class=\"sky-create__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={formSubmitLoging.value}\n onClick={onSumit}\n >\n {t('button.submit')}\n </ElButton>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":"4jCAU4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAE5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,YACAC,aAAAA,oBACuBC,MAAAA,CAAM,EAAA,OACnBC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,UAAA,eACmBC,QAAAA,0BACDC,QAAAA,sBAClBC,EAAAC,EAAAA,mBAAA,GACQC,gBAAAA,yBACRC,EAAAT,EAAA,KAEA,IAAAU,QAEQC,UAAAA,EAA6BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAC,IAKzCJ,EAAAA,IAAAA,0FAIA,CAAA,WAIAK,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,IACE,CAAAX,EAAA,iCAKE,OAEF,MAAAY,EAAA,MAAAL,EAAA,EAAA,KAA2C,CAAA,EAC3CK,qBAEIX,EAAAA,cAAAA,CAAAA,oBAGEE,EAAAA,EAAAA,aAAAA,EAEFU,EAAAA,EAAAA,IAAAA,sBAEmBtB,KAAAA,EAAAA,MAAAA,UAA+BuB,OAAAA,EAAAA,MAAAA,WAAkC,CAAA,KAM1F,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,iEAEuC,OAAA,QAAA,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,mBAIpCC,OAAAA,IAAAA,CAAQ,IAAAC,EAAA,OAAAH,EAAAA,YAAA,MAAA,CAAA,MAAA,iDAAA,KAAA,UAAA,KAAAI,EAAAA,mFAQiB,CAAA,CAAA,CAAA,CAAA,CAGxB,CAAA,CAAA,KAMb,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\r\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\r\nimport type { CreateResult } from '@/provides'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\r\n name: 'SkyCreate',\r\n inheritAttrs: false,\r\n setup(_props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const router = useRouter()\r\n const { removeTab, lastTab } = useTab()\r\n const { formData, formRef } = useProvideForm()\r\n const treeWithDetails = useTreeWithDetails()\r\n const { removeKeepAlive } = useRouteKeepAlive()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n let controller: AbortController | undefined\r\n\r\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\r\n CreateResult | undefined,\r\n [data: Record<string, unknown>]\r\n >(\r\n async (data) => {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\r\n data,\r\n signal: controller.signal,\r\n })\r\n },\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const onSumit = async () => {\r\n if (!formRef.value) {\r\n return\r\n }\r\n const valid = await formRef.value.validate()\r\n if (!valid) {\r\n return\r\n }\r\n const res = await execute(0, { ...formData })\r\n if (res) {\r\n if (treeWithDetails?.createSuccess) {\r\n treeWithDetails.createSuccess(res)\r\n } else {\r\n if (routeMeta.keepAliveName) {\r\n removeKeepAlive(routeMeta.keepAliveName)\r\n }\r\n removeTab(route.name as string)\r\n if (lastTab.value) {\r\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\r\n }\r\n }\r\n }\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-create\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\r\n <ElCard {...attrs}>\r\n {{\r\n default: slots.default,\r\n footer: () => (\r\n <div class=\"sky-create__footer\">\r\n <ElButton\r\n type=\"primary\"\r\n icon={EpDocumentAdd}\r\n loading={formSubmitLoging.value}\r\n onClick={onSumit}\r\n >\r\n {t('button.submit')}\r\n </ElButton>\r\n </div>\r\n ),\r\n }}\r\n </ElCard>\r\n </SkyCanAccess>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":"4jCAU4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAE5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,YACAC,aAAAA,oBACuBC,MAAAA,CAAM,EAAA,OACnBC,EAAAA,eACRC,EAAAC,EAAAA,SAAA,EACAC,EAAAC,EAAAA,UAAA,eACmBC,QAAAA,0BACDC,QAAAA,sBAClBC,EAAAC,EAAAA,mBAAA,GACQC,gBAAAA,yBACRC,EAAAT,EAAA,KAEA,IAAAU,QAEQC,UAAAA,EAA6BC,QAAAA,CAAQ,EAAAC,EAAAA,cAAA,MAAAC,IAKzCJ,EAAAA,IAAAA,0FAIA,CAAA,WAIAK,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,IACE,CAAAX,EAAA,iCAKE,OAEF,MAAAY,EAAA,MAAAL,EAAA,EAAA,KAA2C,CAAA,EAC3CK,qBAEIX,EAAAA,cAAAA,CAAAA,oBAGEE,EAAAA,EAAAA,aAAAA,EAEFU,EAAAA,EAAAA,IAAAA,sBAEmBtB,KAAAA,EAAAA,MAAAA,UAA+BuB,OAAAA,EAAAA,MAAAA,WAAkC,CAAA,KAM1F,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,iEAEuC,OAAA,QAAA,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,OAAAA,EAAAA,mBAIpCC,OAAAA,IAAAA,CAAQ,IAAAC,EAAA,OAAAH,EAAAA,YAAA,MAAA,CAAA,MAAA,iDAAA,KAAA,UAAA,KAAAI,EAAAA,mFAQiB,CAAA,CAAA,CAAA,CAAA,CAGxB,CAAA,CAAA,KAMb,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\nimport type { CreateResult } from '@/provides'\nimport type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\n name: 'SkyCreate',\n inheritAttrs: false,\n setup(_props, { slots, attrs }) {\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n const { removeTab, lastTab } = useTab()\n const { formData, formRef } = useProvideForm()\n const treeWithDetails = useTreeWithDetails()\n const { removeKeepAlive } = useRouteKeepAlive()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n\n let controller: AbortController | undefined\n\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\n CreateResult | undefined,\n [data: Record<string, unknown>]\n >(\n async (data) => {\n controller = new AbortController()\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\n data,\n signal: controller.signal,\n })\n },\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSumit = async () => {\n if (!formRef.value) {\n return\n }\n const valid = await formRef.value.validate()\n if (!valid) {\n return\n }\n const res = await execute(0, { ...formData })\n if (res) {\n if (treeWithDetails?.createSuccess) {\n treeWithDetails.createSuccess(res)\n } else {\n if (routeMeta.keepAliveName) {\n removeKeepAlive(routeMeta.keepAliveName)\n }\n removeTab(route.name as string)\n if (lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n }\n\n return () => (\n <div class=\"sky-create\">\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\n <ElCard {...attrs}>\n {{\n default: slots.default,\n footer: () => (\n <div class=\"sky-create__footer\">\n <ElButton\n type=\"primary\"\n icon={EpDocumentAdd}\n loading={formSubmitLoging.value}\n onClick={onSumit}\n >\n {t('button.submit')}\n </ElButton>\n </div>\n ),\n }}\n </ElCard>\n </SkyCanAccess>\n </div>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAU4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAE5C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA;;IACuBC,OAAAA;AAAAA,EAAM,GAAA;;MACnBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACmBC,SAAAA;AAAAA;;MACDC,SAAAA;AAAAA,aAClBC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAT,EAAA;AAEA,QAAAU;;MAEQC,WAAAA;AAAAA,MAA6BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAC,OAKzCJ,IAAAA,IAAAA,gBAAAA;;;IAIA,CAAA;MAIAK,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;UACE,CAAAX,EAAA;AAKE;AAEF,YAAAY,IAAA,MAAAL,EAAA,GAAA;AAAA;MAA2C,CAAA;AAC3C,MAAAK,yBAEIX,EAAAA,cAAAA,CAAAA,wBAGEE,EAAAA,EAAAA,aAAAA,GAEFU,EAAAA,EAAAA,IAAAA;QAEmBtB,MAAAA,EAAAA,MAAAA;AAAAA,QAA+BuB,QAAAA,EAAAA,MAAAA;AAAAA,MAAkC,CAAA;AAAA;AAM1F,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;MAEuC,QAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,GAAAA;AAAAA;QAIpCC,QAAAA,MAAAA;AAAQ,cAAAC;AAAA,iBAAAH,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA;YAAA,MAAA;AAAA,YAAA,MAAAI;AAAA;;;;UAQiB,CAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAGxB,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/create/index.tsx"],"sourcesContent":["import { useProvideForm, useRouteKeepAlive, useTab, useTreeWithDetails } from '@/hooks'\r\nimport { EpDocumentAdd } from '@/icons/EpDocumentAdd'\r\nimport type { CreateResult } from '@/provides'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElCard, type CardProps } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport const SkyCreate = defineComponent<Partial<CardProps>>({\r\n name: 'SkyCreate',\r\n inheritAttrs: false,\r\n setup(_props, { slots, attrs }) {\r\n const { t } = useI18n()\r\n const route = useRoute()\r\n const router = useRouter()\r\n const { removeTab, lastTab } = useTab()\r\n const { formData, formRef } = useProvideForm()\r\n const treeWithDetails = useTreeWithDetails()\r\n const { removeKeepAlive } = useRouteKeepAlive()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n let controller: AbortController | undefined\r\n\r\n const { isLoading: formSubmitLoging, execute } = useAsyncState<\r\n CreateResult | undefined,\r\n [data: Record<string, unknown>]\r\n >(\r\n async (data) => {\r\n controller = new AbortController()\r\n return skyConfig.dataProvider?.create?.(route.meta.resource as string, {\r\n data,\r\n signal: controller.signal,\r\n })\r\n },\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const onSumit = async () => {\r\n if (!formRef.value) {\r\n return\r\n }\r\n const valid = await formRef.value.validate()\r\n if (!valid) {\r\n return\r\n }\r\n const res = await execute(0, { ...formData })\r\n if (res) {\r\n if (treeWithDetails?.createSuccess) {\r\n treeWithDetails.createSuccess(res)\r\n } else {\r\n if (routeMeta.keepAliveName) {\r\n removeKeepAlive(routeMeta.keepAliveName)\r\n }\r\n removeTab(route.name as string)\r\n if (lastTab.value) {\r\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\r\n }\r\n }\r\n }\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-create\">\r\n <SkyCanAccess resource={routeMeta.resource} action=\"create\">\r\n <ElCard {...attrs}>\r\n {{\r\n default: slots.default,\r\n footer: () => (\r\n <div class=\"sky-create__footer\">\r\n <ElButton\r\n type=\"primary\"\r\n icon={EpDocumentAdd}\r\n loading={formSubmitLoging.value}\r\n onClick={onSumit}\r\n >\r\n {t('button.submit')}\r\n </ElButton>\r\n </div>\r\n ),\r\n }}\r\n </ElCard>\r\n </SkyCanAccess>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyCreate","defineComponent","name","inheritAttrs","attrs","t","route","useRoute","router","useRouter","lastTab","formRef","treeWithDetails","useTreeWithDetails","removeKeepAlive","routeMeta","controller","isLoading","execute","useAsyncState","data","immediate","onSumit","res","removeTab","params","_createVNode","default","footer","_slot","EpDocumentAdd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAU4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAE5C,MAAAE,KAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA;;IACuBC,OAAAA;AAAAA,EAAM,GAAA;;MACnBC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GACAC,IAAAC,EAAA;;MACmBC,SAAAA;AAAAA;;MACDC,SAAAA;AAAAA,aAClBC,IAAAC,EAAA;MACQC,iBAAAA;AAAAA,aACRC,IAAAT,EAAA;AAEA,QAAAU;;MAEQC,WAAAA;AAAAA,MAA6BC,SAAAA;AAAAA,IAAQ,IAAAC,EAAA,OAAAC,OAKzCJ,IAAAA,IAAAA,gBAAAA;;;IAIA,CAAA;MAIAK,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;UACE,CAAAX,EAAA;AAKE;AAEF,YAAAY,IAAA,MAAAL,EAAA,GAAA;AAAA;MAA2C,CAAA;AAC3C,MAAAK,yBAEIX,EAAAA,cAAAA,CAAAA,wBAGEE,EAAAA,EAAAA,aAAAA,GAEFU,EAAAA,EAAAA,IAAAA;QAEmBtB,MAAAA,EAAAA,MAAAA;AAAAA,QAA+BuB,QAAAA,EAAAA,MAAAA;AAAAA,MAAkC,CAAA;AAAA;AAM1F,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;MAEuC,QAAA;AAAA,IAAA,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,GAAAA;AAAAA;QAIpCC,QAAAA,MAAAA;AAAQ,cAAAC;AAAA,iBAAAH,EAAA,OAAA;AAAA,YAAA,OAAA;AAAA;YAAA,MAAA;AAAA,YAAA,MAAAI;AAAA;;;;UAQiB,CAAA,CAAA,CAAA;AAAA,QAAA;AAAA,MAGxB,CAAA,CAAA;AAAA;EAMb;AACF,CAAA;"}
@@ -0,0 +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-item/style/css");require("element-plus/es/components/table/style/css");require("element-plus/es/components/table-column/style/css");const e=require("vue"),l=require("element-plus"),g=require("vue-router"),S=require("../can-access/index.cjs");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 N=require("../../hooks/useForm.cjs");require("../../hooks/useShow.cjs");require("../../hooks/useReferenceArrayField.cjs");require("../../hooks/useTreeWithDetails.cjs");const k=require("../../hooks/useFormGrid.cjs");require("../../hooks/useReferenceArrayInput.cjs");const I=require("vue-i18n"),D=require("../data-list-item-input/index.cjs");function f(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const h=e.defineComponent({name:"SkyDataListInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String,rules:Object,defaultValue:{type:Array,default:()=>[]},serialize:Function,unserialize:Function},setup(t,{attrs:m,slots:n}){const{t:i}=I.useI18n(),q=g.useRoute().meta,b=e.computed(()=>t.label||t.source),p=k.useFormGrid(),{formData:c,editData:s}=N.useForm(),a=e.ref([]),d=e.computed(()=>n.default?.().filter(r=>r.type===D.SkyDataListItemInput));if(typeof c[t.source]>"u"&&(a.value=t.defaultValue),s.value){const r=s.value[t.source];a.value=t.unserialize?.(r)??r}const y=()=>{const r=e.reactive({});if(d.value){for(const u of d.value)r[u.props.source]=u.props.defaultValue;a.value.push(r)}},v=r=>{a.value.splice(r,1)};return e.watch(a.value,()=>c[t.source]=t.serialize?.(a.value)??a.value),()=>{let r;return e.createVNode(S.SkyCanAccess,{resource:q.resource,action:["create","edit"],column:t.source},{default:()=>[e.createVNode(l.ElFormItem,{class:"sky-data-list-input",label:b.value,prop:t.source,rules:t.rules,style:p?`grid-area: ${t.source}`:""},{default:()=>[e.createVNode(l.ElTable,e.mergeProps({data:a.value,border:!0,"max-height":"250"},m),{default:()=>[e.createVNode(l.ElTableColumn,{type:"index",label:"#",align:"center"},null),n.default?.().map(u=>e.createVNode(l.ElTableColumn,{label:u.props?.label||u.props.source,align:"center"},{default:({row:o})=>e.h(u,{modelValue:o[u.props.source],"onUpdate:modelValue":V=>o[u.props.source]=V})})),e.createVNode(l.ElTableColumn,{width:"100",label:i("dataListInput.operate"),align:"center"},{default:({$index:u})=>{let o;return e.createVNode(l.ElButton,{type:"danger",text:!0,onClick:()=>v(u)},f(o=i("button.remove"))?o:{default:()=>[o]})}})]}),e.createVNode(l.ElButton,{class:"sky-data-list-input__button-add",onClick:y},f(r=i("button.add"))?r:{default:()=>[r]})]})]})}}});exports.SkyDataListInput=h;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/data-list-input/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElButton,\n ElFormItem,\n ElTable,\n ElTableColumn,\n type FormItemRule,\n type TableProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, reactive, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid } from '@/hooks'\nimport { useI18n } from 'vue-i18n'\nimport { SkyDataListItemInput } from '../data-list-item-input'\n\nexport interface SkyDataListInputProps {\n source: string\n label?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Array<Record<string, unknown>>\n serialize?: (v: Array<Record<string, unknown>>) => unknown\n unserialize?: (v: Array<Record<string, unknown>>) => Array<Record<string, unknown>>\n}\n\nexport const SkyDataListInput = defineComponent<\n SkyDataListInputProps & Partial<TableProps<Record<string, unknown>>>\n>({\n name: 'SkyDataListInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n rules: Object,\n defaultValue: {\n type: Array,\n default: () => [],\n },\n serialize: Function,\n unserialize: Function,\n },\n setup(props, { attrs, slots }) {\n const { t } = useI18n()\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n const title = computed(() => props.label || props.source)\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const submitData = ref<Array<Record<string, unknown>>>([])\n const itemVNodes = computed(() =>\n slots.default?.().filter((vnode) => vnode.type === SkyDataListItemInput),\n )\n\n if (typeof formData[props.source] === 'undefined') {\n submitData.value = props.defaultValue!\n }\n\n if (editData.value) {\n const ed = editData.value[props.source] as Array<Record<string, unknown>>\n submitData.value = props.unserialize?.(ed) ?? ed\n }\n\n const onAdd = () => {\n const item: Record<string, unknown> = reactive({})\n if (itemVNodes.value) {\n for (const vnode of itemVNodes.value) {\n item[vnode.props!.source] = vnode.props!.defaultValue\n }\n submitData.value.push(item)\n }\n }\n\n const onDelte = (index: number) => {\n submitData.value.splice(index, 1)\n }\n\n watch(\n submitData.value,\n () => (formData[props.source] = props.serialize?.(submitData.value) ?? submitData.value),\n )\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n class=\"sky-data-list-input\"\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTable data={submitData.value} border max-height=\"250\" {...attrs}>\n <ElTableColumn type=\"index\" label=\"#\" align=\"center\" />\n {slots.default?.().map((vnode) => (\n <ElTableColumn label={vnode.props?.label || vnode.props!.source} align=\"center\">\n {{\n default: ({ row }: { row: Record<string, unknown> }) =>\n h(vnode, {\n modelValue: row[vnode.props!.source],\n 'onUpdate:modelValue': (v: unknown) => (row[vnode.props!.source] = v),\n }),\n }}\n </ElTableColumn>\n ))}\n <ElTableColumn width=\"100\" label={t('dataListInput.operate')} align=\"center\">\n {{\n default: ({ $index }: { $index: number }) => (\n <ElButton type=\"danger\" text onClick={() => onDelte($index)}>\n {t('button.remove')}\n </ElButton>\n ),\n }}\n </ElTableColumn>\n </ElTable>\n <ElButton class=\"sky-data-list-input__button-add\" onClick={onAdd}>\n {t('button.add')}\n </ElButton>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyDataListInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","serialize","unserialize","slots","t","routeMeta","useRoute","title","computed","formGrid","useFormGrid","editData","submitData","ref","item","reactive","vnode","itemVNodes","_slot2","default","attrs","_createVNode","ElTableColumn","row","h","$index","_slot","onDelte"],"mappings":"inCAc8D,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAW9D,MAAAE,EAAAC,EAAAA,gBAAA,CAGEC,KAAAA,mBACAC,aAAAA,GACAC,MAAAA,CACEC,OAAAA,CACEC,KAAAA,OACAC,SAAAA,IAEFC,MAAAA,OACAC,MAAAA,OACAC,aAAAA,CACEJ,KAAAA,sBAGFK,UAAAA,SACAC,YAAAA,2BAEoBC,MAAAA,CAAM,EAAA,OAClBC,EAAAA,eAERC,EADAC,EAAAA,SAAA,EACA,KACAC,EAAAC,EAAAA,SAAA,IAAAd,EAAA,OAAAA,EAAA,MAAA,EACAe,EAAAC,EAAAA,YAAA,cACkBC,SAAAA,eAClBC,EAAAC,EAAAA,IAAA,EAAA,yGAMED,EAAAA,MAAAA,EAAAA,8EAMF,cAGE,MAAAE,EAAAC,EAAAA,SAAA,EAAA,cAEE,UAAAC,KAAAC,EAAA,MACEH,EAAAA,EAAAA,MAAAA,MAAAA,EAAAA,EAAAA,MAAAA,aAEFF,EAAAA,MAAAA,KAAAA,CAAAA,CACF,2GAYK,IAAAM,2DACqC,OAAA,CAAA,SAAA,MAAA,EAA4B,OAAAxB,EAAA,MAAsB,EAAA,CAAAyB,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,aAAAA,CAAA,MAAA,gEAKtE,MAAAV,EAAA,cAAAf,EAAA,MAAA,GAAA,EACiC,EAAA,CAAAyB,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,QAAAA,EAAAA,WAAAA,cAEpB,OAAA,GAAA,aAAA,KAAA,EAAAC,CAAA,EAAA,CAAmCD,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,gBAAAA,CAAA,KAAA,QAAA,MAAA,IAAA,MAAA,QAAA,EAAA,IAAA,EAAAhB,EAAA,UAAA,EAAA,IAAAa,GAAAK,EAAAA,YAAAC,gBAAA,sCAGC,MAAA,QAAA,EAAA,CAE3DH,QAAAA,CAAAA,CAAYI,IAAAA,CAAsC,IAAAC,EAAAA,EAAAR,EAAA,4EAI9C,CAAA,CAAA,EAAAK,EAAAA,YAAAC,gBAAA,CAGR,MAAA,uCAC0D,MAAA,QAAA,EAAA,CAExDH,QAAAA,CAAAA,CAAYM,OAAAA,MAA4B,IAAAC,mCAAA,KAAA,SAAA,KAAA,GAAA,QAAA,IAAAC,EAAAF,CAAA,6CAEjB,CAAA,CAAA,CAEtB,CAAA,CAAA,8BAAA,MAAA,oFAKW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAK1B,CACF,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { FormItemRule, TableProps } from 'element-plus';
2
+ export interface SkyDataListInputProps {
3
+ source: string;
4
+ label?: string;
5
+ rules?: FormItemRule | FormItemRule[];
6
+ defaultValue?: Array<Record<string, unknown>>;
7
+ serialize?: (v: Array<Record<string, unknown>>) => unknown;
8
+ unserialize?: (v: Array<Record<string, unknown>>) => Array<Record<string, unknown>>;
9
+ }
10
+ export declare const SkyDataListInput: import('vue').DefineComponent<SkyDataListInputProps & Partial<TableProps<Record<string, unknown>>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyDataListInputProps & Partial<TableProps<Record<string, unknown>>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,136 @@
1
+ import "element-plus/es/components/button/style/css";
2
+ import "element-plus/es/components/form-item/style/css";
3
+ import "element-plus/es/components/table/style/css";
4
+ import "element-plus/es/components/table-column/style/css";
5
+ import { defineComponent as h, computed as p, ref as D, watch as I, createVNode as a, mergeProps as C, h as F, isVNode as _, reactive as j } from "vue";
6
+ import { ElFormItem as x, ElTable as z, ElTableColumn as i, ElButton as d } from "element-plus";
7
+ import { useRoute as A } from "vue-router";
8
+ import { SkyCanAccess as E } from "../can-access/index.mjs";
9
+ import "../../hooks/useUser.mjs";
10
+ import "../../hooks/usePermission.mjs";
11
+ import "../../hooks/useMenu.mjs";
12
+ import "../../hooks/useTab.mjs";
13
+ import "../../hooks/useRouteKeepAlive.mjs";
14
+ import "../../hooks/useSize.mjs";
15
+ import "../../hooks/useLang.mjs";
16
+ import "../../hooks/useTheme.mjs";
17
+ import "../../hooks/useList.mjs";
18
+ import "../../hooks/useHiddenTitle.mjs";
19
+ import { useForm as L } from "../../hooks/useForm.mjs";
20
+ import "../../hooks/useShow.mjs";
21
+ import "../../hooks/useReferenceArrayField.mjs";
22
+ import "../../hooks/useTreeWithDetails.mjs";
23
+ import { useFormGrid as N } from "../../hooks/useFormGrid.mjs";
24
+ import "../../hooks/useReferenceArrayInput.mjs";
25
+ import { useI18n as O } from "vue-i18n";
26
+ import { SkyDataListItemInput as G } from "../data-list-item-input/index.mjs";
27
+ function f(t) {
28
+ return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !_(t);
29
+ }
30
+ const mt = /* @__PURE__ */ h({
31
+ name: "SkyDataListInput",
32
+ inheritAttrs: !1,
33
+ props: {
34
+ source: {
35
+ type: String,
36
+ required: !0
37
+ },
38
+ label: String,
39
+ rules: Object,
40
+ defaultValue: {
41
+ type: Array,
42
+ default: () => []
43
+ },
44
+ serialize: Function,
45
+ unserialize: Function
46
+ },
47
+ setup(t, {
48
+ attrs: b,
49
+ slots: n
50
+ }) {
51
+ const {
52
+ t: l
53
+ } = O(), y = A().meta, v = p(() => t.label || t.source), g = N(), {
54
+ formData: s,
55
+ editData: m
56
+ } = L(), r = D([]), c = p(() => n.default?.().filter((e) => e.type === G));
57
+ if (typeof s[t.source] > "u" && (r.value = t.defaultValue), m.value) {
58
+ const e = m.value[t.source];
59
+ r.value = t.unserialize?.(e) ?? e;
60
+ }
61
+ const k = () => {
62
+ const e = j({});
63
+ if (c.value) {
64
+ for (const o of c.value)
65
+ e[o.props.source] = o.props.defaultValue;
66
+ r.value.push(e);
67
+ }
68
+ }, S = (e) => {
69
+ r.value.splice(e, 1);
70
+ };
71
+ return I(r.value, () => s[t.source] = t.serialize?.(r.value) ?? r.value), () => {
72
+ let e;
73
+ return a(E, {
74
+ resource: y.resource,
75
+ action: ["create", "edit"],
76
+ column: t.source
77
+ }, {
78
+ default: () => [a(x, {
79
+ class: "sky-data-list-input",
80
+ label: v.value,
81
+ prop: t.source,
82
+ rules: t.rules,
83
+ style: g ? `grid-area: ${t.source}` : ""
84
+ }, {
85
+ default: () => [a(z, C({
86
+ data: r.value,
87
+ border: !0,
88
+ "max-height": "250"
89
+ }, b), {
90
+ default: () => [a(i, {
91
+ type: "index",
92
+ label: "#",
93
+ align: "center"
94
+ }, null), n.default?.().map((o) => a(i, {
95
+ label: o.props?.label || o.props.source,
96
+ align: "center"
97
+ }, {
98
+ default: ({
99
+ row: u
100
+ }) => F(o, {
101
+ modelValue: u[o.props.source],
102
+ "onUpdate:modelValue": (V) => u[o.props.source] = V
103
+ })
104
+ })), a(i, {
105
+ width: "100",
106
+ label: l("dataListInput.operate"),
107
+ align: "center"
108
+ }, {
109
+ default: ({
110
+ $index: o
111
+ }) => {
112
+ let u;
113
+ return a(d, {
114
+ type: "danger",
115
+ text: !0,
116
+ onClick: () => S(o)
117
+ }, f(u = l("button.remove")) ? u : {
118
+ default: () => [u]
119
+ });
120
+ }
121
+ })]
122
+ }), a(d, {
123
+ class: "sky-data-list-input__button-add",
124
+ onClick: k
125
+ }, f(e = l("button.add")) ? e : {
126
+ default: () => [e]
127
+ })]
128
+ })]
129
+ });
130
+ };
131
+ }
132
+ });
133
+ export {
134
+ mt as SkyDataListInput
135
+ };
136
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/data-list-input/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\nimport {\n ElButton,\n ElFormItem,\n ElTable,\n ElTableColumn,\n type FormItemRule,\n type TableProps,\n} from 'element-plus'\nimport { computed, defineComponent, h, reactive, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\nimport { useForm, useFormGrid } from '@/hooks'\nimport { useI18n } from 'vue-i18n'\nimport { SkyDataListItemInput } from '../data-list-item-input'\n\nexport interface SkyDataListInputProps {\n source: string\n label?: string\n rules?: FormItemRule | FormItemRule[]\n defaultValue?: Array<Record<string, unknown>>\n serialize?: (v: Array<Record<string, unknown>>) => unknown\n unserialize?: (v: Array<Record<string, unknown>>) => Array<Record<string, unknown>>\n}\n\nexport const SkyDataListInput = defineComponent<\n SkyDataListInputProps & Partial<TableProps<Record<string, unknown>>>\n>({\n name: 'SkyDataListInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n rules: Object,\n defaultValue: {\n type: Array,\n default: () => [],\n },\n serialize: Function,\n unserialize: Function,\n },\n setup(props, { attrs, slots }) {\n const { t } = useI18n()\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n const title = computed(() => props.label || props.source)\n const formGrid = useFormGrid()\n const { formData, editData } = useForm()!\n const submitData = ref<Array<Record<string, unknown>>>([])\n const itemVNodes = computed(() =>\n slots.default?.().filter((vnode) => vnode.type === SkyDataListItemInput),\n )\n\n if (typeof formData[props.source] === 'undefined') {\n submitData.value = props.defaultValue!\n }\n\n if (editData.value) {\n const ed = editData.value[props.source] as Array<Record<string, unknown>>\n submitData.value = props.unserialize?.(ed) ?? ed\n }\n\n const onAdd = () => {\n const item: Record<string, unknown> = reactive({})\n if (itemVNodes.value) {\n for (const vnode of itemVNodes.value) {\n item[vnode.props!.source] = vnode.props!.defaultValue\n }\n submitData.value.push(item)\n }\n }\n\n const onDelte = (index: number) => {\n submitData.value.splice(index, 1)\n }\n\n watch(\n submitData.value,\n () => (formData[props.source] = props.serialize?.(submitData.value) ?? submitData.value),\n )\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\n <ElFormItem\n class=\"sky-data-list-input\"\n label={title.value}\n prop={props.source}\n rules={props.rules}\n style={formGrid ? `grid-area: ${props.source}` : ''}\n >\n <ElTable data={submitData.value} border max-height=\"250\" {...attrs}>\n <ElTableColumn type=\"index\" label=\"#\" align=\"center\" />\n {slots.default?.().map((vnode) => (\n <ElTableColumn label={vnode.props?.label || vnode.props!.source} align=\"center\">\n {{\n default: ({ row }: { row: Record<string, unknown> }) =>\n h(vnode, {\n modelValue: row[vnode.props!.source],\n 'onUpdate:modelValue': (v: unknown) => (row[vnode.props!.source] = v),\n }),\n }}\n </ElTableColumn>\n ))}\n <ElTableColumn width=\"100\" label={t('dataListInput.operate')} align=\"center\">\n {{\n default: ({ $index }: { $index: number }) => (\n <ElButton type=\"danger\" text onClick={() => onDelte($index)}>\n {t('button.remove')}\n </ElButton>\n ),\n }}\n </ElTableColumn>\n </ElTable>\n <ElButton class=\"sky-data-list-input__button-add\" onClick={onAdd}>\n {t('button.add')}\n </ElButton>\n </ElFormItem>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyDataListInput","defineComponent","name","inheritAttrs","props","source","type","required","label","rules","defaultValue","serialize","unserialize","slots","t","routeMeta","useRoute","title","computed","formGrid","useFormGrid","editData","submitData","ref","item","reactive","vnode","itemVNodes","_slot2","default","attrs","_createVNode","ElTableColumn","row","h","$index","_slot","onDelte"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAc8D,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAW9D,MAAAE,KAAA,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,OAAAA;AAAAA,IACAC,cAAAA;AAAAA,MACEJ,MAAAA;AAAAA;;IAGFK,WAAAA;AAAAA,IACAC,aAAAA;AAAAA;;;IAEoBC,OAAAA;AAAAA,EAAM,GAAA;;MAClBC,GAAAA;AAAAA,aAERC,IADAC,EAAA,EACA,MACAC,IAAAC,EAAA,MAAAd,EAAA,SAAAA,EAAA,MAAA,GACAe,IAAAC,EAAA;;MACkBC,UAAAA;AAAAA,aAClBC,IAAAC,EAAA,EAAA;qCAMED,EAAAA,QAAAA,EAAAA;;;IAMF;;AAGE,YAAAE,IAAAC,EAAA,EAAA;;AAEE,mBAAAC,KAAAC,EAAA;AACEH,UAAAA,EAAAA,EAAAA,MAAAA,MAAAA,IAAAA,EAAAA,MAAAA;AAEFF,QAAAA,EAAAA,MAAAA,KAAAA,CAAAA;AAAAA,MACF;AAAA;;;;AAYK,UAAAM;;;QACqC,QAAA,CAAA,UAAA,MAAA;AAAA,QAA4B,QAAAxB,EAAA;AAAA,MAAsB,GAAA;AAAA,QAAAyB,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,UAAA,OAAA;AAAA;;;UAKtE,OAAAV,IAAA,cAAAf,EAAA,MAAA,KAAA;AAAA,QACiC,GAAA;AAAA,UAAAyB,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA;YAEpB,QAAA;AAAA,YAAA,cAAA;AAAA,UAAA,GAAAC,CAAA,GAAA;AAAA,YAAmCD,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,cAAA,MAAA;AAAA,cAAA,OAAA;AAAA,cAAA,OAAA;AAAA,YAAA,GAAA,IAAA,GAAAhB,EAAA,UAAA,EAAA,IAAA,CAAAa,MAAAK,EAAAC,GAAA;AAAA;cAGC,OAAA;AAAA,YAAA,GAAA;AAAA,cAE3DH,SAAAA,CAAAA;AAAAA,gBAAYI,KAAAA;AAAAA,cAAsC,MAAAC,EAAAR,GAAA;AAAA;;;YAI9C,CAAA,CAAA,GAAAK,EAAAC,GAAA;AAAA,cAGR,OAAA;AAAA;cAC0D,OAAA;AAAA,YAAA,GAAA;AAAA,cAExDH,SAAAA,CAAAA;AAAAA,gBAAYM,QAAAA;AAAAA;AAA4B,oBAAAC;;kBAAA,MAAA;AAAA,kBAAA,MAAA;AAAA,kBAAA,SAAA,MAAAC,EAAAF,CAAA;AAAA;;gBAEjB,CAAA;AAAA,cAAA;AAAA,YAEtB,CAAA,CAAA;AAAA;YAAA,OAAA;AAAA;;;UAKW,CAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAK1B;AACF,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),u=t.defineComponent({name:"SkyDataListItemInput",inheritAttrs:!1,props:{source:{type:String,required:!0},label:String},setup(a,{attrs:e,slots:r}){return()=>r.default?.().map(n=>t.h(n,e))}});exports.SkyDataListItemInput=u;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/data-list-item-input/index.tsx"],"sourcesContent":["import { defineComponent, h } from 'vue'\n\nexport interface SkyDataListItemInputProps {\n source: string\n label?: string\n defaultValue?: unknown\n}\n\nexport const SkyDataListItemInput = defineComponent<SkyDataListItemInputProps>({\n name: 'SkyDataListItemInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n },\n setup(_props, { attrs, slots }) {\n return () => slots.default?.().map((vnode) => h(vnode, attrs))\n },\n})\n"],"names":["SkyDataListItemInput","defineComponent","name","inheritAttrs","props","source","type","String","required","label","setup","_props","attrs","slots","default","map","vnode","h"],"mappings":"uGAQaA,EAAuBC,EAAAA,gBAA2C,CAC7EC,KAAM,uBACNC,aAAc,GACdC,MAAO,CACLC,OAAQ,CACNC,KAAMC,OACNC,SAAU,IAEZC,MAAOF,QAETG,MAAMC,EAAQ,CAAEC,MAAAA,EAAOC,MAAAA,CAAM,EAAG,CAC9B,MAAO,IAAMA,EAAMC,YAAYC,IAAKC,GAAUC,EAAAA,EAAED,EAAOJ,CAAK,CAAC,CAC/D,CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface SkyDataListItemInputProps {
2
+ source: string;
3
+ label?: string;
4
+ defaultValue?: unknown;
5
+ }
6
+ export declare const SkyDataListItemInput: import('vue').DefineComponent<SkyDataListItemInputProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SkyDataListItemInputProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
@@ -0,0 +1,22 @@
1
+ import { defineComponent as p, h as n } from "vue";
2
+ const o = /* @__PURE__ */ p({
3
+ name: "SkyDataListItemInput",
4
+ inheritAttrs: !1,
5
+ props: {
6
+ source: {
7
+ type: String,
8
+ required: !0
9
+ },
10
+ label: String
11
+ },
12
+ setup(a, {
13
+ attrs: t,
14
+ slots: e
15
+ }) {
16
+ return () => e.default?.().map((r) => n(r, t));
17
+ }
18
+ });
19
+ export {
20
+ o as SkyDataListItemInput
21
+ };
22
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/data-list-item-input/index.tsx"],"sourcesContent":["import { defineComponent, h } from 'vue'\n\nexport interface SkyDataListItemInputProps {\n source: string\n label?: string\n defaultValue?: unknown\n}\n\nexport const SkyDataListItemInput = defineComponent<SkyDataListItemInputProps>({\n name: 'SkyDataListItemInput',\n inheritAttrs: false,\n props: {\n source: {\n type: String,\n required: true,\n },\n label: String,\n },\n setup(_props, { attrs, slots }) {\n return () => slots.default?.().map((vnode) => h(vnode, attrs))\n },\n})\n"],"names":["SkyDataListItemInput","defineComponent","name","inheritAttrs","props","source","type","String","required","label","setup","_props","attrs","slots","default","map","vnode","h"],"mappings":";AAQO,MAAMA,IAAuBC,gBAAAA,EAA2C;AAAA,EAC7EC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAO;AAAA,IACLC,QAAQ;AAAA,MACNC,MAAMC;AAAAA,MACNC,UAAU;AAAA;IAEZC,OAAOF;AAAAA;EAETG,MAAMC,GAAQ;AAAA,IAAEC,OAAAA;AAAAA,IAAOC,OAAAA;AAAAA,EAAM,GAAG;AAC9B,WAAO,MAAMA,EAAMC,YAAYC,IAAKC,CAAAA,MAAUC,EAAED,GAAOJ,CAAK,CAAC;AAAA,EAC/D;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/edit-button/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyEditButtonProps {\n id?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyEditButton = defineComponent<SkyEditButtonProps & Partial<ButtonProps>>({\n name: 'SkyEditButton',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'id',\n },\n row: Object,\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const router = useRouter()\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n const id = computed(() => {\n const v = props.row?.[props.id!]\n if (v) {\n return String(v)\n }\n })\n\n const onEdit = () => {\n const routeName = skyConfig.getEditRouteName(routeMeta.resource)\n if (id.value && router.hasRoute(routeName)) {\n router.push({\n name: routeName,\n params: {\n id: id.value,\n },\n })\n }\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\" row={id.value}>\n <ElButton link type=\"primary\" onClick={onEdit} {...attrs}>\n {t('button.edit')}\n </ElButton>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyEditButton","defineComponent","name","inheritAttrs","props","id","type","default","row","attrs","t","router","useRouter","routeMeta","useRoute","computed","v","params","_slot"],"mappings":"8SAM4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAO5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,GAAAA,CACEC,KAAAA,OACAC,QAAAA,MAEFC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,OACXC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EAEAC,EADAC,EAAAA,SAAA,EACA,KACAT,EAAAU,EAAAA,SAAA,IAAA,uBAEE,GAAAC,kBAGF,CAAA,0FAMMd,KAAAA,EACAe,OAAAA,WAEA,CACF,CAAA,cAIG,IAAAC,2DACqC,OAAA,OAAA,IAAAb,EAAA,KAA6B,EAAA,CAAAE,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,KAAA,GAAA,KAAA,gEAElD,CAAA,CAAA,CAAA,CAAA,EAIzB,CACF,CAAA"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/edit-button/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\r\nimport { skyConfig } from '@/setup'\r\nimport { ElButton, type ButtonProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyEditButtonProps {\r\n id?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyEditButton = defineComponent<SkyEditButtonProps & Partial<ButtonProps>>({\r\n name: 'SkyEditButton',\r\n inheritAttrs: false,\r\n props: {\r\n id: {\r\n type: String,\r\n default: 'id',\r\n },\r\n row: Object,\r\n },\r\n setup(props, { attrs }) {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n const id = computed(() => {\r\n const v = props.row?.[props.id!]\r\n if (v) {\r\n return String(v)\r\n }\r\n })\r\n\r\n const onEdit = () => {\r\n const routeName = skyConfig.getEditRouteName(routeMeta.resource)\r\n if (id.value && router.hasRoute(routeName)) {\r\n router.push({\r\n name: routeName,\r\n params: {\r\n id: id.value,\r\n },\r\n })\r\n }\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\" row={id.value}>\r\n <ElButton link type=\"primary\" onClick={onEdit} {...attrs}>\r\n {t('button.edit')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyEditButton","defineComponent","name","inheritAttrs","props","id","type","default","row","attrs","t","router","useRouter","routeMeta","useRoute","computed","v","params","_slot"],"mappings":"8SAM4C,SAAAA,EAAAC,EAAA,CAAA,OAAA,OAAAA,GAAA,YAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,IAAA,mBAAA,CAAAC,EAAAA,QAAAD,CAAA,CAAA,CAO5C,MAAAE,EAAAC,EAAAA,gBAAA,CACEC,KAAAA,gBACAC,aAAAA,GACAC,MAAAA,CACEC,GAAAA,CACEC,KAAAA,OACAC,QAAAA,MAEFC,IAAAA,iBAEaC,MAAAA,CAAM,EAAA,OACXC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EAEAC,EADAC,EAAAA,SAAA,EACA,KACAT,EAAAU,EAAAA,SAAA,IAAA,uBAEE,GAAAC,kBAGF,CAAA,0FAMMd,KAAAA,EACAe,OAAAA,WAEA,CACF,CAAA,cAIG,IAAAC,2DACqC,OAAA,OAAA,IAAAb,EAAA,KAA6B,EAAA,CAAAE,QAAAA,IAAAA,CAAAA,cAAAA,EAAAA,SAAAA,EAAAA,WAAAA,CAAA,KAAA,GAAA,KAAA,gEAElD,CAAA,CAAA,CAAA,CAAA,EAIzB,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/components/edit-button/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\nimport { skyConfig } from '@/setup'\nimport { ElButton, type ButtonProps } from 'element-plus'\nimport { computed, defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRoute, useRouter } from 'vue-router'\nimport { SkyCanAccess } from '../can-access'\n\nexport interface SkyEditButtonProps {\n id?: string\n row?: Record<string, unknown>\n}\n\nexport const SkyEditButton = defineComponent<SkyEditButtonProps & Partial<ButtonProps>>({\n name: 'SkyEditButton',\n inheritAttrs: false,\n props: {\n id: {\n type: String,\n default: 'id',\n },\n row: Object,\n },\n setup(props, { attrs }) {\n const { t } = useI18n()\n const router = useRouter()\n const route = useRoute()\n const routeMeta = route.meta as SkyLayoutRouteMeta\n const id = computed(() => {\n const v = props.row?.[props.id!]\n if (v) {\n return String(v)\n }\n })\n\n const onEdit = () => {\n const routeName = skyConfig.getEditRouteName(routeMeta.resource)\n if (id.value && router.hasRoute(routeName)) {\n router.push({\n name: routeName,\n params: {\n id: id.value,\n },\n })\n }\n }\n\n return () => (\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\" row={id.value}>\n <ElButton link type=\"primary\" onClick={onEdit} {...attrs}>\n {t('button.edit')}\n </ElButton>\n </SkyCanAccess>\n )\n },\n})\n"],"names":["_isSlot","s","_isVNode","SkyEditButton","defineComponent","name","inheritAttrs","props","id","type","default","row","attrs","t","router","useRouter","routeMeta","useRoute","computed","v","params","_slot"],"mappings":";;;;;;;AAM4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAO5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,IAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;;MACXC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GAEAC,IADAC,EAAA,EACA,MACAT,IAAAU,EAAA,MAAA;;AAEE,UAAAC;;IAGF,CAAA;;;QAMMd,MAAAA;AAAAA,QACAe,QAAAA;AAAAA;QAEA;AAAA,MACF,CAAA;AAAA;;AAIG,UAAAC;;;QACqC,QAAA;AAAA,QAAA,KAAAb,EAAA;AAAA,MAA6B,GAAA;AAAA,QAAAE,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,MAAA;AAAA,UAAA,MAAA;AAAA;;;QAElD,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAIzB;AACF,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/components/edit-button/index.tsx"],"sourcesContent":["import type { SkyLayoutRouteMeta } from '@/router'\r\nimport { skyConfig } from '@/setup'\r\nimport { ElButton, type ButtonProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRoute, useRouter } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyEditButtonProps {\r\n id?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyEditButton = defineComponent<SkyEditButtonProps & Partial<ButtonProps>>({\r\n name: 'SkyEditButton',\r\n inheritAttrs: false,\r\n props: {\r\n id: {\r\n type: String,\r\n default: 'id',\r\n },\r\n row: Object,\r\n },\r\n setup(props, { attrs }) {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n const id = computed(() => {\r\n const v = props.row?.[props.id!]\r\n if (v) {\r\n return String(v)\r\n }\r\n })\r\n\r\n const onEdit = () => {\r\n const routeName = skyConfig.getEditRouteName(routeMeta.resource)\r\n if (id.value && router.hasRoute(routeName)) {\r\n router.push({\r\n name: routeName,\r\n params: {\r\n id: id.value,\r\n },\r\n })\r\n }\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action=\"edit\" row={id.value}>\r\n <ElButton link type=\"primary\" onClick={onEdit} {...attrs}>\r\n {t('button.edit')}\r\n </ElButton>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\n"],"names":["_isSlot","s","_isVNode","SkyEditButton","defineComponent","name","inheritAttrs","props","id","type","default","row","attrs","t","router","useRouter","routeMeta","useRoute","computed","v","params","_slot"],"mappings":";;;;;;;AAM4C,SAAAA,EAAAC,GAAA;AAAA,SAAA,OAAAA,KAAA,cAAA,OAAA,UAAA,SAAA,KAAAA,CAAA,MAAA,qBAAA,CAAAC,EAAAD,CAAA;AAAA;AAO5C,MAAAE,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,OAAAA;AAAAA,IACEC,IAAAA;AAAAA,MACEC,MAAAA;AAAAA,MACAC,SAAAA;AAAAA;IAEFC,KAAAA;AAAAA;;IAEaC,OAAAA;AAAAA,EAAM,GAAA;;MACXC,GAAAA;AAAAA,aACRC,IAAAC,EAAA,GAEAC,IADAC,EAAA,EACA,MACAT,IAAAU,EAAA,MAAA;;AAEE,UAAAC;;IAGF,CAAA;;;QAMMd,MAAAA;AAAAA,QACAe,QAAAA;AAAAA;QAEA;AAAA,MACF,CAAA;AAAA;;AAIG,UAAAC;;;QACqC,QAAA;AAAA,QAAA,KAAAb,EAAA;AAAA,MAA6B,GAAA;AAAA,QAAAE,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA,EAAAA;AAAAA,UAAA,MAAA;AAAA,UAAA,MAAA;AAAA;;;QAElD,CAAA,CAAA;AAAA,MAAA,CAAA;AAAA;EAIzB;AACF,CAAA;"}
@@ -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":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/image-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\r\nimport { ElImage, type ImageProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyImageFieldProps {\r\n source: string\r\n src?: string\r\n label?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\r\n name: 'SkyImageField',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n src: {\r\n type: String,\r\n default: 'src',\r\n },\r\n label: String,\r\n row: Object,\r\n },\r\n setup(props, { attrs }) {\r\n const route = useRoute()\r\n const hiddenTitle = useHiddenTitle()\r\n const title = computed<string>(() => props.label || props.source)\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const field = computed<string>(() => {\r\n const v = props.row?.[props.source]\r\n if (!v) {\r\n return ''\r\n }\r\n if (typeof v !== 'object') {\r\n return String(v)\r\n }\r\n return (v as Record<string, string>)[props.src!] || ''\r\n })\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\r\n {field.value &&\r\n (hiddenTitle ? (\r\n <ElImage src={field.value} {...attrs} />\r\n ) : (\r\n <div class=\"sky-image-field\">\r\n {title.value && <h4>{title.value}</h4>}\r\n <ElImage src={field.value} {...attrs} />\r\n </div>\r\n ))}\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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"}
@@ -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'\r\nimport { ElImage, type ImageProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\n\r\nexport interface SkyImageFieldProps {\r\n source: string\r\n src?: string\r\n label?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyImageField = defineComponent<SkyImageFieldProps & Partial<ImageProps>>({\r\n name: 'SkyImageField',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n src: {\r\n type: String,\r\n default: 'src',\r\n },\r\n label: String,\r\n row: Object,\r\n },\r\n setup(props, { attrs }) {\r\n const route = useRoute()\r\n const hiddenTitle = useHiddenTitle()\r\n const title = computed<string>(() => props.label || props.source)\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const field = computed<string>(() => {\r\n const v = props.row?.[props.source]\r\n if (!v) {\r\n return ''\r\n }\r\n if (typeof v !== 'object') {\r\n return String(v)\r\n }\r\n return (v as Record<string, string>)[props.src!] || ''\r\n })\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\r\n {field.value &&\r\n (hiddenTitle ? (\r\n <ElImage src={field.value} {...attrs} />\r\n ) : (\r\n <div class=\"sky-image-field\">\r\n {title.value && <h4>{title.value}</h4>}\r\n <ElImage src={field.value} {...attrs} />\r\n </div>\r\n ))}\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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;"}
@@ -26,3 +26,5 @@ export * from './file-multiple-model-input';
26
26
  export * from './tree-select-input';
27
27
  export * from './tree-with-details';
28
28
  export * from './edit';
29
+ export * from './data-list-input';
30
+ export * from './data-list-item-input';
@@ -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":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/link-field/index.tsx"],"sourcesContent":["import { useHiddenTitle } from '@/hooks'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { ElButton, type ButtonProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyLinkFieldProps {\r\n source: string\r\n label?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\r\n name: 'SkyLinkField',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n row: Object,\r\n },\r\n emits: ['click'],\r\n setup(props, { emit, attrs }) {\r\n const route = useRoute()\r\n const hiddenTitle = useHiddenTitle()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const field = computed<string>(() => {\r\n const v = props.row?.[props.source]\r\n if (v) {\r\n return String(v)\r\n }\r\n return ''\r\n })\r\n\r\n const title = computed(() => {\r\n return props.label || props.source\r\n })\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\r\n {hiddenTitle ? (\r\n <div>\r\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\r\n {field.value}\r\n </ElButton>\r\n </div>\r\n ) : (\r\n <div class=\"sky-link-field\">\r\n <h4>{title.value}</h4>\r\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\r\n {field.value}\r\n </ElButton>\r\n </div>\r\n )}\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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"}
@@ -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'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport { ElButton, type ButtonProps } from 'element-plus'\r\nimport { computed, defineComponent } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyLinkFieldProps {\r\n source: string\r\n label?: string\r\n row?: Record<string, unknown>\r\n}\r\n\r\nexport const SkyLinkField = defineComponent<SkyLinkFieldProps & Partial<ButtonProps>>({\r\n name: 'SkyLinkField',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n row: Object,\r\n },\r\n emits: ['click'],\r\n setup(props, { emit, attrs }) {\r\n const route = useRoute()\r\n const hiddenTitle = useHiddenTitle()\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const field = computed<string>(() => {\r\n const v = props.row?.[props.source]\r\n if (v) {\r\n return String(v)\r\n }\r\n return ''\r\n })\r\n\r\n const title = computed(() => {\r\n return props.label || props.source\r\n })\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['list', 'show']} column={props.source}>\r\n {hiddenTitle ? (\r\n <div>\r\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\r\n {field.value}\r\n </ElButton>\r\n </div>\r\n ) : (\r\n <div class=\"sky-link-field\">\r\n <h4>{title.value}</h4>\r\n <ElButton type=\"primary\" text bg onClick={() => emit('click', props.row)} {...attrs}>\r\n {field.value}\r\n </ElButton>\r\n </div>\r\n )}\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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 +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":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/radio-button-group-input/index.tsx"],"sourcesContent":["import { useForm, useFormGrid } from '@/hooks'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport {\r\n ElFormItem,\r\n ElRadio,\r\n ElRadioGroup,\r\n type FormItemRule,\r\n type RadioGroupProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, h, type PropType } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyRadioButtonGroupInputOptionItem {\r\n value: string | number\r\n label: string\r\n disabled?: boolean\r\n}\r\n\r\nexport interface SkyRadioButtonGroupInputProps {\r\n source: string\r\n label?: string\r\n options: SkyRadioButtonGroupInputOptionItem[]\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: string | number\r\n}\r\n\r\nexport const SkyRadioButtonGroupInput = defineComponent<\r\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\r\n>({\r\n name: 'SkyRadioButtonGroupInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\r\n rules: Object,\r\n defaultValue: {\r\n type: [String, Number],\r\n default: '',\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElRadioGroup\r\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\r\n onUpdate:modelValue={(v) =>\r\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\r\n }\r\n {...attrs}\r\n >\r\n {props.options.map((option) =>\r\n h(\r\n ElRadio,\r\n { key: option.value, value: option.value },\r\n { default: () => option.label },\r\n ),\r\n )}\r\n </ElRadioGroup>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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"}
@@ -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'\r\nimport type { SkyLayoutRouteMeta } from '@/router'\r\nimport {\r\n ElFormItem,\r\n ElRadio,\r\n ElRadioGroup,\r\n type FormItemRule,\r\n type RadioGroupProps,\r\n} from 'element-plus'\r\nimport { computed, defineComponent, h, type PropType } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\nimport { SkyCanAccess } from '../can-access'\r\n\r\nexport interface SkyRadioButtonGroupInputOptionItem {\r\n value: string | number\r\n label: string\r\n disabled?: boolean\r\n}\r\n\r\nexport interface SkyRadioButtonGroupInputProps {\r\n source: string\r\n label?: string\r\n options: SkyRadioButtonGroupInputOptionItem[]\r\n rules?: FormItemRule | FormItemRule[]\r\n defaultValue?: string | number\r\n}\r\n\r\nexport const SkyRadioButtonGroupInput = defineComponent<\r\n SkyRadioButtonGroupInputProps & Partial<RadioGroupProps>\r\n>({\r\n name: 'SkyRadioButtonGroupInput',\r\n inheritAttrs: false,\r\n props: {\r\n source: {\r\n type: String,\r\n required: true,\r\n },\r\n label: String,\r\n options: Array as PropType<SkyRadioButtonGroupInputOptionItem[]>,\r\n rules: Object,\r\n defaultValue: {\r\n type: [String, Number],\r\n default: '',\r\n },\r\n },\r\n setup(props, { attrs }) {\r\n const route = useRoute()\r\n const formGrid = useFormGrid()\r\n const { formData, editData } = useForm()!\r\n const routeMeta = route.meta as SkyLayoutRouteMeta\r\n\r\n const title = computed<string>(() => props.label || props.source)\r\n\r\n if (typeof formData[props.source] === 'undefined') {\r\n formData[props.source] = props.defaultValue!\r\n }\r\n\r\n if (editData.value) {\r\n formData[props.source] = editData.value[props.source]\r\n }\r\n\r\n return () => (\r\n <SkyCanAccess resource={routeMeta.resource} action={['create', 'edit']} column={props.source}>\r\n <ElFormItem\r\n label={title.value}\r\n prop={props.source}\r\n rules={props.rules}\r\n style={formGrid ? `grid-area: ${props.source}` : ''}\r\n >\r\n <ElRadioGroup\r\n modelValue={formData[props.source] as SkyRadioButtonGroupInputOptionItem['value']}\r\n onUpdate:modelValue={(v) =>\r\n (formData[props.source] = v as SkyRadioButtonGroupInputOptionItem['value'])\r\n }\r\n {...attrs}\r\n >\r\n {props.options.map((option) =>\r\n h(\r\n ElRadio,\r\n { key: option.value, value: option.value },\r\n { default: () => option.label },\r\n ),\r\n )}\r\n </ElRadioGroup>\r\n </ElFormItem>\r\n </SkyCanAccess>\r\n )\r\n },\r\n})\r\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;"}