@silver-formily/element-plus 2.0.1 → 2.2.0

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 (123) hide show
  1. package/README.en-US.md +32 -0
  2. package/README.md +32 -35
  3. package/esm/__builtins__/index.mjs +15 -16
  4. package/esm/__builtins__/shared/index.mjs +11 -12
  5. package/esm/__builtins__/shared/transform-component.d.ts +2 -6
  6. package/esm/__builtins__/shared/transform-component.mjs +16 -33
  7. package/esm/__builtins__/shared/transform-component.mjs.map +1 -1
  8. package/esm/__builtins__/shared/utils.mjs +10 -10
  9. package/esm/__builtins__/shared/utils.mjs.map +1 -1
  10. package/esm/array-base/index.mjs +58 -58
  11. package/esm/array-base/index.mjs.map +1 -1
  12. package/esm/array-cards/index.mjs +44 -44
  13. package/esm/array-cards/index.mjs.map +1 -1
  14. package/esm/array-collapse/index.mjs +59 -58
  15. package/esm/array-collapse/index.mjs.map +1 -1
  16. package/esm/array-items/index.mjs +46 -43
  17. package/esm/array-items/index.mjs.map +1 -1
  18. package/esm/array-list-tabs/index.mjs +15 -14
  19. package/esm/array-list-tabs/index.mjs.map +1 -1
  20. package/esm/array-table/array-table.d.ts +28 -0
  21. package/esm/array-table/index.d.ts +28 -0
  22. package/esm/array-table/index.mjs +113 -111
  23. package/esm/array-table/index.mjs.map +1 -1
  24. package/esm/array-table/types.d.ts +1 -0
  25. package/esm/cascader/index.mjs +19 -20
  26. package/esm/cascader/index.mjs.map +1 -1
  27. package/esm/checkbox/checkbox-group.d.ts +1 -4
  28. package/esm/checkbox/index.d.ts +442 -379
  29. package/esm/checkbox/index.mjs.map +1 -1
  30. package/esm/editable/editable.d.ts +16 -12
  31. package/esm/editable/index.d.ts +8 -6
  32. package/esm/editable/index.mjs +110 -112
  33. package/esm/editable/index.mjs.map +1 -1
  34. package/esm/form-button-group/index.mjs +29 -28
  35. package/esm/form-button-group/index.mjs.map +1 -1
  36. package/esm/form-collapse/index.mjs +42 -43
  37. package/esm/form-collapse/index.mjs.map +1 -1
  38. package/esm/form-dialog/index.d.ts +1 -1
  39. package/esm/form-dialog/index.mjs +4 -4
  40. package/esm/form-dialog/index.mjs.map +1 -1
  41. package/esm/form-dialog/types.d.ts +6 -6
  42. package/esm/form-drawer/index.d.ts +1 -1
  43. package/esm/form-drawer/index.mjs +4 -4
  44. package/esm/form-drawer/index.mjs.map +1 -1
  45. package/esm/form-drawer/types.d.ts +6 -6
  46. package/esm/form-grid/index.d.ts +1 -183
  47. package/esm/form-grid/index.mjs +1 -1
  48. package/esm/form-grid/index.mjs.map +1 -1
  49. package/esm/form-item/form-item.d.ts +2 -1
  50. package/esm/form-item/index.d.ts +12 -6
  51. package/esm/form-item/index.mjs +163 -155
  52. package/esm/form-item/index.mjs.map +1 -1
  53. package/esm/form-item/types.d.ts +0 -1
  54. package/esm/form-layout/form-layout.d.ts +0 -1
  55. package/esm/form-layout/form-layout.mjs +53 -52
  56. package/esm/form-layout/form-layout.mjs.map +1 -1
  57. package/esm/form-layout/types.d.ts +0 -2
  58. package/esm/form-layout/utils.d.ts +3 -3
  59. package/esm/form-layout/utils.mjs +48 -43
  60. package/esm/form-layout/utils.mjs.map +1 -1
  61. package/esm/form-step/index.mjs +27 -25
  62. package/esm/form-step/index.mjs.map +1 -1
  63. package/esm/form-tab/index.d.ts +1 -26
  64. package/esm/form-tab/index.mjs +30 -30
  65. package/esm/form-tab/index.mjs.map +1 -1
  66. package/esm/index.d.ts +3 -0
  67. package/esm/index.mjs +44 -38
  68. package/esm/index.mjs.map +1 -1
  69. package/esm/input/index.mjs.map +1 -1
  70. package/esm/input-number/index.d.ts +258 -147
  71. package/esm/pagination/pagination.mjs +109 -110
  72. package/esm/pagination/pagination.mjs.map +1 -1
  73. package/esm/password/index.mjs.map +1 -1
  74. package/esm/preview-text/index.d.ts +5 -0
  75. package/esm/preview-text/index.mjs +165 -141
  76. package/esm/preview-text/index.mjs.map +1 -1
  77. package/esm/preview-text/rate.d.ts +5 -0
  78. package/esm/preview-text/utils.d.ts +5 -5
  79. package/esm/preview-text/utils.mjs.map +1 -1
  80. package/esm/radio/index.d.ts +344 -194
  81. package/esm/radio/index.mjs.map +1 -1
  82. package/esm/rate/index.d.ts +187 -0
  83. package/esm/rate/index.mjs +14 -0
  84. package/esm/rate/index.mjs.map +1 -0
  85. package/esm/reset/index.d.ts +1 -62
  86. package/esm/reset/index.mjs +1 -1
  87. package/esm/reset/index.mjs.map +1 -1
  88. package/esm/segmented/index.d.ts +26 -0
  89. package/esm/segmented/index.mjs +37 -0
  90. package/esm/segmented/index.mjs.map +1 -0
  91. package/esm/segmented/segmented.d.ts +25 -0
  92. package/esm/select/index.mjs +8 -8
  93. package/esm/select/index.mjs.map +1 -1
  94. package/esm/select-table/index.d.ts +28 -0
  95. package/esm/select-table/index.mjs +48 -47
  96. package/esm/select-table/index.mjs.map +1 -1
  97. package/esm/select-table/select-table.d.ts +56 -0
  98. package/esm/slider/index.d.ts +177 -0
  99. package/esm/slider/index.mjs +14 -0
  100. package/esm/slider/index.mjs.map +1 -0
  101. package/esm/submit/index.d.ts +1 -47
  102. package/esm/submit/index.mjs +1 -1
  103. package/esm/submit/index.mjs.map +1 -1
  104. package/esm/switch/index.d.ts +225 -189
  105. package/esm/time-select/index.d.ts +163 -103
  106. package/esm/transfer/index.d.ts +196 -115
  107. package/esm/transfer/index.mjs.map +1 -1
  108. package/esm/tree/index.mjs +26 -26
  109. package/esm/tree/index.mjs.map +1 -1
  110. package/esm/tree-select/index.mjs.map +1 -1
  111. package/esm/upload/index.d.ts +404 -399
  112. package/esm/upload/index.mjs.map +1 -1
  113. package/esm/upload/upload.d.ts +800 -790
  114. package/esm/vendor/icon.mjs.map +1 -1
  115. package/esm/vendor/lodash.mjs +12 -20
  116. package/esm/vendor/lodash.mjs.map +1 -1
  117. package/esm/vendor/runtime.mjs +29 -24
  118. package/esm/vendor/runtime.mjs.map +1 -1
  119. package/esm/vendor/shared.esm-bundler.mjs +2 -2
  120. package/esm/vendor/sizes.mjs.map +1 -1
  121. package/esm/vendor/types.mjs +5 -5
  122. package/esm/vendor/types.mjs.map +1 -1
  123. package/package.json +8 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/upload/upload.vue","../../src/upload/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport type { Field } from '@formily/core'\r\nimport type { ImageViewerInstance, ImageViewerProps, UploadFile, UploadInstance, UploadProps, UploadRawFile } from 'element-plus'\r\nimport type { PropType } from 'vue'\r\nimport {\r\n Plus as PlusIcon,\r\n UploadFilled as UploadFilledIcon,\r\n Upload as UploadIcon,\r\n} from '@element-plus/icons-vue'\r\nimport { reaction } from '@formily/reactive'\r\nimport { isFn } from '@formily/shared'\r\nimport { useField } from '@silver-formily/vue'\r\nimport { ElButton, ElIcon, ElImageViewer, ElUpload, genFileId } from 'element-plus'\r\nimport { omit } from 'lodash-es'\r\nimport { computed, onBeforeUnmount, ref, useAttrs } from 'vue'\r\nimport { hasSlotContent } from '../__builtins__'\r\n\r\ndefineOptions({\r\n name: 'FUpload',\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = defineProps({\r\n textContent: {\r\n type: String,\r\n default: '',\r\n },\r\n errorAdaptor: {\r\n type: Function as PropType<(error?: Error) => string>,\r\n default: (error?: Error) => error?.message,\r\n },\r\n formatValue: {\r\n type: Function as PropType<(fileList?: UploadFile[]) => any>,\r\n default: item => item,\r\n },\r\n fileList: {\r\n type: Array as PropType<UploadFile[]>,\r\n default: () => [],\r\n },\r\n imageViewerProps: {\r\n type: Object as PropType<ImageViewerProps>,\r\n default: () => ({ teleported: true, showProgress: true }),\r\n },\r\n})\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst uploadRef = ref<UploadInstance>()\r\nconst attrs = useAttrs() as UploadProps\r\nconst innerAttrs = computed(() => {\r\n return omit(attrs, [\r\n 'onChange',\r\n 'onRemove',\r\n 'onExceed',\r\n 'onError',\r\n 'onPreview',\r\n 'fileList',\r\n 'onUpdate:fileList',\r\n ])\r\n})\r\nconst fieldRef = useField<Field>()\r\nfieldRef.value?.inject({\r\n getElUploadRef: () => {\r\n return uploadRef\r\n },\r\n})\r\n\r\nconst imgPreviewRef = ref<ImageViewerInstance>()\r\nconst activeImageIndex = ref(0)\r\nconst isShowImgViewer = ref(false)\r\nconst imgPreviewList = computed(() => {\r\n return props.fileList.map(item => item.url)\r\n})\r\n\r\nfunction setFeedBack(error?: Error) {\r\n const message = props.errorAdaptor(error)\r\n fieldRef.value?.setFeedback({\r\n type: 'error',\r\n code: 'UploadError',\r\n messages: message ? [message] : [],\r\n })\r\n}\r\n\r\nfunction handleChange(file: UploadFile, fileList: UploadFile[]) {\r\n fieldRef.value?.setDataSource([...fileList])\r\n setFeedBack()\r\n}\r\n\r\nfunction handleRemove(file: UploadFile, fileList: UploadFile[]) {\r\n if (isFn(attrs.onRemove)) {\r\n attrs.onRemove(file, fileList)\r\n }\r\n fieldRef.value.setDataSource([...fileList])\r\n setFeedBack()\r\n}\r\n\r\nfunction handleExceed(files: File[], uploadFIles) {\r\n if (isFn(attrs.onExceed)) {\r\n attrs.onExceed(files, uploadFIles)\r\n }\r\n if (attrs.limit !== 1)\r\n return\r\n uploadRef.value!.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value!.handleStart(file)\r\n if (attrs.autoUpload ?? true) {\r\n uploadRef.value!.submit()\r\n }\r\n}\r\n\r\nfunction handleError(error: Error, file: UploadFile, fileList: UploadFile[]) {\r\n if (isFn(attrs.onError)) {\r\n (attrs.onError)(error, file, fileList)\r\n }\r\n}\r\n\r\nfunction onPreviewClick(uploadFile: UploadFile) {\r\n if (isFn(attrs.onPreview)) {\r\n (attrs.onPreview)(uploadFile)\r\n return\r\n }\r\n if (!uploadFile.url && !attrs.accept?.includes('image'))\r\n return\r\n const clickIndex = props.fileList.findIndex((element: UploadFile) => element.uid === uploadFile.uid)\r\n activeImageIndex.value = clickIndex\r\n isShowImgViewer.value = true\r\n}\r\n\r\nconst dispose = reaction(() => {\r\n return fieldRef.value?.dataSource ?? []\r\n}, () => {\r\n const emitValue = props.formatValue(fieldRef.value.dataSource as UploadFile[])\r\n emit('update:modelValue', emitValue)\r\n})\r\nonBeforeUnmount(() => {\r\n dispose()\r\n})\r\n</script>\r\n\r\n<template>\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n v-bind=\"innerAttrs\"\r\n :file-list=\"$props.fileList\"\r\n @change=\"handleChange\"\r\n @remove=\"handleRemove\"\r\n @exceed=\"handleExceed\"\r\n @error=\"handleError\"\r\n @preview=\"onPreviewClick\"\r\n >\r\n <slot v-if=\"hasSlotContent($slots?.default)\" />\r\n <template v-else>\r\n <template v-if=\"attrs.drag\">\r\n <ElIcon style=\"font-size: 60px; margin: 40px 0 16px;\">\r\n <UploadFilledIcon color=\"gray\" />\r\n </ElIcon>\r\n <div class=\"el-upload__text\">\r\n {{ props.textContent }}\r\n </div>\r\n </template>\r\n <template v-else-if=\"attrs.listType === 'picture-card'\">\r\n <PlusIcon style=\"width: 28px; height: 28px; color: gray\" />\r\n </template>\r\n <template v-else>\r\n <ElButton>\r\n <UploadIcon width=\"16px\" height=\"16px\" />\r\n <span style=\"margin-left: 6px\">\r\n {{ props.textContent }}\r\n </span>\r\n </ElButton>\r\n </template>\r\n </template>\r\n <template v-if=\"$slots.file\" #file=\"{ file, index }\">\r\n <slot name=\"file\" :file=\"file\" :index=\"index\" />\r\n </template>\r\n <template v-if=\"$slots.tip\" #tip>\r\n <slot name=\"tip\" />\r\n </template>\r\n <template v-if=\"$slots.trigger\" #trigger>\r\n <slot name=\"trigger\" />\r\n </template>\r\n </ElUpload>\r\n <ElImageViewer\r\n v-if=\"isShowImgViewer\"\r\n ref=\"imgPreviewRef\"\r\n :url-list=\"imgPreviewList\"\r\n :initial-index=\"activeImageIndex\"\r\n v-bind=\"props.imageViewerProps\"\r\n @close=\"isShowImgViewer = false\"\r\n />\r\n</template>\r\n","import { connect, mapProps } from '@silver-formily/vue'\r\nimport FUpload from './upload.vue'\r\n\r\nexport const Upload = connect(\r\n FUpload,\r\n mapProps({ readOnly: 'readonly', dataSource: 'fileList' }),\r\n)\r\n\r\nexport default Upload\r\n"],"names":["props","__props","emit","__emit","uploadRef","ref","attrs","useAttrs","innerAttrs","computed","omit","fieldRef","useField","imgPreviewRef","activeImageIndex","isShowImgViewer","imgPreviewList","item","setFeedBack","error","message","handleChange","file","fileList","handleRemove","isFn","handleExceed","files","uploadFIles","genFileId","handleError","onPreviewClick","uploadFile","clickIndex","element","dispose","reaction","emitValue","onBeforeUnmount","_createVNode","_unref","_mergeProps","$props","hasSlotContent","$slots","_renderSlot","_ctx","_createElementBlock","_Fragment","ElIcon","UploadFilledIcon","_createElementVNode","_hoisted_1","_toDisplayString","_createBlock","PlusIcon","ElButton","UploadIcon","_hoisted_2","index","_openBlock","Upload","connect","FUpload","mapProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/upload/upload.vue","../../src/upload/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport type { Field } from '@formily/core'\r\nimport type { ImageViewerInstance, ImageViewerProps, UploadFile, UploadInstance, UploadProps, UploadRawFile } from 'element-plus'\r\nimport type { PropType } from 'vue'\r\nimport {\r\n Plus as PlusIcon,\r\n UploadFilled as UploadFilledIcon,\r\n Upload as UploadIcon,\r\n} from '@element-plus/icons-vue'\r\nimport { reaction } from '@formily/reactive'\r\nimport { isFn } from '@formily/shared'\r\nimport { useField } from '@silver-formily/vue'\r\nimport { ElButton, ElIcon, ElImageViewer, ElUpload, genFileId } from 'element-plus'\r\nimport { omit } from 'lodash-es'\r\nimport { computed, onBeforeUnmount, ref, useAttrs } from 'vue'\r\nimport { hasSlotContent } from '../__builtins__'\r\n\r\ndefineOptions({\r\n name: 'FUpload',\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = defineProps({\r\n textContent: {\r\n type: String,\r\n default: '',\r\n },\r\n errorAdaptor: {\r\n type: Function as PropType<(error?: Error) => string>,\r\n default: (error?: Error) => error?.message,\r\n },\r\n formatValue: {\r\n type: Function as PropType<(fileList?: UploadFile[]) => any>,\r\n default: item => item,\r\n },\r\n fileList: {\r\n type: Array as PropType<UploadFile[]>,\r\n default: () => [],\r\n },\r\n imageViewerProps: {\r\n type: Object as PropType<ImageViewerProps>,\r\n default: () => ({ teleported: true, showProgress: true }),\r\n },\r\n})\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst uploadRef = ref<UploadInstance>()\r\nconst attrs = useAttrs() as UploadProps\r\nconst innerAttrs = computed(() => {\r\n return omit(attrs, [\r\n 'onChange',\r\n 'onRemove',\r\n 'onExceed',\r\n 'onError',\r\n 'onPreview',\r\n 'fileList',\r\n 'onUpdate:fileList',\r\n ])\r\n})\r\nconst fieldRef = useField<Field>()\r\nfieldRef.value?.inject({\r\n getElUploadRef: () => {\r\n return uploadRef\r\n },\r\n})\r\n\r\nconst imgPreviewRef = ref<ImageViewerInstance>()\r\nconst activeImageIndex = ref(0)\r\nconst isShowImgViewer = ref(false)\r\nconst imgPreviewList = computed(() => {\r\n return props.fileList.map(item => item.url)\r\n})\r\n\r\nfunction setFeedBack(error?: Error) {\r\n const message = props.errorAdaptor(error)\r\n fieldRef.value?.setFeedback({\r\n type: 'error',\r\n code: 'UploadError',\r\n messages: message ? [message] : [],\r\n })\r\n}\r\n\r\nfunction handleChange(file: UploadFile, fileList: UploadFile[]) {\r\n fieldRef.value?.setDataSource([...fileList])\r\n setFeedBack()\r\n}\r\n\r\nfunction handleRemove(file: UploadFile, fileList: UploadFile[]) {\r\n if (isFn(attrs.onRemove)) {\r\n attrs.onRemove(file, fileList)\r\n }\r\n fieldRef.value.setDataSource([...fileList])\r\n setFeedBack()\r\n}\r\n\r\nfunction handleExceed(files: File[], uploadFIles) {\r\n if (isFn(attrs.onExceed)) {\r\n attrs.onExceed(files, uploadFIles)\r\n }\r\n if (attrs.limit !== 1)\r\n return\r\n uploadRef.value!.clearFiles()\r\n const file = files[0] as UploadRawFile\r\n file.uid = genFileId()\r\n uploadRef.value!.handleStart(file)\r\n if (attrs.autoUpload ?? true) {\r\n uploadRef.value!.submit()\r\n }\r\n}\r\n\r\nfunction handleError(error: Error, file: UploadFile, fileList: UploadFile[]) {\r\n if (isFn(attrs.onError)) {\r\n (attrs.onError)(error, file, fileList)\r\n }\r\n}\r\n\r\nfunction onPreviewClick(uploadFile: UploadFile) {\r\n if (isFn(attrs.onPreview)) {\r\n (attrs.onPreview)(uploadFile)\r\n return\r\n }\r\n if (!uploadFile.url && !attrs.accept?.includes('image'))\r\n return\r\n const clickIndex = props.fileList.findIndex((element: UploadFile) => element.uid === uploadFile.uid)\r\n activeImageIndex.value = clickIndex\r\n isShowImgViewer.value = true\r\n}\r\n\r\nconst dispose = reaction(() => {\r\n return fieldRef.value?.dataSource ?? []\r\n}, () => {\r\n const emitValue = props.formatValue(fieldRef.value.dataSource as UploadFile[])\r\n emit('update:modelValue', emitValue)\r\n})\r\nonBeforeUnmount(() => {\r\n dispose()\r\n})\r\n</script>\r\n\r\n<template>\r\n <ElUpload\r\n ref=\"uploadRef\"\r\n v-bind=\"innerAttrs\"\r\n :file-list=\"$props.fileList\"\r\n @change=\"handleChange\"\r\n @remove=\"handleRemove\"\r\n @exceed=\"handleExceed\"\r\n @error=\"handleError\"\r\n @preview=\"onPreviewClick\"\r\n >\r\n <slot v-if=\"hasSlotContent($slots?.default)\" />\r\n <template v-else>\r\n <template v-if=\"attrs.drag\">\r\n <ElIcon style=\"font-size: 60px; margin: 40px 0 16px;\">\r\n <UploadFilledIcon color=\"gray\" />\r\n </ElIcon>\r\n <div class=\"el-upload__text\">\r\n {{ props.textContent }}\r\n </div>\r\n </template>\r\n <template v-else-if=\"attrs.listType === 'picture-card'\">\r\n <PlusIcon style=\"width: 28px; height: 28px; color: gray\" />\r\n </template>\r\n <template v-else>\r\n <ElButton>\r\n <UploadIcon width=\"16px\" height=\"16px\" />\r\n <span style=\"margin-left: 6px\">\r\n {{ props.textContent }}\r\n </span>\r\n </ElButton>\r\n </template>\r\n </template>\r\n <template v-if=\"$slots.file\" #file=\"{ file, index }\">\r\n <slot name=\"file\" :file=\"file\" :index=\"index\" />\r\n </template>\r\n <template v-if=\"$slots.tip\" #tip>\r\n <slot name=\"tip\" />\r\n </template>\r\n <template v-if=\"$slots.trigger\" #trigger>\r\n <slot name=\"trigger\" />\r\n </template>\r\n </ElUpload>\r\n <ElImageViewer\r\n v-if=\"isShowImgViewer\"\r\n ref=\"imgPreviewRef\"\r\n :url-list=\"imgPreviewList\"\r\n :initial-index=\"activeImageIndex\"\r\n v-bind=\"props.imageViewerProps\"\r\n @close=\"isShowImgViewer = false\"\r\n />\r\n</template>\r\n","import { connect, mapProps } from '@silver-formily/vue'\r\nimport FUpload from './upload.vue'\r\n\r\nexport const Upload = connect<typeof FUpload>(\n FUpload,\n mapProps({ readOnly: 'readonly', dataSource: 'fileList' }),\r\n)\r\n\r\nexport default Upload\r\n"],"names":["props","__props","emit","__emit","uploadRef","ref","attrs","useAttrs","innerAttrs","computed","omit","fieldRef","useField","imgPreviewRef","activeImageIndex","isShowImgViewer","imgPreviewList","item","setFeedBack","error","message","handleChange","file","fileList","handleRemove","isFn","handleExceed","files","uploadFIles","genFileId","handleError","onPreviewClick","uploadFile","clickIndex","element","dispose","reaction","emitValue","onBeforeUnmount","_createVNode","_unref","_mergeProps","$props","hasSlotContent","$slots","_renderSlot","_ctx","_createElementBlock","_Fragment","ElIcon","UploadFilledIcon","_createElementVNode","_hoisted_1","_toDisplayString","_createBlock","PlusIcon","ElButton","UploadIcon","_hoisted_2","index","_openBlock","Upload","connect","FUpload","mapProps"],"mappings":"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"}