@silver-formily/element-plus 3.0.0 → 3.0.2

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 (140) hide show
  1. package/README.en-US.md +32 -32
  2. package/README.md +32 -32
  3. package/esm/__builtins__/configs/index.mjs.map +1 -1
  4. package/esm/__builtins__/index.mjs +18 -18
  5. package/esm/__builtins__/shared/loading.mjs +1 -1
  6. package/esm/__builtins__/shared/loading.mjs.map +1 -1
  7. package/esm/__builtins__/shared/simple-version-compare.mjs.map +1 -1
  8. package/esm/__builtins__/shared/transform-component.mjs.map +1 -1
  9. package/esm/__builtins__/shared/use-enter-submit.mjs +57 -16
  10. package/esm/__builtins__/shared/use-enter-submit.mjs.map +1 -1
  11. package/esm/__builtins__/shared/utils.mjs.map +1 -1
  12. package/esm/array-base/index.mjs +45 -42
  13. package/esm/array-base/index.mjs.map +1 -1
  14. package/esm/array-base/symbols.mjs.map +1 -1
  15. package/esm/array-base/utils.mjs +36 -31
  16. package/esm/array-base/utils.mjs.map +1 -1
  17. package/esm/array-cards/index.mjs +34 -32
  18. package/esm/array-cards/index.mjs.map +1 -1
  19. package/esm/array-collapse/index.mjs +29 -28
  20. package/esm/array-collapse/index.mjs.map +1 -1
  21. package/esm/array-collapse/utils.mjs +8 -2
  22. package/esm/array-collapse/utils.mjs.map +1 -1
  23. package/esm/array-items/index.mjs +34 -31
  24. package/esm/array-items/index.mjs.map +1 -1
  25. package/esm/array-list-tabs/index.mjs +51 -50
  26. package/esm/array-list-tabs/index.mjs.map +1 -1
  27. package/esm/array-list-tabs/utils.mjs +11 -5
  28. package/esm/array-list-tabs/utils.mjs.map +1 -1
  29. package/esm/array-table/index.mjs +47 -46
  30. package/esm/array-table/index.mjs.map +1 -1
  31. package/esm/array-table/utils.mjs +18 -12
  32. package/esm/array-table/utils.mjs.map +1 -1
  33. package/esm/array-tabs/index.mjs +27 -27
  34. package/esm/array-tabs/index.mjs.map +1 -1
  35. package/esm/autocomplete/index.mjs +21 -18
  36. package/esm/autocomplete/index.mjs.map +1 -1
  37. package/esm/cascader/index.mjs +18 -15
  38. package/esm/cascader/index.mjs.map +1 -1
  39. package/esm/checkbox/index.mjs +19 -16
  40. package/esm/checkbox/index.mjs.map +1 -1
  41. package/esm/color-picker/index.mjs +9 -6
  42. package/esm/color-picker/index.mjs.map +1 -1
  43. package/esm/color-picker-panel/index.mjs +9 -6
  44. package/esm/color-picker-panel/index.mjs.map +1 -1
  45. package/esm/date-picker/index.mjs +14 -11
  46. package/esm/date-picker/index.mjs.map +1 -1
  47. package/esm/date-picker/utils.mjs.map +1 -1
  48. package/esm/date-picker-panel/index.mjs +14 -11
  49. package/esm/date-picker-panel/index.mjs.map +1 -1
  50. package/esm/editable/index.mjs +34 -32
  51. package/esm/editable/index.mjs.map +1 -1
  52. package/esm/form/form.mjs +6 -6
  53. package/esm/form/form.mjs.map +1 -1
  54. package/esm/form-button-group/index.mjs +17 -14
  55. package/esm/form-button-group/index.mjs.map +1 -1
  56. package/esm/form-button-group/utils.mjs +8 -2
  57. package/esm/form-button-group/utils.mjs.map +1 -1
  58. package/esm/form-collapse/index.mjs +20 -18
  59. package/esm/form-collapse/index.mjs.map +1 -1
  60. package/esm/form-collapse/utils.mjs.map +1 -1
  61. package/esm/form-dialog/index.d.ts +1 -1
  62. package/esm/form-dialog/index.mjs +22 -22
  63. package/esm/form-dialog/index.mjs.map +1 -1
  64. package/esm/form-dialog/types.d.ts +13 -5
  65. package/esm/form-drawer/index.d.ts +1 -1
  66. package/esm/form-drawer/index.mjs +21 -21
  67. package/esm/form-drawer/index.mjs.map +1 -1
  68. package/esm/form-drawer/types.d.ts +13 -5
  69. package/esm/form-grid/hooks.mjs.map +1 -1
  70. package/esm/form-grid/index.mjs +20 -18
  71. package/esm/form-grid/index.mjs.map +1 -1
  72. package/esm/form-item/index.mjs +54 -53
  73. package/esm/form-item/index.mjs.map +1 -1
  74. package/esm/form-item/utils.mjs.map +1 -1
  75. package/esm/form-layout/form-layout.mjs +13 -10
  76. package/esm/form-layout/form-layout.mjs.map +1 -1
  77. package/esm/form-layout/utils.mjs.map +1 -1
  78. package/esm/form-step/index.mjs +29 -27
  79. package/esm/form-step/index.mjs.map +1 -1
  80. package/esm/form-step/utils.mjs.map +1 -1
  81. package/esm/form-tab/hooks.mjs.map +1 -1
  82. package/esm/form-tab/index.mjs +22 -21
  83. package/esm/form-tab/index.mjs.map +1 -1
  84. package/esm/form-tab/utils.mjs.map +1 -1
  85. package/esm/index.mjs +72 -72
  86. package/esm/input/index.mjs +25 -22
  87. package/esm/input/index.mjs.map +1 -1
  88. package/esm/input-number/index.mjs +11 -8
  89. package/esm/input-number/index.mjs.map +1 -1
  90. package/esm/input-tag/index.mjs +16 -13
  91. package/esm/input-tag/index.mjs.map +1 -1
  92. package/esm/mention/index.mjs +20 -17
  93. package/esm/mention/index.mjs.map +1 -1
  94. package/esm/pagination/components/jumper.mjs.map +1 -1
  95. package/esm/pagination/components/next.mjs.map +1 -1
  96. package/esm/pagination/components/pager.mjs.map +1 -1
  97. package/esm/pagination/components/prev.mjs.map +1 -1
  98. package/esm/pagination/components/total.mjs.map +1 -1
  99. package/esm/pagination/pagination.mjs.map +1 -1
  100. package/esm/password/index.mjs.map +1 -1
  101. package/esm/preview-text/index.mjs +30 -27
  102. package/esm/preview-text/index.mjs.map +1 -1
  103. package/esm/preview-text/utils.mjs.map +1 -1
  104. package/esm/query-form/default-components.mjs.map +1 -1
  105. package/esm/query-form/hooks.mjs.map +1 -1
  106. package/esm/query-form/index.mjs +142 -140
  107. package/esm/query-form/index.mjs.map +1 -1
  108. package/esm/query-form-item/index.mjs +17 -15
  109. package/esm/query-form-item/index.mjs.map +1 -1
  110. package/esm/radio/index.mjs +28 -25
  111. package/esm/radio/index.mjs.map +1 -1
  112. package/esm/rate/index.mjs +13 -10
  113. package/esm/rate/index.mjs.map +1 -1
  114. package/esm/reset/index.mjs.map +1 -1
  115. package/esm/segmented/index.mjs +15 -12
  116. package/esm/segmented/index.mjs.map +1 -1
  117. package/esm/select/index.mjs +22 -19
  118. package/esm/select/index.mjs.map +1 -1
  119. package/esm/select-table/index.mjs +15 -12
  120. package/esm/select-table/index.mjs.map +1 -1
  121. package/esm/shared/overlay-elements.mjs.map +1 -1
  122. package/esm/slider/index.mjs +13 -10
  123. package/esm/slider/index.mjs.map +1 -1
  124. package/esm/submit/index.mjs.map +1 -1
  125. package/esm/switch/index.mjs.map +1 -1
  126. package/esm/time-picker/index.mjs +9 -6
  127. package/esm/time-picker/index.mjs.map +1 -1
  128. package/esm/time-select/index.d.ts +8 -8
  129. package/esm/time-select/index.mjs +9 -6
  130. package/esm/time-select/index.mjs.map +1 -1
  131. package/esm/transfer/index.mjs.map +1 -1
  132. package/esm/tree/index.mjs +31 -28
  133. package/esm/tree/index.mjs.map +1 -1
  134. package/esm/tree/utils.mjs.map +1 -1
  135. package/esm/tree-select/index.mjs +17 -14
  136. package/esm/tree-select/index.mjs.map +1 -1
  137. package/esm/upload/index.mjs +36 -37
  138. package/esm/upload/index.mjs.map +1 -1
  139. package/esm/vendor/sizes.mjs.map +1 -1
  140. package/package.json +12 -11
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/editable/editable-popover.vue","../../src/editable/editable.vue","../../src/editable/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport type { Field } from '@formily/core'\r\nimport type { IFormItemProps } from '../form-item/types'\r\nimport { Edit } from '@element-plus/icons-vue'\r\nimport { reaction } from '@formily/reactive'\r\nimport { isValid } from '@formily/shared'\r\nimport { useField } from '@silver-formily/vue'\r\nimport { ElPopover, ElText, ClickOutside as vClickOutside } from 'element-plus'\r\nimport { ref } from 'vue'\r\nimport { stylePrefix } from '../__builtins__/configs'\r\nimport { FormBaseItem } from '../form-item'\r\n\r\ndefineOptions({\r\n name: 'FEditablePopover',\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = withDefaults(defineProps<IFormItemProps>(), {\r\n feedbackLayout: 'popover',\r\n size: 'default',\r\n})\r\n\r\nconst fieldRef = useField<Field>()\r\nconst prefixCls = `${stylePrefix}-editable`\r\nconst contentRef = ref<HTMLElement>()\r\nconst visible = ref(false)\r\n\r\nif (isValid(fieldRef.value.data)) {\r\n /* istanbul ignore else -- @preserve */\r\n if (!isValid(fieldRef.value.data.readPretty)) {\r\n fieldRef.value.data.readPretty = true\r\n }\r\n}\r\nelse {\r\n fieldRef.value.data = {}\r\n fieldRef.value.data.readPretty = true\r\n}\r\n\r\nfunction onClickOutside(e) {\r\n const popoverDOM = contentRef.value.parentElement\r\n /* istanbul ignore else -- @preserve */\r\n if (!popoverDOM.contains(e.target)) {\r\n visible.value = false\r\n }\r\n}\r\nfunction onClick() {\r\n visible.value = true\r\n}\r\n\r\nreaction(\r\n () => fieldRef.value.form.queryFeedbacks({\r\n type: 'error',\r\n address: `${fieldRef.value.address.entire}.*`,\r\n }),\r\n (errorList) => {\r\n if (errorList.length > 0) {\r\n visible.value = true\r\n }\r\n },\r\n)\r\n</script>\r\n\r\n<template>\r\n <div :class=\"prefixCls\">\r\n <ElPopover\r\n v-bind=\"$attrs\"\r\n :visible=\"visible\"\r\n :title=\"$attrs.title || fieldRef.title\" trigger=\"click\" width=\"auto\"\r\n >\r\n <template #default>\r\n <div ref=\"contentRef\" :class=\"`${prefixCls}-popover-wrapper`\">\r\n <slot />\r\n </div>\r\n </template>\r\n <template #reference>\r\n <FormBaseItem v-click-outside=\"onClickOutside\" v-bind=\"props\" :class=\"`${prefixCls}-trigger`\">\r\n <div :class=\"`${prefixCls}-content`\" @click=\"onClick\">\r\n <ElText>\r\n {{ fieldRef.title }}\r\n </ElText>\r\n <Edit :class=\"`${prefixCls}-edit-btn`\" />\r\n </div>\r\n </FormBaseItem>\r\n </template>\r\n </ElPopover>\r\n </div>\r\n</template>\r\n","<script lang=\"ts\" setup>\r\nimport type { Field } from '@formily/core'\r\nimport type { IFormItemProps } from '../form-item/types'\r\nimport { Close, Edit } from '@element-plus/icons-vue'\r\nimport { isPlainObj, isValid } from '@formily/shared'\r\nimport { useField } from '@silver-formily/vue'\r\nimport { ClickOutside as vClickOutside } from 'element-plus'\r\nimport { omit } from 'lodash-es'\r\nimport { computed, nextTick, ref } from 'vue'\r\nimport { stylePrefix } from '../__builtins__/configs'\r\nimport { FormBaseItem } from '../form-item'\r\n\r\ndefineOptions({\r\n name: 'FEditable',\r\n})\r\n\r\nconst props = withDefaults(defineProps<IFormItemProps & { editProps?: IFormItemProps }>(), {\r\n feedbackLayout: 'popover',\r\n size: 'default',\r\n})\r\n\r\nconst fieldRef = useField<Field>()\r\nconst innerRef = ref<HTMLElement>(null)\r\nconst prefixCls = `${stylePrefix}-editable`\r\nconst formItemRef = ref<InstanceType<typeof FormBaseItem>>(null)\r\n\r\nconst commonProps = computed(() => omit(props, 'editProps'))\r\nconst editProps = computed(() => {\r\n if (isPlainObj(props.editProps)) {\r\n return { ...omit(props, 'editProps'), ...props.editProps }\r\n }\r\n return omit(props, 'editProps')\r\n})\r\n\r\nfunction handleEnsureReadPretty() {\r\n if (!isValid(fieldRef.value.data)) {\r\n fieldRef.value.data = {}\r\n }\r\n}\r\n\r\nhandleEnsureReadPretty()\r\nfieldRef.value.data.readPretty = true\r\n\r\nasync function onClick() {\r\n if (fieldRef.value.disabled)\r\n return\r\n handleEnsureReadPretty()\r\n fieldRef.value.data.readPretty = false\r\n await nextTick()\r\n formItemRef.value.feedbackTooltipRef.updatePopper()\r\n innerRef.value?.querySelector('input')?.focus()\r\n}\r\n\r\nfunction onClickOutside() {\r\n if (fieldRef.value.data?.readPretty === true)\r\n return\r\n handleEnsureReadPretty()\r\n // 使用下拉菜单等触发的事件完成应有的操作\r\n setTimeout(async () => {\r\n fieldRef.value.data.readPretty = true\r\n await nextTick()\r\n formItemRef.value?.feedbackTooltipRef.updatePopper()\r\n }, 0)\r\n}\r\n</script>\r\n\r\n<template>\r\n <div ref=\"innerRef\" :class=\"[prefixCls, fieldRef.disabled && 'is-disabled']\">\r\n <div v-click-outside=\"onClickOutside\" :class=\"`${prefixCls}-content`\">\r\n <FormBaseItem ref=\"formItemRef\" v-bind=\"fieldRef.data?.readPretty === false ? editProps : commonProps\" @click=\"onClick\">\r\n <div>\r\n <slot />\r\n </div>\r\n </FormBaseItem>\r\n <template v-if=\"!fieldRef.disabled\">\r\n <template v-if=\"fieldRef.data?.readPretty === true\">\r\n <FormBaseItem :size=\"props.size\" :feedback-layout=\"props.feedbackLayout\">\r\n <Edit :class=\"`${prefixCls}-edit-btn`\" @click=\"onClick\" />\r\n </FormBaseItem>\r\n </template>\r\n <template v-else>\r\n <FormBaseItem :size=\"props.size\" :feedback-layout=\"props.feedbackLayout\">\r\n <Close :class=\"`${prefixCls}-close-btn`\" @click=\"onClickOutside\" />\r\n </FormBaseItem>\r\n </template>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n","import type { ElPopover } from 'element-plus'\r\nimport type { IFormItemProps } from '../form-item/types'\r\nimport { connect, mapProps } from '@silver-formily/vue'\r\nimport { composeExport } from '../__builtins__/shared'\r\nimport { fieldFeedbackMapper } from '../form-item'\r\nimport FEditablePopover from './editable-popover.vue'\r\nimport FEditable from './editable.vue'\r\nimport './style.scss'\r\n\r\nexport type EditableProps = IFormItemProps\r\nexport type EditablePopoverProps = typeof ElPopover\r\n\r\nconst EditableInner = connect<typeof FEditable>(FEditable, mapProps(\r\n {\r\n required: true,\r\n description: 'extra',\r\n },\r\n fieldFeedbackMapper,\r\n))\r\n\r\nconst EditablePopover = connect<typeof FEditablePopover>(FEditablePopover, mapProps(\r\n {\r\n required: true,\r\n description: 'extra',\r\n },\r\n fieldFeedbackMapper,\r\n))\r\n\r\nexport const Editable = composeExport(EditableInner, {\r\n Popover: EditablePopover,\r\n})\r\n\r\nexport default Editable\r\n"],"names":["props","__props","fieldRef","useField","prefixCls","stylePrefix","contentRef","ref","visible","isValid","onClickOutside","e","onClick","reaction","errorList","_createElementBlock","_createVNode","_unref","ElPopover","_mergeProps","_ctx","$attrs","_createElementVNode","_renderSlot","_createBlock","FormBaseItem","ElText","_createTextVNode","_toDisplayString","Edit","innerRef","formItemRef","commonProps","computed","omit","editProps","isPlainObj","handleEnsureReadPretty","nextTick","_normalizeClass","_Fragment","Close","EditableInner","connect","FEditable","mapProps","fieldFeedbackMapper","EditablePopover","FEditablePopover","Editable","composeExport"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/editable/editable-popover.vue","../../src/editable/editable.vue","../../src/editable/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Field } from '@formily/core'\nimport type { IFormItemProps } from '../form-item/types'\nimport { Edit } from '@element-plus/icons-vue'\nimport { isValid } from '@formily/shared'\nimport { reactionWatch } from '@silver-formily/reactive-vue'\nimport { useField } from '@silver-formily/vue'\nimport { ElPopover, ElText, ClickOutside as vClickOutside } from 'element-plus'\nimport { ref } from 'vue'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { FormBaseItem } from '../form-item'\n\ndefineOptions({\n name: 'FEditablePopover',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<IFormItemProps>(), {\n feedbackLayout: 'popover',\n size: 'default',\n})\n\nconst fieldRef = useField<Field>()\nconst prefixCls = `${stylePrefix}-editable`\nconst contentRef = ref<HTMLElement>()\nconst visible = ref(false)\n\nif (isValid(fieldRef.value.data)) {\n /* istanbul ignore else -- @preserve */\n if (!isValid(fieldRef.value.data.readPretty)) {\n fieldRef.value.data.readPretty = true\n }\n}\nelse {\n fieldRef.value.data = {}\n fieldRef.value.data.readPretty = true\n}\n\nfunction onClickOutside(e) {\n const popoverDOM = contentRef.value.parentElement\n /* istanbul ignore else -- @preserve */\n if (!popoverDOM.contains(e.target)) {\n visible.value = false\n }\n}\nfunction onClick() {\n visible.value = true\n}\n\nreactionWatch(\n () => fieldRef.value.form.queryFeedbacks({\n type: 'error',\n address: `${fieldRef.value.address.entire}.*`,\n }),\n (errorList) => {\n if (errorList.length > 0) {\n visible.value = true\n }\n },\n)\n</script>\n\n<template>\n <div :class=\"prefixCls\">\n <ElPopover\n v-bind=\"$attrs\"\n :visible=\"visible\"\n :title=\"$attrs.title || fieldRef.title\" trigger=\"click\" width=\"auto\"\n >\n <template #default>\n <div ref=\"contentRef\" :class=\"`${prefixCls}-popover-wrapper`\">\n <slot />\n </div>\n </template>\n <template #reference>\n <FormBaseItem v-click-outside=\"onClickOutside\" v-bind=\"props\" :class=\"`${prefixCls}-trigger`\">\n <div :class=\"`${prefixCls}-content`\" @click=\"onClick\">\n <ElText>\n {{ fieldRef.title }}\n </ElText>\n <Edit :class=\"`${prefixCls}-edit-btn`\" />\n </div>\n </FormBaseItem>\n </template>\n </ElPopover>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { Field } from '@formily/core'\nimport type { IFormItemProps } from '../form-item/types'\nimport { Close, Edit } from '@element-plus/icons-vue'\nimport { isPlainObj, isValid } from '@formily/shared'\nimport { useField } from '@silver-formily/vue'\nimport { ClickOutside as vClickOutside } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, nextTick, ref } from 'vue'\nimport { stylePrefix } from '../__builtins__/configs'\nimport { FormBaseItem } from '../form-item'\n\ndefineOptions({\n name: 'FEditable',\n})\n\nconst props = withDefaults(defineProps<IFormItemProps & { editProps?: IFormItemProps }>(), {\n feedbackLayout: 'popover',\n size: 'default',\n})\n\nconst fieldRef = useField<Field>()\nconst innerRef = ref<HTMLElement>(null)\nconst prefixCls = `${stylePrefix}-editable`\nconst formItemRef = ref<InstanceType<typeof FormBaseItem>>(null)\n\nconst commonProps = computed(() => omit(props, 'editProps'))\nconst editProps = computed(() => {\n if (isPlainObj(props.editProps)) {\n return { ...omit(props, 'editProps'), ...props.editProps }\n }\n return omit(props, 'editProps')\n})\n\nfunction handleEnsureReadPretty() {\n if (!isValid(fieldRef.value.data)) {\n fieldRef.value.data = {}\n }\n}\n\nhandleEnsureReadPretty()\nfieldRef.value.data.readPretty = true\n\nasync function onClick() {\n if (fieldRef.value.disabled)\n return\n handleEnsureReadPretty()\n fieldRef.value.data.readPretty = false\n await nextTick()\n formItemRef.value.feedbackTooltipRef.updatePopper()\n innerRef.value?.querySelector('input')?.focus()\n}\n\nfunction onClickOutside() {\n if (fieldRef.value.data?.readPretty === true)\n return\n handleEnsureReadPretty()\n // 使用下拉菜单等触发的事件完成应有的操作\n setTimeout(async () => {\n fieldRef.value.data.readPretty = true\n await nextTick()\n formItemRef.value?.feedbackTooltipRef.updatePopper()\n }, 0)\n}\n</script>\n\n<template>\n <div ref=\"innerRef\" :class=\"[prefixCls, fieldRef.disabled && 'is-disabled']\">\n <div v-click-outside=\"onClickOutside\" :class=\"`${prefixCls}-content`\">\n <FormBaseItem ref=\"formItemRef\" v-bind=\"fieldRef.data?.readPretty === false ? editProps : commonProps\" @click=\"onClick\">\n <div>\n <slot />\n </div>\n </FormBaseItem>\n <template v-if=\"!fieldRef.disabled\">\n <template v-if=\"fieldRef.data?.readPretty === true\">\n <FormBaseItem :size=\"props.size\" :feedback-layout=\"props.feedbackLayout\">\n <Edit :class=\"`${prefixCls}-edit-btn`\" @click=\"onClick\" />\n </FormBaseItem>\n </template>\n <template v-else>\n <FormBaseItem :size=\"props.size\" :feedback-layout=\"props.feedbackLayout\">\n <Close :class=\"`${prefixCls}-close-btn`\" @click=\"onClickOutside\" />\n </FormBaseItem>\n </template>\n </template>\n </div>\n </div>\n</template>\n","import type { ElPopover } from 'element-plus'\nimport type { IFormItemProps } from '../form-item/types'\nimport { connect, mapProps } from '@silver-formily/vue'\nimport { composeExport } from '../__builtins__/shared'\nimport { fieldFeedbackMapper } from '../form-item'\nimport FEditablePopover from './editable-popover.vue'\nimport FEditable from './editable.vue'\nimport './style.scss'\n\nexport type EditableProps = IFormItemProps\nexport type EditablePopoverProps = typeof ElPopover\n\nconst EditableInner = connect<typeof FEditable>(FEditable, mapProps(\n {\n required: true,\n description: 'extra',\n },\n fieldFeedbackMapper,\n))\n\nconst EditablePopover = connect<typeof FEditablePopover>(FEditablePopover, mapProps(\n {\n required: true,\n description: 'extra',\n },\n fieldFeedbackMapper,\n))\n\nexport const Editable = composeExport(EditableInner, {\n Popover: EditablePopover,\n})\n\nexport default Editable\n"],"names":["props","__props","fieldRef","useField","prefixCls","stylePrefix","contentRef","ref","visible","isValid","onClickOutside","e","onClick","reactionWatch","errorList","_createElementBlock","_createVNode","_unref","ElPopover","_mergeProps","_ctx","$attrs","_createElementVNode","_renderSlot","_createBlock","FormBaseItem","ElText","_createTextVNode","_toDisplayString","Edit","innerRef","formItemRef","commonProps","computed","omit","editProps","isPlainObj","handleEnsureReadPretty","nextTick","_normalizeClass","_Fragment","Close","EditableInner","connect","FEditable","mapProps","fieldFeedbackMapper","EditablePopover","FEditablePopover","Editable","composeExport"],"mappings":"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"}
package/esm/form/form.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as h, openBlock as f, createBlock as p, unref as t, withCtx as i, createVNode as n, mergeProps as d, renderSlot as s, withModifiers as S, createCommentVNode as F } from "vue";
2
2
  import { useForm as v, FormProvider as w } from "@silver-formily/vue";
3
- import { PreviewText as c } from "../preview-text/index.mjs";
4
- import { _ as b } from "../form-layout/form-layout.mjs";
3
+ import { _ as c } from "../form-layout/form-layout.mjs";
4
+ import { PreviewText as b } from "../preview-text/index.mjs";
5
5
  const $ = /* @__PURE__ */ h({
6
6
  name: "FForm",
7
7
  inheritAttrs: !1,
@@ -30,11 +30,11 @@ const $ = /* @__PURE__ */ h({
30
30
  form: o.form
31
31
  }, {
32
32
  default: i(() => [
33
- n(t(c), {
33
+ n(t(b), {
34
34
  placeholder: o.previewTextPlaceholder
35
35
  }, {
36
36
  default: i(() => [
37
- n(t(b), d(m.$attrs, {
37
+ n(t(c), d(m.$attrs, {
38
38
  onSubmit: r[0] || (r[0] = (e) => a(e, l.form))
39
39
  }), {
40
40
  default: i(() => [
@@ -47,12 +47,12 @@ const $ = /* @__PURE__ */ h({
47
47
  }, 8, ["placeholder"])
48
48
  ]),
49
49
  _: 3
50
- }, 8, ["form"])) : t(u) ? (f(), p(t(c), {
50
+ }, 8, ["form"])) : t(u) ? (f(), p(t(b), {
51
51
  key: 1,
52
52
  placeholder: o.previewTextPlaceholder
53
53
  }, {
54
54
  default: i(() => [
55
- n(t(b), d(m.$attrs, {
55
+ n(t(c), d(m.$attrs, {
56
56
  onSubmit: r[1] || (r[1] = S((e) => a(e, t(u)), ["prevent", "stop"]))
57
57
  }), {
58
58
  default: i(() => [
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","sources":["../../src/form/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport type { Form as FormType, IFormFeedback } from '@formily/core'\r\nimport type { PropType } from 'vue'\r\nimport { FormProvider, useForm } from '@silver-formily/vue'\r\nimport { FormLayout } from '../form-layout'\r\nimport { PreviewText } from '../preview-text'\r\n\r\ndefineOptions({\r\n name: 'FForm',\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = defineProps({\r\n form: {\r\n type: Object as PropType<FormType>,\r\n },\r\n previewTextPlaceholder: {\r\n type: String,\r\n },\r\n onAutoSubmit: {\r\n type: Function as PropType<(values: FormType['values']) => Promise<any>>,\r\n },\r\n onAutoSubmitFailed: {\r\n type: Function as PropType<(error: IFormFeedback[]) => void>,\r\n },\r\n})\r\n\r\nconst top = useForm()\r\n\r\nfunction handleSubmit(e: Event, form: FormType) {\r\n form\r\n .submit(values => props.onAutoSubmit?.(values))\r\n .catch(error => props.onAutoSubmitFailed?.(error))\r\n}\r\n</script>\r\n\r\n<template>\r\n <FormProvider v-if=\"props.form\" :form=\"props.form\">\r\n <PreviewText :placeholder=\"props.previewTextPlaceholder\">\r\n <FormLayout v-bind=\"$attrs\" @submit=\"(e) => handleSubmit(e, form)\">\r\n <slot />\r\n </FormLayout>\r\n </PreviewText>\r\n </FormProvider>\r\n <template v-else-if=\"top\">\r\n <PreviewText :placeholder=\"props.previewTextPlaceholder\">\r\n <FormLayout\r\n v-bind=\"$attrs\"\r\n @submit.prevent.stop=\"(e) => handleSubmit(e, top)\"\r\n >\r\n <slot />\r\n </FormLayout>\r\n </PreviewText>\r\n </template>\r\n</template>\r\n"],"names":["props","__props","top","useForm","handleSubmit","e","form","values","error","_createBlock","_unref","FormProvider","_createVNode","PreviewText","FormLayout","_mergeProps","_ctx","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAeRC,IAAMC,EAAA;AAEZ,aAASC,EAAaC,GAAUC,GAAgB;AAC9C,MAAAA,EACG,OAAO,CAAAC,MAAUP,EAAM,eAAeO,CAAM,CAAC,EAC7C,MAAM,CAAAC,MAASR,EAAM,qBAAqBQ,CAAK,CAAC;AAAA,IACrD;qBAIsBR,EAAM,aAA1BS,EAMeC,EAAAC,CAAA,GAAA;AAAA;MANkB,MAAMX,EAAM;AAAA,IAAA;iBAC3C,MAIc;AAAA,QAJdY,EAIcF,EAAAG,CAAA,GAAA;AAAA,UAJA,aAAab,EAAM;AAAA,QAAA;qBAC/B,MAEa;AAAA,YAFbY,EAEaF,EAAAI,CAAA,GAFbC,EAEaC,EAAA,QAFa;AAAA,cAAG,2BAAS,MAAMZ,EAAa,GAAGH,EAAA,IAAI;AAAA,YAAA;yBAC9D,MAAQ;AAAA,gBAARgB,EAAQD,EAAA,QAAA,SAAA;AAAA,cAAA;;;;;;;;uBAION,EAAAR,CAAA,UACnBO,EAOcC,EAAAG,CAAA,GAAA;AAAA;MAPA,aAAab,EAAM;AAAA,IAAA;iBAC/B,MAKa;AAAA,QALbY,EAKaF,EAAAI,CAAA,GALbC,EAKaC,EAAA,QAJG;AAAA,UACb,6BAAsB,MAAMZ,EAAa,GAAGM,EAAAR,CAAA,CAAG,GAAA,CAAA,WAAA,MAAA,CAAA;AAAA,QAAA;qBAEhD,MAAQ;AAAA,YAARe,EAAQD,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;;"}
1
+ {"version":3,"file":"form.mjs","sources":["../../src/form/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Form as FormType, IFormFeedback } from '@formily/core'\nimport type { PropType } from 'vue'\nimport { FormProvider, useForm } from '@silver-formily/vue'\nimport { FormLayout } from '../form-layout'\nimport { PreviewText } from '../preview-text'\n\ndefineOptions({\n name: 'FForm',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n form: {\n type: Object as PropType<FormType>,\n },\n previewTextPlaceholder: {\n type: String,\n },\n onAutoSubmit: {\n type: Function as PropType<(values: FormType['values']) => Promise<any>>,\n },\n onAutoSubmitFailed: {\n type: Function as PropType<(error: IFormFeedback[]) => void>,\n },\n})\n\nconst top = useForm()\n\nfunction handleSubmit(e: Event, form: FormType) {\n form\n .submit(values => props.onAutoSubmit?.(values))\n .catch(error => props.onAutoSubmitFailed?.(error))\n}\n</script>\n\n<template>\n <FormProvider v-if=\"props.form\" :form=\"props.form\">\n <PreviewText :placeholder=\"props.previewTextPlaceholder\">\n <FormLayout v-bind=\"$attrs\" @submit=\"(e) => handleSubmit(e, form)\">\n <slot />\n </FormLayout>\n </PreviewText>\n </FormProvider>\n <template v-else-if=\"top\">\n <PreviewText :placeholder=\"props.previewTextPlaceholder\">\n <FormLayout\n v-bind=\"$attrs\"\n @submit.prevent.stop=\"(e) => handleSubmit(e, top)\"\n >\n <slot />\n </FormLayout>\n </PreviewText>\n </template>\n</template>\n"],"names":["props","__props","top","useForm","handleSubmit","e","form","values","error","_createBlock","_unref","FormProvider","_createVNode","PreviewText","FormLayout","_mergeProps","_ctx","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYA,UAAMA,IAAQC,GAeRC,IAAMC,EAAA;AAEZ,aAASC,EAAaC,GAAUC,GAAgB;AAC9C,MAAAA,EACG,OAAO,CAAAC,MAAUP,EAAM,eAAeO,CAAM,CAAC,EAC7C,MAAM,CAAAC,MAASR,EAAM,qBAAqBQ,CAAK,CAAC;AAAA,IACrD;qBAIsBR,EAAM,aAA1BS,EAMeC,EAAAC,CAAA,GAAA;AAAA;MANkB,MAAMX,EAAM;AAAA,IAAA;iBAC3C,MAIc;AAAA,QAJdY,EAIcF,EAAAG,CAAA,GAAA;AAAA,UAJA,aAAab,EAAM;AAAA,QAAA;qBAC/B,MAEa;AAAA,YAFbY,EAEaF,EAAAI,CAAA,GAFbC,EAEaC,EAAA,QAFa;AAAA,cAAG,2BAAS,MAAMZ,EAAa,GAAGH,EAAA,IAAI;AAAA,YAAA;yBAC9D,MAAQ;AAAA,gBAARgB,EAAQD,EAAA,QAAA,SAAA;AAAA,cAAA;;;;;;;;uBAION,EAAAR,CAAA,UACnBO,EAOcC,EAAAG,CAAA,GAAA;AAAA;MAPA,aAAab,EAAM;AAAA,IAAA;iBAC/B,MAKa;AAAA,QALbY,EAKaF,EAAAI,CAAA,GALbC,EAKaC,EAAA,QAJG;AAAA,UACb,6BAAsB,MAAMZ,EAAa,GAAGM,EAAAR,CAAA,CAAG,GAAA,CAAA,WAAA,MAAA,CAAA;AAAA,QAAA;qBAEhD,MAAQ;AAAA,YAARe,EAAQD,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;;;;"}
@@ -1,15 +1,18 @@
1
- import { defineComponent as p, computed as y, openBlock as n, createBlock as i, unref as e, mergeProps as a, withCtx as l, renderSlot as u, createVNode as g, normalizeStyle as _ } from "vue";
2
- import { useForm as $ } from "@silver-formily/vue";
3
- import { useAttrs as v, ElAffix as h, ElSpace as m } from "element-plus";
4
- import { useFormLayoutId as F } from "../form-layout/utils.mjs";
1
+ import { useAttrs as y, ElAffix as g, ElSpace as m } from "element-plus";
2
+ import "@silver-formily/reactive-vue";
3
+ import "@vueuse/core";
4
+ import { defineComponent as p, computed as _, openBlock as i, createBlock as n, unref as e, mergeProps as a, withCtx as l, renderSlot as u, createVNode as $, normalizeStyle as v } from "vue";
5
+ import "@formily/core";
6
+ import { useForm as h } from "@silver-formily/vue";
7
+ import { composeExport as F } from "../__builtins__/shared/utils.mjs";
8
+ import { useFormLayoutId as k } from "../form-layout/utils.mjs";
5
9
  import { prefixCls as r } from "./utils.mjs";
6
- import { FormItem as k } from "../form-item/index.mjs";
7
- import { composeExport as x } from "../__builtins__/shared/utils.mjs";
10
+ import { FormItem as x } from "../form-item/index.mjs";
8
11
  import '../styles/form-button-group/index.css';const B = /* @__PURE__ */ p({
9
12
  __name: "form-button-group-sticky",
10
13
  setup(f) {
11
- const t = v(), o = $(), s = F(), c = y(() => t.value.target ? t.value.target : s.value ? `#${s.value}` : o.value?.id ? `#formily-${o.value.id}` : void 0);
12
- return (d, z) => (n(), i(e(h), a({
14
+ const t = y(), o = h(), s = k(), c = _(() => t.value.target ? t.value.target : s.value ? `#${s.value}` : o.value?.id ? `#formily-${o.value.id}` : void 0);
15
+ return (d, z) => (i(), n(e(g), a({
13
16
  class: `${e(r)}__sticky`
14
17
  }, e(t), {
15
18
  position: e(t).position ?? "bottom",
@@ -45,7 +48,7 @@ import '../styles/form-button-group/index.css';const B = /* @__PURE__ */ p({
45
48
  },
46
49
  setup(f) {
47
50
  const t = f;
48
- return (o, s) => t.alignFormItem ? (n(), i(e(k), a({
51
+ return (o, s) => t.alignFormItem ? (i(), n(e(x), a({
49
52
  key: 0,
50
53
  label: " "
51
54
  }, o.$attrs, {
@@ -55,9 +58,9 @@ import '../styles/form-button-group/index.css';const B = /* @__PURE__ */ p({
55
58
  }
56
59
  }), {
57
60
  default: l(() => [
58
- g(e(m), {
61
+ $(e(m), {
59
62
  size: t.gutter,
60
- style: _(t.align === "left" ? void 0 : {
63
+ style: v(t.align === "left" ? void 0 : {
61
64
  justifyContent: t.align === "right" ? "flex-end" : "center",
62
65
  display: "flex",
63
66
  width: "100%"
@@ -70,7 +73,7 @@ import '../styles/form-button-group/index.css';const B = /* @__PURE__ */ p({
70
73
  }, 8, ["size", "style"])
71
74
  ]),
72
75
  _: 3
73
- }, 16, ["class"])) : (n(), i(e(m), a({ key: 1 }, o.$attrs, {
76
+ }, 16, ["class"])) : (i(), n(e(m), a({ key: 1 }, o.$attrs, {
74
77
  class: [e(r), t.inline && `${e(r)}--inline`],
75
78
  style: {
76
79
  justifyContent: t.align === "left" ? "flex-start" : t.align === "right" ? "flex-end" : "center",
@@ -84,10 +87,10 @@ import '../styles/form-button-group/index.css';const B = /* @__PURE__ */ p({
84
87
  _: 3
85
88
  }, 16, ["class", "style", "size"]));
86
89
  }
87
- }), G = x(b, {
90
+ }), P = F(b, {
88
91
  Sticky: B
89
92
  });
90
93
  export {
91
- G as FormButtonGroup
94
+ P as FormButtonGroup
92
95
  };
93
96
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/form-button-group/form-button-group-sticky.vue","../../src/form-button-group/form-button-group.vue","../../src/form-button-group/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { AffixProps } from 'element-plus'\r\nimport type { ComputedRef } from 'vue'\r\nimport { useForm } from '@silver-formily/vue'\r\nimport { ElAffix, useAttrs } from 'element-plus'\r\nimport { computed } from 'vue'\r\nimport { useFormLayoutId } from '../form-layout/utils'\r\nimport { prefixCls } from './utils'\r\n\r\nconst attrs = useAttrs() as ComputedRef<Partial<AffixProps>>\r\nconst formRef = useForm()\r\nconst formLayoutId = useFormLayoutId()\r\n\r\nconst target = computed(() => {\r\n if (attrs.value.target) {\r\n return attrs.value.target\r\n }\r\n if (formLayoutId.value) {\r\n return `#${formLayoutId.value}`\r\n }\r\n /* istanbul ignore next -- @preserve */\r\n return formRef.value?.id ? `#formily-${formRef.value.id}` : undefined\r\n})\r\n</script>\r\n\r\n<template>\r\n <ElAffix\r\n :class=\"`${prefixCls}__sticky`\"\r\n v-bind=\"attrs\"\r\n :position=\"attrs.position ?? 'bottom'\"\r\n :target=\"target\"\r\n >\r\n <slot />\r\n </ElAffix>\r\n</template>\r\n","<script lang=\"ts\" setup>\r\nimport { ElSpace } from 'element-plus'\r\nimport FormItem from '../form-item/index'\r\nimport { prefixCls } from './utils'\r\n\r\ndefineOptions({\r\n name: 'FFormButtonGroup',\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = defineProps({\r\n align: {\r\n type: String,\r\n default: 'left',\r\n },\r\n inline: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n gutter: {\r\n type: Number,\r\n default: 8,\r\n },\r\n alignFormItem: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n})\r\n</script>\r\n\r\n<template>\r\n <FormItem\r\n v-if=\"props.alignFormItem\"\r\n label=\"&nbsp;\"\r\n v-bind=\"$attrs\"\r\n :class=\"[prefixCls, props.inline && `${prefixCls}--inline`]\"\r\n :style=\"{\r\n width: '100%',\r\n }\"\r\n >\r\n <ElSpace\r\n :size=\"props.gutter\"\r\n :style=\"props.align === 'left'\r\n ? undefined\r\n : {\r\n justifyContent: props.align === 'right' ? 'flex-end' : 'center',\r\n display: 'flex',\r\n width: '100%',\r\n }\"\r\n >\r\n <slot />\r\n </ElSpace>\r\n </FormItem>\r\n <ElSpace\r\n v-else\r\n v-bind=\"$attrs\"\r\n :class=\"[prefixCls, props.inline && `${prefixCls}--inline`]\"\r\n :style=\"{\r\n justifyContent: props.align === 'left'\r\n ? 'flex-start'\r\n : (props.align === 'right'\r\n ? 'flex-end'\r\n : 'center'),\r\n display: 'flex',\r\n }\"\r\n :size=\"props.gutter\"\r\n >\r\n <slot />\r\n </ElSpace>\r\n</template>\r\n","import { composeExport } from '../__builtins__/shared'\r\nimport FormButtonGroupSticky from './form-button-group-sticky.vue'\r\nimport FormButtonGroupInner from './form-button-group.vue'\r\nimport './style.scss'\r\n\r\nexport const FormButtonGroup = composeExport(FormButtonGroupInner, {\r\n Sticky: FormButtonGroupSticky,\r\n})\r\n"],"names":["attrs","useAttrs","formRef","useForm","formLayoutId","useFormLayoutId","target","computed","_openBlock","_createBlock","_unref","_mergeProps","prefixCls","_renderSlot","_ctx","props","__props","$attrs","_createVNode","ElSpace","_normalizeStyle","FormButtonGroup","composeExport","FormButtonGroupInner","FormButtonGroupSticky"],"mappings":";;;;;;;;;;AASA,UAAMA,IAAQC,EAAA,GACRC,IAAUC,EAAA,GACVC,IAAeC,EAAA,GAEfC,IAASC,EAAS,MAClBP,EAAM,MAAM,SACPA,EAAM,MAAM,SAEjBI,EAAa,QACR,IAAIA,EAAa,KAAK,KAGxBF,EAAQ,OAAO,KAAK,YAAYA,EAAQ,MAAM,EAAE,KAAK,MAC7D;sBAICM,KAAAC,EAOUC,MAPVC,EAOU;AAAA,MANP,UAAUD,EAAAE,CAAA,CAAS;AAAA,IAAA,GACZF,EAAAV,CAAA,GAAK;AAAA,MACZ,UAAUU,EAAAV,CAAA,EAAM,YAAQ;AAAA,MACxB,QAAQM,EAAA;AAAA,IAAA;iBAET,MAAQ;AAAA,QAARO,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBZ,UAAMC,IAAQC;qBAsBJD,EAAM,iBADdP,EAAA,GAAAC,EAqBWC,MArBXC,EAqBW;AAAA;MAnBT,OAAM;AAAA,IAAA,GACEM,EAAAA,QAAM;AAAA,MACb,QAAQP,EAAAE,CAAA,GAAWG,EAAM,aAAaL,EAAAE,CAAA,CAAS,UAAA;AAAA,MAC/C,OAAO;AAAA;;IAEP;iBAED,MAWU;AAAA,QAXVM,EAWUR,EAAAS,CAAA,GAAA;AAAA,UAVP,MAAMJ,EAAM;AAAA,UACZ,OAAKK,EAAEL,EAAM,UAAK,SAAuB;YAAkD,gBAAAA,EAAM,UAAK,UAAA,aAAA;AAAA;;;;qBAQvG,MAAQ;AAAA,YAARF,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;+BAGZL,EAeUC,EAAAS,CAAA,GAfVR,EAeU,EAAA,KAAA,EAAA,GAbAM,EAAAA,QAAM;AAAA,MACb,QAAQP,EAAAE,CAAA,GAAWG,EAAM,aAAaL,EAAAE,CAAA,CAAS,UAAA;AAAA,MAC/C,OAAK;AAAA,QAA2B,gBAAAG,EAAM,UAAK,wBAAgDA,EAAM,UAAK;;;MAQtG,MAAMA,EAAM;AAAA,IAAA;iBAEb,MAAQ;AAAA,QAARF,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;IC9DCO,IAAkBC,EAAcC,GAAsB;AAAA,EACjE,QAAQC;AACV,CAAC;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/form-button-group/form-button-group-sticky.vue","../../src/form-button-group/form-button-group.vue","../../src/form-button-group/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { AffixProps } from 'element-plus'\nimport type { ComputedRef } from 'vue'\nimport { useForm } from '@silver-formily/vue'\nimport { ElAffix, useAttrs } from 'element-plus'\nimport { computed } from 'vue'\nimport { useFormLayoutId } from '../form-layout/utils'\nimport { prefixCls } from './utils'\n\nconst attrs = useAttrs() as ComputedRef<Partial<AffixProps>>\nconst formRef = useForm()\nconst formLayoutId = useFormLayoutId()\n\nconst target = computed(() => {\n if (attrs.value.target) {\n return attrs.value.target\n }\n if (formLayoutId.value) {\n return `#${formLayoutId.value}`\n }\n /* istanbul ignore next -- @preserve */\n return formRef.value?.id ? `#formily-${formRef.value.id}` : undefined\n})\n</script>\n\n<template>\n <ElAffix\n :class=\"`${prefixCls}__sticky`\"\n v-bind=\"attrs\"\n :position=\"attrs.position ?? 'bottom'\"\n :target=\"target\"\n >\n <slot />\n </ElAffix>\n</template>\n","<script lang=\"ts\" setup>\nimport { ElSpace } from 'element-plus'\nimport FormItem from '../form-item/index'\nimport { prefixCls } from './utils'\n\ndefineOptions({\n name: 'FFormButtonGroup',\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n align: {\n type: String,\n default: 'left',\n },\n inline: {\n type: Boolean,\n default: false,\n },\n gutter: {\n type: Number,\n default: 8,\n },\n alignFormItem: {\n type: Boolean,\n default: false,\n },\n})\n</script>\n\n<template>\n <FormItem\n v-if=\"props.alignFormItem\"\n label=\"&nbsp;\"\n v-bind=\"$attrs\"\n :class=\"[prefixCls, props.inline && `${prefixCls}--inline`]\"\n :style=\"{\n width: '100%',\n }\"\n >\n <ElSpace\n :size=\"props.gutter\"\n :style=\"props.align === 'left'\n ? undefined\n : {\n justifyContent: props.align === 'right' ? 'flex-end' : 'center',\n display: 'flex',\n width: '100%',\n }\"\n >\n <slot />\n </ElSpace>\n </FormItem>\n <ElSpace\n v-else\n v-bind=\"$attrs\"\n :class=\"[prefixCls, props.inline && `${prefixCls}--inline`]\"\n :style=\"{\n justifyContent: props.align === 'left'\n ? 'flex-start'\n : (props.align === 'right'\n ? 'flex-end'\n : 'center'),\n display: 'flex',\n }\"\n :size=\"props.gutter\"\n >\n <slot />\n </ElSpace>\n</template>\n","import { composeExport } from '../__builtins__/shared'\nimport FormButtonGroupSticky from './form-button-group-sticky.vue'\nimport FormButtonGroupInner from './form-button-group.vue'\nimport './style.scss'\n\nexport const FormButtonGroup = composeExport(FormButtonGroupInner, {\n Sticky: FormButtonGroupSticky,\n})\n"],"names":["attrs","useAttrs","formRef","useForm","formLayoutId","useFormLayoutId","target","computed","_openBlock","_createBlock","_unref","_mergeProps","prefixCls","_renderSlot","_ctx","props","__props","$attrs","_createVNode","ElSpace","_normalizeStyle","FormButtonGroup","composeExport","FormButtonGroupInner","FormButtonGroupSticky"],"mappings":";;;;;;;;;;;;;AASA,UAAMA,IAAQC,EAAA,GACRC,IAAUC,EAAA,GACVC,IAAeC,EAAA,GAEfC,IAASC,EAAS,MAClBP,EAAM,MAAM,SACPA,EAAM,MAAM,SAEjBI,EAAa,QACR,IAAIA,EAAa,KAAK,KAGxBF,EAAQ,OAAO,KAAK,YAAYA,EAAQ,MAAM,EAAE,KAAK,MAC7D;sBAICM,KAAAC,EAOUC,MAPVC,EAOU;AAAA,MANP,UAAUD,EAAAE,CAAA,CAAS;AAAA,IAAA,GACZF,EAAAV,CAAA,GAAK;AAAA,MACZ,UAAUU,EAAAV,CAAA,EAAM,YAAQ;AAAA,MACxB,QAAQM,EAAA;AAAA,IAAA;iBAET,MAAQ;AAAA,QAARO,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBZ,UAAMC,IAAQC;qBAsBJD,EAAM,iBADdP,EAAA,GAAAC,EAqBWC,MArBXC,EAqBW;AAAA;MAnBT,OAAM;AAAA,IAAA,GACEM,EAAAA,QAAM;AAAA,MACb,QAAQP,EAAAE,CAAA,GAAWG,EAAM,aAAaL,EAAAE,CAAA,CAAS,UAAA;AAAA,MAC/C,OAAO;AAAA;;IAEP;iBAED,MAWU;AAAA,QAXVM,EAWUR,EAAAS,CAAA,GAAA;AAAA,UAVP,MAAMJ,EAAM;AAAA,UACZ,OAAKK,EAAEL,EAAM,UAAK,SAAsB;YAAgD,gBAAAA,EAAM,UAAK,UAAA,aAAA;AAAA;;;;qBAQpG,MAAQ;AAAA,YAARF,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;;+BAGZL,EAeUC,EAAAS,CAAA,GAfVR,EAeU,EAAA,KAAA,EAAA,GAbAM,EAAAA,QAAM;AAAA,MACb,QAAQP,EAAAE,CAAA,GAAWG,EAAM,aAAaL,EAAAE,CAAA,CAAS,UAAA;AAAA,MAC/C,OAAK;AAAA,QAA0B,gBAAAG,EAAM,UAAK,wBAA8CA,EAAM,UAAK;;;MAQnG,MAAMA,EAAM;AAAA,IAAA;iBAEb,MAAQ;AAAA,QAARF,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;IC9DCO,IAAkBC,EAAcC,GAAsB;AAAA,EACjE,QAAQC;AACV,CAAC;"}
@@ -1,6 +1,12 @@
1
1
  import { stylePrefix as o } from "../__builtins__/configs/index.mjs";
2
- const t = `${o}-form-button-group`;
2
+ import "element-plus";
3
+ import "@silver-formily/reactive-vue";
4
+ import "@vueuse/core";
5
+ import "vue";
6
+ import "@formily/core";
7
+ import "@silver-formily/vue";
8
+ const s = `${o}-form-button-group`;
3
9
  export {
4
- t as prefixCls
10
+ s as prefixCls
5
11
  };
6
12
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/form-button-group/utils.ts"],"sourcesContent":["import { stylePrefix } from '../__builtins__'\r\n\r\nexport const prefixCls = `${stylePrefix}-form-button-group`\r\n"],"names":["prefixCls","stylePrefix"],"mappings":";AAEO,MAAMA,IAAY,GAAGC,CAAW;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/form-button-group/utils.ts"],"sourcesContent":["import { stylePrefix } from '../__builtins__'\n\nexport const prefixCls = `${stylePrefix}-form-button-group`\n"],"names":["prefixCls","stylePrefix"],"mappings":";;;;;;;AAEO,MAAMA,IAAY,GAAGC,CAAW;"}
@@ -1,11 +1,13 @@
1
1
  import { defineComponent as K, computed as V, openBlock as o, createBlock as s, unref as e, mergeProps as k, withCtx as c, createElementBlock as u, Fragment as m, renderList as N, normalizeClass as P, resolveDynamicComponent as F, toDisplayString as _, createTextVNode as $, createVNode as D, h as R } from "vue";
2
- import { isFn as g } from "@formily/shared";
3
- import { formilyComputed as E } from "@silver-formily/reactive-vue";
4
- import { useField as h, useFieldSchema as j, RecursionField as q } from "@silver-formily/vue";
5
- import { ElCollapse as w, ElCollapseItem as z, ElBadge as L } from "element-plus";
6
- import { usePanels as O, createFormCollapse as A } from "./utils.mjs";
7
- import { useCleanAttrs as T, composeExport as U } from "../__builtins__/shared/utils.mjs";
8
- import { stylePrefix as G } from "../__builtins__/configs/index.mjs";
2
+ import { ElCollapse as h, ElCollapseItem as j, ElBadge as q } from "element-plus";
3
+ import { formilyComputed as g } from "@silver-formily/reactive-vue";
4
+ import "@vueuse/core";
5
+ import "@formily/core";
6
+ import { useField as w, useFieldSchema as z, RecursionField as L } from "@silver-formily/vue";
7
+ import { useCleanAttrs as O, composeExport as T } from "../__builtins__/shared/utils.mjs";
8
+ import { isFn as E } from "@formily/shared";
9
+ import { stylePrefix as U } from "../__builtins__/configs/index.mjs";
10
+ import { usePanels as G, createFormCollapse as A } from "./utils.mjs";
9
11
  import '../styles/form-collapse/index.css';const H = { key: 1 }, J = /* @__PURE__ */ K({
10
12
  inheritAttrs: !1,
11
13
  __name: "form-collapse",
@@ -16,17 +18,17 @@ import '../styles/form-collapse/index.css';const H = { key: 1 }, J = /* @__PURE_
16
18
  }
17
19
  },
18
20
  setup(C) {
19
- const r = C, x = `${G}-form-collapse`, { props: b } = T(["modelValue", "onUpdate:modelValue"]), i = h(), B = j(), f = E(() => O(i.value, B.value)), d = V(
21
+ const r = C, x = `${U}-form-collapse`, { props: b } = O(["modelValue", "onUpdate:modelValue"]), i = w(), B = z(), f = g(() => G(i.value, B.value)), d = V(
20
22
  () => r.formCollapse ?? A()
21
23
  );
22
24
  function I(a) {
23
25
  return r.activeKey ? r.activeKey : d.value?.activeKeys ? d.value?.activeKeys : a.map((l) => l.name);
24
26
  }
25
- const n = E(() => f.value.map((a) => i.value.form.queryFeedbacks({
27
+ const n = g(() => f.value.map((a) => i.value.form.queryFeedbacks({
26
28
  type: "error",
27
29
  address: `${i.value.address.concat(a.name)}.*`
28
30
  }).length));
29
- return (a, l) => (o(), s(e(w), k({
31
+ return (a, l) => (o(), s(e(h), k({
30
32
  class: x,
31
33
  "model-value": I(e(f))
32
34
  }, e(b), {
@@ -35,28 +37,28 @@ import '../styles/form-collapse/index.css';const H = { key: 1 }, J = /* @__PURE_
35
37
  })
36
38
  }), {
37
39
  default: c(() => [
38
- (o(!0), u(m, null, N(e(f), ({ props: y, schema: t, name: v }, p) => (o(), s(e(z), k({
40
+ (o(!0), u(m, null, N(e(f), ({ props: y, schema: t, name: v }, p) => (o(), s(e(j), k({
39
41
  key: v,
40
42
  ref_for: !0
41
43
  }, y, { name: v }), {
42
44
  default: c(() => [
43
- D(e(q), {
45
+ D(e(L), {
44
46
  schema: t,
45
47
  name: v
46
48
  }, null, 8, ["schema", "name"])
47
49
  ]),
48
50
  title: c(() => [
49
- e(n)[p] !== 0 ? (o(), s(e(L), {
51
+ e(n)[p] !== 0 ? (o(), s(e(q), {
50
52
  key: 0,
51
53
  class: P(`${x}-errors-badge`),
52
54
  value: e(n)[p]
53
55
  }, {
54
56
  default: c(() => [
55
- t["x-content"]?.title ? (o(), s(F(() => e(g)(t["x-content"]?.title) ? t["x-content"]?.title(e(n)[p]) : t["x-content"]?.title), { key: 0 })) : (o(), u("span", H, _(t["x-component-props"]?.title), 1))
57
+ t["x-content"]?.title ? (o(), s(F(() => e(E)(t["x-content"]?.title) ? t["x-content"]?.title(e(n)[p]) : t["x-content"]?.title), { key: 0 })) : (o(), u("span", H, _(t["x-component-props"]?.title), 1))
56
58
  ]),
57
59
  _: 2
58
60
  }, 1032, ["class", "value"])) : (o(), u(m, { key: 1 }, [
59
- t["x-content"]?.title ? (o(), s(F(() => e(g)(t["x-content"]?.title) ? t["x-content"]?.title(e(n)[p]) : t["x-content"]?.title), { key: 0 })) : (o(), u(m, { key: 1 }, [
61
+ t["x-content"]?.title ? (o(), s(F(() => e(E)(t["x-content"]?.title) ? t["x-content"]?.title(e(n)[p]) : t["x-content"]?.title), { key: 0 })) : (o(), u(m, { key: 1 }, [
60
62
  $(_(t["x-component-props"]?.title), 1)
61
63
  ], 64))
62
64
  ], 64))
@@ -73,13 +75,13 @@ import '../styles/form-collapse/index.css';const H = { key: 1 }, J = /* @__PURE_
73
75
  setup(C, { slots: r }) {
74
76
  return () => R(m, r.default?.());
75
77
  }
76
- }), oe = U(J, {
78
+ }), le = T(J, {
77
79
  Item: M,
78
80
  createFormCollapse: A
79
81
  });
80
82
  export {
81
- oe as FormCollapse,
83
+ le as FormCollapse,
82
84
  M as FormCollapseItem,
83
- oe as default
85
+ le as default
84
86
  };
85
87
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/form-collapse/form-collapse.vue","../../src/form-collapse/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport type { PropType } from 'vue'\r\nimport type { IFormCollapse } from './utils'\r\nimport { isFn } from '@formily/shared'\r\nimport { formilyComputed } from '@silver-formily/reactive-vue'\r\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\r\nimport { ElBadge, ElCollapse, ElCollapseItem } from 'element-plus'\r\nimport { computed } from 'vue'\r\nimport { stylePrefix, useCleanAttrs } from '../__builtins__'\r\nimport { createFormCollapse, usePanels } from './utils'\r\n\r\ndefineOptions({\r\n inheritAttrs: false,\r\n})\r\n\r\nconst props = defineProps({\r\n formCollapse: { type: Object as PropType<IFormCollapse> },\r\n activeKey: {\r\n type: [String, Number],\r\n },\r\n})\r\nconst prefixCls = `${stylePrefix}-form-collapse`\r\nconst { props: collapseAttrs } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\r\n\r\nconst field = useField()\r\nconst schema = useFieldSchema()\r\nconst panels = formilyComputed(() => usePanels(field.value, schema.value))\r\nconst formCollapseRef = computed(\r\n () => props.formCollapse ?? createFormCollapse(),\r\n)\r\n\r\nfunction takeActiveKeys(panelList) {\r\n if (props.activeKey)\r\n return props.activeKey\r\n if (formCollapseRef.value?.activeKeys)\r\n return formCollapseRef.value?.activeKeys\r\n return panelList.map(item => item.name)\r\n}\r\n\r\nconst panelErrorCounts = formilyComputed(() => {\r\n return panels.value.map((item) => {\r\n const panelErrors = field.value.form.queryFeedbacks({\r\n type: 'error',\r\n address: `${field.value.address.concat(item.name)}.*`,\r\n })\r\n return panelErrors.length\r\n })\r\n})\r\n</script>\r\n\r\n<template>\r\n <ElCollapse\r\n :class=\"prefixCls\"\r\n :model-value=\"takeActiveKeys(panels)\"\r\n v-bind=\"collapseAttrs\"\r\n @change=\"(key) => {\r\n formCollapseRef.setActiveKeys(key)\r\n }\"\r\n >\r\n <template v-for=\"({ props: itemProps, schema: itemSchema, name }, index) of panels\" :key=\"name\">\r\n <ElCollapseItem v-bind=\"itemProps\" :name=\"name\">\r\n <template #default>\r\n <RecursionField :schema=\"itemSchema\" :name=\"name\" />\r\n </template>\r\n <template #title>\r\n <ElBadge\r\n v-if=\"panelErrorCounts[index] !== 0\"\r\n :class=\"`${prefixCls}-errors-badge`\"\r\n :value=\"panelErrorCounts[index]\"\r\n >\r\n <component\r\n :is=\"() => isFn(itemSchema['x-content']?.title)\r\n ? itemSchema['x-content']?.title(panelErrorCounts[index])\r\n : itemSchema['x-content']?.title\"\r\n v-if=\"itemSchema['x-content']?.title\"\r\n />\r\n <span v-else>{{ itemSchema['x-component-props']?.title }}</span>\r\n </ElBadge>\r\n <template v-else>\r\n <component\r\n :is=\"() => isFn(itemSchema['x-content']?.title)\r\n ? itemSchema['x-content']?.title(panelErrorCounts[index])\r\n : itemSchema['x-content']?.title\"\r\n v-if=\"itemSchema['x-content']?.title\"\r\n />\r\n <template v-else>\r\n {{ itemSchema['x-component-props']?.title }}\r\n </template>\r\n </template>\r\n </template>\r\n </ElCollapseItem>\r\n </template>\r\n </ElCollapse>\r\n</template>\r\n","import { defineComponent, Fragment, h } from 'vue'\r\nimport { composeExport } from '../__builtins__'\r\nimport FormCollapse from './form-collapse.vue'\r\nimport { createFormCollapse } from './utils'\r\nimport './style.scss'\r\n\r\nexport const FormCollapseItem = defineComponent({\r\n name: 'FFormCollapseItem',\r\n inheritAttrs: false,\r\n setup(_props, { slots }) {\r\n return () => h(Fragment, slots.default?.())\r\n },\r\n})\r\n\r\nconst composeFormCollapse = composeExport(FormCollapse, {\r\n Item: FormCollapseItem,\r\n createFormCollapse,\r\n})\r\n\r\nexport { composeFormCollapse as FormCollapse }\r\nexport default composeFormCollapse\r\n"],"names":["props","__props","prefixCls","stylePrefix","collapseAttrs","useCleanAttrs","field","useField","schema","useFieldSchema","panels","formilyComputed","usePanels","formCollapseRef","computed","createFormCollapse","takeActiveKeys","panelList","item","panelErrorCounts","_openBlock","_createBlock","_unref","_mergeProps","key","_createElementBlock","_Fragment","_renderList","itemProps","itemSchema","name","index","_createVNode","RecursionField","ElBadge","_resolveDynamicComponent","isFn","_hoisted_1","_toDisplayString","_createTextVNode","FormCollapseItem","defineComponent","_props","slots","h","Fragment","composeFormCollapse","composeExport","FormCollapse"],"mappings":";;;;;;;;;;;;;;;;;;AAeA,UAAMA,IAAQC,GAMRC,IAAY,GAAGC,CAAW,kBAC1B,EAAE,OAAOC,EAAA,IAAkBC,EAAc,CAAC,cAAc,qBAAqB,CAAC,GAE9EC,IAAQC,EAAA,GACRC,IAASC,EAAA,GACTC,IAASC,EAAgB,MAAMC,EAAUN,EAAM,OAAOE,EAAO,KAAK,CAAC,GACnEK,IAAkBC;AAAA,MACtB,MAAMd,EAAM,gBAAgBe,EAAA;AAAA,IAAmB;AAGjD,aAASC,EAAeC,GAAW;AACjC,aAAIjB,EAAM,YACDA,EAAM,YACXa,EAAgB,OAAO,aAClBA,EAAgB,OAAO,aACzBI,EAAU,IAAI,CAAAC,MAAQA,EAAK,IAAI;AAAA,IACxC;AAEA,UAAMC,IAAmBR,EAAgB,MAChCD,EAAO,MAAM,IAAI,CAACQ,MACHZ,EAAM,MAAM,KAAK,eAAe;AAAA,MAClD,MAAM;AAAA,MACN,SAAS,GAAGA,EAAM,MAAM,QAAQ,OAAOY,EAAK,IAAI,CAAC;AAAA,IAAA,CAClD,EACkB,MACpB,CACF;sBAICE,KAAAC,EAyCaC,MAzCbC,EAyCa;AAAA,MAxCV,OAAOrB;AAAA,MACP,eAAac,EAAeM,EAAAZ,CAAA,CAAM;AAAA,IAAA,GAC3BY,EAAAlB,CAAA,GAAa;AAAA,MACpB,2BAASoB,MAAG;AAAc,QAAAX,EAAA,MAAgB,cAAcW,CAAG;AAAA;;iBAIlD,MAAyE;AAAA,gBAAnFC,EAgCWC,GAAA,MAAAC,EAhCiEL,MAAM,CAAA,EAAA,OAAvDM,WAAmBC,GAAY,MAAAC,EAAA,GAAQC,OAChEX,KAAAC,EA8BiBC,MA9BjBC,EA8BiB;AAAA,eA/BuEO;AAAA;WAChEF,GAAS,EAAG,MAAAE,EAAA,CAAU,GAAA;AAAA,UACjC,WACT,MAAoD;AAAA,YAApDE,EAAoDV,EAAAW,CAAA,GAAA;AAAA,cAAnC,QAAQJ;AAAA,cAAa,MAAAC;AAAA,YAAA;;UAE7B,SACT,MAYU;AAAA,YAXFR,EAAAH,CAAA,EAAiBY,CAAK,MAAA,UAD9BV,EAYUC,EAAAY,CAAA,GAAA;AAAA;cAVP,YAAUhC,CAAS,eAAA;AAAA,cACnB,OAAOoB,EAAAH,CAAA,EAAiBY,CAAK;AAAA,YAAA;yBAE9B,MAKE;AAAA,gBADMF,gBAAyB,SAJjCT,KAAAC,EAKEc,EAAA,MAJWb,EAAAc,CAAA,EAAKP,gBAAyB,KAAK,IAAqBA,EAAU,WAAA,GAAe,MAAMP,EAAAH,CAAA,EAAiBY,CAAK,CAAA,IAAsBF,gBAAyB,KAAK,GAAA,EAAA,KAAA,EAAA,CAAA,WAK9KJ,EAAgE,QAAAY,GAAAC,EAAhDT,EAAU,mBAAA,GAAuB,KAAK,GAAA,CAAA;AAAA,cAAA;;kDAExDJ,EAUWC,GAAA,EAAA,KAAA,KAAA;AAAA,cALDG,gBAAyB,SAJjCT,KAAAC,EAKEc,EAAA,MAJWb,EAAAc,CAAA,EAAKP,gBAAyB,KAAK,IAAqBA,EAAU,WAAA,GAAe,MAAMP,EAAAH,CAAA,EAAiBY,CAAK,CAAA,IAAsBF,gBAAyB,KAAK,GAAA,EAAA,KAAA,GAAA,WAK9KJ,EAEWC,GAAA,EAAA,KAAA,KAAA;AAAA,gBADNa,EAAAD,EAAAT,wBAAiC,KAAK,GAAA,CAAA;AAAA,cAAA;;;;;;;;;IChF1CW,IAAmBC,EAAgB;AAAA,EAC9C,MAAM;AAAA,EACN,cAAc;AAAA,EACd,MAAMC,GAAQ,EAAE,OAAAC,KAAS;AACvB,WAAO,MAAMC,EAAEC,GAAUF,EAAM,WAAW;AAAA,EAC5C;AACF,CAAC,GAEKG,KAAsBC,EAAcC,GAAc;AAAA,EACtD,MAAMR;AAAA,EACN,oBAAAzB;AACF,CAAC;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/form-collapse/form-collapse.vue","../../src/form-collapse/index.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PropType } from 'vue'\nimport type { IFormCollapse } from './utils'\nimport { isFn } from '@formily/shared'\nimport { formilyComputed } from '@silver-formily/reactive-vue'\nimport { RecursionField, useField, useFieldSchema } from '@silver-formily/vue'\nimport { ElBadge, ElCollapse, ElCollapseItem } from 'element-plus'\nimport { computed } from 'vue'\nimport { stylePrefix, useCleanAttrs } from '../__builtins__'\nimport { createFormCollapse, usePanels } from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = defineProps({\n formCollapse: { type: Object as PropType<IFormCollapse> },\n activeKey: {\n type: [String, Number],\n },\n})\nconst prefixCls = `${stylePrefix}-form-collapse`\nconst { props: collapseAttrs } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\n\nconst field = useField()\nconst schema = useFieldSchema()\nconst panels = formilyComputed(() => usePanels(field.value, schema.value))\nconst formCollapseRef = computed(\n () => props.formCollapse ?? createFormCollapse(),\n)\n\nfunction takeActiveKeys(panelList) {\n if (props.activeKey)\n return props.activeKey\n if (formCollapseRef.value?.activeKeys)\n return formCollapseRef.value?.activeKeys\n return panelList.map(item => item.name)\n}\n\nconst panelErrorCounts = formilyComputed(() => {\n return panels.value.map((item) => {\n const panelErrors = field.value.form.queryFeedbacks({\n type: 'error',\n address: `${field.value.address.concat(item.name)}.*`,\n })\n return panelErrors.length\n })\n})\n</script>\n\n<template>\n <ElCollapse\n :class=\"prefixCls\"\n :model-value=\"takeActiveKeys(panels)\"\n v-bind=\"collapseAttrs\"\n @change=\"(key) => {\n formCollapseRef.setActiveKeys(key)\n }\"\n >\n <template v-for=\"({ props: itemProps, schema: itemSchema, name }, index) of panels\" :key=\"name\">\n <ElCollapseItem v-bind=\"itemProps\" :name=\"name\">\n <template #default>\n <RecursionField :schema=\"itemSchema\" :name=\"name\" />\n </template>\n <template #title>\n <ElBadge\n v-if=\"panelErrorCounts[index] !== 0\"\n :class=\"`${prefixCls}-errors-badge`\"\n :value=\"panelErrorCounts[index]\"\n >\n <component\n :is=\"() => isFn(itemSchema['x-content']?.title)\n ? itemSchema['x-content']?.title(panelErrorCounts[index])\n : itemSchema['x-content']?.title\"\n v-if=\"itemSchema['x-content']?.title\"\n />\n <span v-else>{{ itemSchema['x-component-props']?.title }}</span>\n </ElBadge>\n <template v-else>\n <component\n :is=\"() => isFn(itemSchema['x-content']?.title)\n ? itemSchema['x-content']?.title(panelErrorCounts[index])\n : itemSchema['x-content']?.title\"\n v-if=\"itemSchema['x-content']?.title\"\n />\n <template v-else>\n {{ itemSchema['x-component-props']?.title }}\n </template>\n </template>\n </template>\n </ElCollapseItem>\n </template>\n </ElCollapse>\n</template>\n","import { defineComponent, Fragment, h } from 'vue'\nimport { composeExport } from '../__builtins__'\nimport FormCollapse from './form-collapse.vue'\nimport { createFormCollapse } from './utils'\nimport './style.scss'\n\nexport const FormCollapseItem = defineComponent({\n name: 'FFormCollapseItem',\n inheritAttrs: false,\n setup(_props, { slots }) {\n return () => h(Fragment, slots.default?.())\n },\n})\n\nconst composeFormCollapse = composeExport(FormCollapse, {\n Item: FormCollapseItem,\n createFormCollapse,\n})\n\nexport { composeFormCollapse as FormCollapse }\nexport default composeFormCollapse\n"],"names":["props","__props","prefixCls","stylePrefix","collapseAttrs","useCleanAttrs","field","useField","schema","useFieldSchema","panels","formilyComputed","usePanels","formCollapseRef","computed","createFormCollapse","takeActiveKeys","panelList","item","panelErrorCounts","_openBlock","_createBlock","_unref","_mergeProps","key","_createElementBlock","_Fragment","_renderList","itemProps","itemSchema","name","index","_createVNode","RecursionField","ElBadge","_resolveDynamicComponent","isFn","_hoisted_1","_toDisplayString","_createTextVNode","FormCollapseItem","defineComponent","_props","slots","h","Fragment","composeFormCollapse","composeExport","FormCollapse"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/form-collapse/utils.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\r\nimport type { Schema, SchemaKey } from '@formily/json-schema'\r\nimport { model } from '@formily/reactive'\r\nimport { toArr } from '@formily/shared'\r\n\r\ntype ActiveKeys = string | number | Array<string | number>\r\n\r\ntype ActiveKey = string | number\r\n\r\ntype Panels = { name: SchemaKey, props: any, schema: Schema }[]\r\n\r\nexport interface IFormCollapse {\r\n activeKeys: ActiveKeys\r\n hasActiveKey: (key: ActiveKey) => boolean\r\n setActiveKeys: (key: ActiveKeys) => void\r\n addActiveKey: (key: ActiveKey) => void\r\n removeActiveKey: (key: ActiveKey) => void\r\n toggleActiveKey: (key: ActiveKey) => void\r\n}\r\n\r\nexport interface IFormCollapseProps {\r\n formCollapse?: IFormCollapse\r\n activeKey?: ActiveKey\r\n}\r\n\r\nexport function usePanels(collapseField: GeneralField, schema: Schema) {\r\n const schemaList = schema.mapProperties((schema, name) => ({\r\n name,\r\n props: {\r\n ...schema?.['x-component-props'],\r\n key: schema?.['x-component-props']?.key || name,\r\n },\r\n schema,\r\n }))\r\n\r\n const panels: Panels = schemaList.filter((item) => {\r\n const field = collapseField.query(collapseField.address.concat(item.name)).take()\r\n const isHidden = field?.display === 'none' || field?.display === 'hidden'\r\n if (isHidden)\r\n return false\r\n return item?.schema?.['x-component']?.includes('FormCollapse.Item') ?? false\r\n })\r\n\r\n return panels\r\n}\r\n\r\nexport function createFormCollapse(defaultActiveKeys?: ActiveKeys) {\r\n const formCollapse = model({\r\n activeKeys: defaultActiveKeys,\r\n setActiveKeys(keys: ActiveKeys) {\r\n /* istanbul ignore if -- @preserve */\r\n if (keys === formCollapse.activeKeys)\r\n return\r\n formCollapse.activeKeys = keys\r\n },\r\n hasActiveKey(key: ActiveKey) {\r\n if (Array.isArray(formCollapse.activeKeys)) {\r\n if (formCollapse.activeKeys.includes(key)) {\r\n return true\r\n }\r\n }\r\n else if (formCollapse.activeKeys === key) {\r\n return true\r\n }\r\n return false\r\n },\r\n addActiveKey(key: ActiveKey) {\r\n /* istanbul ignore if -- @preserve */\r\n if (formCollapse.hasActiveKey(key))\r\n return\r\n formCollapse.activeKeys = toArr(formCollapse.activeKeys).concat(key)\r\n },\r\n removeActiveKey(key: ActiveKey) {\r\n formCollapse.activeKeys = Array.isArray(formCollapse.activeKeys)\r\n ? formCollapse.activeKeys.filter(\r\n item => item !== key,\r\n )\r\n : ''\r\n },\r\n toggleActiveKey(key: ActiveKey) {\r\n if (formCollapse.hasActiveKey(key)) {\r\n formCollapse.removeActiveKey(key)\r\n }\r\n else {\r\n formCollapse.addActiveKey(key)\r\n }\r\n },\r\n })\r\n return formCollapse\r\n}\r\n"],"names":["usePanels","collapseField","schema","name","item","field","createFormCollapse","defaultActiveKeys","formCollapse","model","keys","key","toArr"],"mappings":";;AAyBO,SAASA,EAAUC,GAA6BC,GAAgB;AAkBrE,SAjBmBA,EAAO,cAAc,CAACA,GAAQC,OAAU;AAAA,IACzD,MAAAA;AAAA,IACA,OAAO;AAAA,MACL,GAAGD,IAAS,mBAAmB;AAAA,MAC/B,KAAKA,IAAS,mBAAmB,GAAG,OAAOC;AAAA,IAAA;AAAA,IAE7C,QAAAD;AAAAA,EAAA,EACA,EAEgC,OAAO,CAACE,MAAS;AACjD,UAAMC,IAAQJ,EAAc,MAAMA,EAAc,QAAQ,OAAOG,EAAK,IAAI,CAAC,EAAE,KAAA;AAE3E,WADiBC,GAAO,YAAY,UAAUA,GAAO,YAAY,WAExD,KACFD,GAAM,SAAS,aAAa,GAAG,SAAS,mBAAmB,KAAK;AAAA,EACzE,CAAC;AAGH;AAEO,SAASE,EAAmBC,GAAgC;AACjE,QAAMC,IAAeC,EAAM;AAAA,IACzB,YAAYF;AAAA,IACZ,cAAcG,GAAkB;AAE9B,MAAIA,MAASF,EAAa,eAE1BA,EAAa,aAAaE;AAAA,IAC5B;AAAA,IACA,aAAaC,GAAgB;AAC3B,UAAI,MAAM,QAAQH,EAAa,UAAU;AACvC,YAAIA,EAAa,WAAW,SAASG,CAAG;AACtC,iBAAO;AAAA,iBAGFH,EAAa,eAAeG;AACnC,eAAO;AAET,aAAO;AAAA,IACT;AAAA,IACA,aAAaA,GAAgB;AAE3B,MAAIH,EAAa,aAAaG,CAAG,MAEjCH,EAAa,aAAaI,EAAMJ,EAAa,UAAU,EAAE,OAAOG,CAAG;AAAA,IACrE;AAAA,IACA,gBAAgBA,GAAgB;AAC9B,MAAAH,EAAa,aAAa,MAAM,QAAQA,EAAa,UAAU,IAC3DA,EAAa,WAAW;AAAA,QACtB,OAAQJ,MAASO;AAAA,MAAA,IAEnB;AAAA,IACN;AAAA,IACA,gBAAgBA,GAAgB;AAC9B,MAAIH,EAAa,aAAaG,CAAG,IAC/BH,EAAa,gBAAgBG,CAAG,IAGhCH,EAAa,aAAaG,CAAG;AAAA,IAEjC;AAAA,EAAA,CACD;AACD,SAAOH;AACT;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/form-collapse/utils.ts"],"sourcesContent":["import type { GeneralField } from '@formily/core'\nimport type { Schema, SchemaKey } from '@formily/json-schema'\nimport { model } from '@formily/reactive'\nimport { toArr } from '@formily/shared'\n\ntype ActiveKeys = string | number | Array<string | number>\n\ntype ActiveKey = string | number\n\ntype Panels = { name: SchemaKey, props: any, schema: Schema }[]\n\nexport interface IFormCollapse {\n activeKeys: ActiveKeys\n hasActiveKey: (key: ActiveKey) => boolean\n setActiveKeys: (key: ActiveKeys) => void\n addActiveKey: (key: ActiveKey) => void\n removeActiveKey: (key: ActiveKey) => void\n toggleActiveKey: (key: ActiveKey) => void\n}\n\nexport interface IFormCollapseProps {\n formCollapse?: IFormCollapse\n activeKey?: ActiveKey\n}\n\nexport function usePanels(collapseField: GeneralField, schema: Schema) {\n const schemaList = schema.mapProperties((schema, name) => ({\n name,\n props: {\n ...schema?.['x-component-props'],\n key: schema?.['x-component-props']?.key || name,\n },\n schema,\n }))\n\n const panels: Panels = schemaList.filter((item) => {\n const field = collapseField.query(collapseField.address.concat(item.name)).take()\n const isHidden = field?.display === 'none' || field?.display === 'hidden'\n if (isHidden)\n return false\n return item?.schema?.['x-component']?.includes('FormCollapse.Item') ?? false\n })\n\n return panels\n}\n\nexport function createFormCollapse(defaultActiveKeys?: ActiveKeys) {\n const formCollapse = model({\n activeKeys: defaultActiveKeys,\n setActiveKeys(keys: ActiveKeys) {\n /* istanbul ignore if -- @preserve */\n if (keys === formCollapse.activeKeys)\n return\n formCollapse.activeKeys = keys\n },\n hasActiveKey(key: ActiveKey) {\n if (Array.isArray(formCollapse.activeKeys)) {\n if (formCollapse.activeKeys.includes(key)) {\n return true\n }\n }\n else if (formCollapse.activeKeys === key) {\n return true\n }\n return false\n },\n addActiveKey(key: ActiveKey) {\n /* istanbul ignore if -- @preserve */\n if (formCollapse.hasActiveKey(key))\n return\n formCollapse.activeKeys = toArr(formCollapse.activeKeys).concat(key)\n },\n removeActiveKey(key: ActiveKey) {\n formCollapse.activeKeys = Array.isArray(formCollapse.activeKeys)\n ? formCollapse.activeKeys.filter(\n item => item !== key,\n )\n : ''\n },\n toggleActiveKey(key: ActiveKey) {\n if (formCollapse.hasActiveKey(key)) {\n formCollapse.removeActiveKey(key)\n }\n else {\n formCollapse.addActiveKey(key)\n }\n },\n })\n return formCollapse\n}\n"],"names":["usePanels","collapseField","schema","name","item","field","createFormCollapse","defaultActiveKeys","formCollapse","model","keys","key","toArr"],"mappings":";;AAyBO,SAASA,EAAUC,GAA6BC,GAAgB;AAkBrE,SAjBmBA,EAAO,cAAc,CAACA,GAAQC,OAAU;AAAA,IACzD,MAAAA;AAAA,IACA,OAAO;AAAA,MACL,GAAGD,IAAS,mBAAmB;AAAA,MAC/B,KAAKA,IAAS,mBAAmB,GAAG,OAAOC;AAAA,IAAA;AAAA,IAE7C,QAAAD;AAAAA,EAAA,EACA,EAEgC,OAAO,CAACE,MAAS;AACjD,UAAMC,IAAQJ,EAAc,MAAMA,EAAc,QAAQ,OAAOG,EAAK,IAAI,CAAC,EAAE,KAAA;AAE3E,WADiBC,GAAO,YAAY,UAAUA,GAAO,YAAY,WAExD,KACFD,GAAM,SAAS,aAAa,GAAG,SAAS,mBAAmB,KAAK;AAAA,EACzE,CAAC;AAGH;AAEO,SAASE,EAAmBC,GAAgC;AACjE,QAAMC,IAAeC,EAAM;AAAA,IACzB,YAAYF;AAAA,IACZ,cAAcG,GAAkB;AAE9B,MAAIA,MAASF,EAAa,eAE1BA,EAAa,aAAaE;AAAA,IAC5B;AAAA,IACA,aAAaC,GAAgB;AAC3B,UAAI,MAAM,QAAQH,EAAa,UAAU;AACvC,YAAIA,EAAa,WAAW,SAASG,CAAG;AACtC,iBAAO;AAAA,iBAGFH,EAAa,eAAeG;AACnC,eAAO;AAET,aAAO;AAAA,IACT;AAAA,IACA,aAAaA,GAAgB;AAE3B,MAAIH,EAAa,aAAaG,CAAG,MAEjCH,EAAa,aAAaI,EAAMJ,EAAa,UAAU,EAAE,OAAOG,CAAG;AAAA,IACrE;AAAA,IACA,gBAAgBA,GAAgB;AAC9B,MAAAH,EAAa,aAAa,MAAM,QAAQA,EAAa,UAAU,IAC3DA,EAAa,WAAW;AAAA,QACtB,OAAQJ,MAASO;AAAA,MAAA,IAEnB;AAAA,IACN;AAAA,IACA,gBAAgBA,GAAgB;AAC9B,MAAIH,EAAa,aAAaG,CAAG,IAC/BH,EAAa,gBAAgBG,CAAG,IAGhCH,EAAa,aAAaG,CAAG;AAAA,IAEjC;AAAA,EAAA,CACD;AACD,SAAOH;AACT;"}
@@ -1,4 +1,4 @@
1
1
  import { Component } from 'vue';
2
2
  import { FormDialogSlotContent, IFormDialog, IFormDialogProps } from './types';
3
- export declare function FormDialog<T extends object = any>(title: IFormDialogProps | string, content?: Component | FormDialogSlotContent, dynamicMiddlewareNames?: string[]): IFormDialog<T>;
3
+ export declare function FormDialog<T extends object = any, const DynamicMiddlewareNames extends readonly string[] = []>(title: IFormDialogProps | string, content?: Component | FormDialogSlotContent, dynamicMiddlewareNames?: DynamicMiddlewareNames): IFormDialog<T, DynamicMiddlewareNames[number]>;
4
4
  export default FormDialog;
@@ -3,15 +3,15 @@ import { toJS as q } from "@formily/reactive";
3
3
  import { isFn as p, isArr as y, isStr as E, pascalCase as S, applyMiddleware as g, isValid as z } from "@formily/shared";
4
4
  import { observer as N } from "@silver-formily/reactive-vue";
5
5
  import { defineComponent as O, useSlots as R, ref as B, computed as $, openBlock as k, createBlock as A, unref as i, mergeProps as C, createSlots as I, withCtx as c, createElementVNode as J, normalizeClass as U, renderSlot as w, createElementBlock as G, Fragment as H, createVNode as b, createTextVNode as h, toDisplayString as j, normalizeProps as K, guardReactiveProps as L, h as x, createApp as Q } from "vue";
6
- import { FormProvider as W } from "@silver-formily/vue";
7
- import { ElDialog as X, ElButton as D, ElConfigProvider as Y } from "element-plus";
8
- import { useEnterSubmit as Z } from "../__builtins__/shared/use-enter-submit.mjs";
9
- import { resolveDialogElement as _ } from "../shared/overlay-elements.mjs";
10
- import { loadElConfigProvider as ee } from "../__builtins__/shared/load-config-provider.mjs";
11
- import { o as oe, c as M } from "../vendor/lodash.mjs";
12
- import { useDebonceSubmitting as re, loading as F, getTransitionDuration as te } from "../__builtins__/shared/loading.mjs";
13
- import { stylePrefix as ne } from "../__builtins__/configs/index.mjs";
14
- import { isVueOptions as ie } from "../__builtins__/shared/utils.mjs";
6
+ import { ElDialog as W, ElButton as D, ElConfigProvider as X } from "element-plus";
7
+ import { useDebonceSubmitting as Y, loading as M, getTransitionDuration as Z } from "../__builtins__/shared/loading.mjs";
8
+ import { FormProvider as _ } from "@silver-formily/vue";
9
+ import { isVueOptions as ee } from "../__builtins__/shared/utils.mjs";
10
+ import { stylePrefix as oe } from "../__builtins__/configs/index.mjs";
11
+ import { loadElConfigProvider as re } from "../__builtins__/shared/load-config-provider.mjs";
12
+ import { useEnterSubmit as te } from "../__builtins__/shared/use-enter-submit.mjs";
13
+ import { resolveDialogElement as ne } from "../shared/overlay-elements.mjs";
14
+ import { o as ie, c as F } from "../vendor/lodash.mjs";
15
15
  const le = /* @__PURE__ */ O({
16
16
  name: "FormDialogContent",
17
17
  __name: "dialog-content",
@@ -38,19 +38,19 @@ const le = /* @__PURE__ */ O({
38
38
  }
39
39
  },
40
40
  setup(r) {
41
- const t = r, f = R(), e = `${ne}-form-dialog`, u = ee(), m = oe(t.dialogProps, [
41
+ const t = r, f = R(), e = `${oe}-form-dialog`, u = re(), m = ie(t.dialogProps, [
42
42
  "modelValue",
43
43
  "onUpdate:modelValue",
44
44
  "beforeClose",
45
45
  "enterSubmit"
46
- ]), { internalSubmitting: d } = re(t.form), s = B(null), o = $(() => t.dialogProps.enterSubmit !== !1);
47
- return Z({
46
+ ]), { internalSubmitting: d } = Y(t.form), s = B(null), o = $(() => t.dialogProps.enterSubmit !== !1);
47
+ return te({
48
48
  visible: $(() => t.visible),
49
49
  resolve: () => t.resolve(),
50
50
  submitting: d,
51
- getContainer: () => _(s.value),
51
+ getContainer: () => ne(s.value),
52
52
  enabled: o
53
- }), (n, l) => (k(), A(i(X), C({
53
+ }), (n, l) => (k(), A(i(W), C({
54
54
  ref_key: "dialogRef",
55
55
  ref: s,
56
56
  class: e,
@@ -62,11 +62,11 @@ const le = /* @__PURE__ */ O({
62
62
  }
63
63
  }), I({
64
64
  default: c(() => [
65
- b(i(W), {
65
+ b(i(_), {
66
66
  form: t.form
67
67
  }, {
68
68
  default: c(() => [
69
- b(i(Y), K(L(i(u))), {
69
+ b(i(X), K(L(i(u))), {
70
70
  default: c(() => [
71
71
  w(n.$slots, "default", {
72
72
  resolve: r.resolve,
@@ -141,7 +141,7 @@ function Ee(r, t, f) {
141
141
  for (const o of f) {
142
142
  if (!E(o))
143
143
  return;
144
- const n = M(o);
144
+ const n = F(o);
145
145
  if (["open", "cancel", "confirm"].includes(n))
146
146
  throw new Error(`for${S(n)} is presved`);
147
147
  e[`${n}Middlewares`] = [];
@@ -149,7 +149,7 @@ function Ee(r, t, f) {
149
149
  document.body.append(e.root);
150
150
  const u = E(r) ? { title: r } : r;
151
151
  function m(o, n, l) {
152
- const a = ie(t) ? { default: () => x(t) } : t;
152
+ const a = ee(t) ? { default: () => x(t) } : t;
153
153
  if (!e.instance) {
154
154
  const v = N({
155
155
  setup(se, { expose: T }) {
@@ -170,7 +170,7 @@ function Ee(r, t, f) {
170
170
  e.instance.visible = o;
171
171
  }
172
172
  function d() {
173
- const o = te();
173
+ const o = Z();
174
174
  setTimeout(() => {
175
175
  e.app?.unmount?.(), e.app = null, e.instance = null, e.root?.remove(), e.root = void 0;
176
176
  }, o);
@@ -180,14 +180,14 @@ function Ee(r, t, f) {
180
180
  forConfirm: (o) => (p(o) && e.confirmMiddlewares.push(o), s),
181
181
  forCancel: (o) => (p(o) && e.cancelMiddlewares.push(o), s),
182
182
  open: (o) => (e.promise || (e.promise = new Promise((n, l) => {
183
- F(u.loadingText, () => g(o, e.openMiddlewares)).then((a) => {
183
+ M(u.loadingText, () => g(o, e.openMiddlewares)).then((a) => {
184
184
  e.form = e.form || V(a), m(!0, (v) => {
185
185
  e.form.submit(async () => {
186
186
  await (z(v) ? g(e.form, e[`${v}Middlewares`]) : g(e.form, e.confirmMiddlewares)), n(q(e.form.values)), s.close(), d();
187
187
  }).catch(() => {
188
188
  });
189
189
  }, async () => {
190
- await F(u.loadingText, () => g(e.form, e.cancelMiddlewares)), s.close(), d(), l(new Error("cancel"));
190
+ await M(u.loadingText, () => g(e.form, e.cancelMiddlewares)), s.close(), d(), l(new Error("cancel"));
191
191
  });
192
192
  }).catch(
193
193
  /* istanbul ignore next -- @preserve */
@@ -200,7 +200,7 @@ function Ee(r, t, f) {
200
200
  };
201
201
  if (y(f))
202
202
  for (const o of f) {
203
- const n = M(o);
203
+ const n = F(o);
204
204
  s[`for${S(n)}`] = (l) => (p(l) && e[`${n}Middlewares`].push(l), s);
205
205
  }
206
206
  return s;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/form-dialog/dialog-content.vue","../../src/form-dialog/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { Form } from '@formily/core'\r\nimport type { ComponentPublicInstance, PropType } from 'vue'\r\nimport type { FormDialogSlots, IFormDialogProps } from './types'\r\nimport { isFn } from '@formily/shared'\r\nimport { FormProvider } from '@silver-formily/vue'\r\nimport { ElButton, ElConfigProvider, ElDialog } from 'element-plus'\r\nimport { omit } from 'lodash-es'\r\nimport { computed, ref } from 'vue'\r\nimport { loadElConfigProvider, stylePrefix, useDebonceSubmitting } from '../__builtins__'\r\nimport { useEnterSubmit } from '../__builtins__/shared/use-enter-submit'\r\nimport { resolveDialogElement } from '../shared/overlay-elements'\r\n\r\ndefineOptions({\r\n name: 'FormDialogContent',\r\n})\r\nconst props = defineProps({\r\n dialogProps: {\r\n type: Object as PropType<IFormDialogProps>,\r\n required: true,\r\n },\r\n visible: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n form: {\r\n type: Object as PropType<Form>,\r\n required: true,\r\n },\r\n resolve: {\r\n type: Function as PropType<() => void>,\r\n required: true,\r\n },\r\n reject: {\r\n type: Function as PropType<() => void>,\r\n required: true,\r\n },\r\n})\r\n\r\nconst slots = defineSlots<FormDialogSlots>()\r\nconst prefixCls = `${stylePrefix}-form-dialog`\r\nconst elConfig = loadElConfigProvider()\r\nconst _dialogProps = omit(props.dialogProps, [\r\n 'modelValue',\r\n 'onUpdate:modelValue',\r\n 'beforeClose',\r\n 'enterSubmit',\r\n])\r\nconst { internalSubmitting } = useDebonceSubmitting(props.form)\r\nconst dialogRef = ref<ComponentPublicInstance | null>(null)\r\nconst enableEnterSubmit = computed(() => props.dialogProps.enterSubmit !== false)\r\n\r\nuseEnterSubmit({\r\n visible: computed(() => props.visible),\r\n resolve: () => props.resolve(),\r\n submitting: internalSubmitting,\r\n getContainer: () => resolveDialogElement(dialogRef.value),\r\n enabled: enableEnterSubmit,\r\n})\r\n</script>\r\n\r\n<template>\r\n <ElDialog\r\n ref=\"dialogRef\"\r\n :class=\"prefixCls\"\r\n :z-index=\"elConfig.zIndex\"\r\n v-bind=\"_dialogProps\"\r\n :model-value=\"visible\"\r\n :before-close=\"(done) => {\r\n reject()\r\n if (isFn(props.dialogProps.beforeClose)) {\r\n props.dialogProps.beforeClose(done)\r\n }\r\n else {\r\n done()\r\n }\r\n }\"\r\n >\r\n <template v-if=\"slots.header\" #header>\r\n <slot name=\"header\" :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\r\n </template>\r\n\r\n <template #default>\r\n <FormProvider :form=\"props.form\">\r\n <ElConfigProvider v-bind=\"elConfig\">\r\n <slot :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\r\n </ElConfigProvider>\r\n </FormProvider>\r\n </template>\r\n\r\n <template #footer>\r\n <div :class=\"`${prefixCls}-footer`\">\r\n <template v-if=\"slots.footer\">\r\n <slot name=\"footer\" :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\r\n </template>\r\n <template v-else>\r\n <ElButton\r\n v-bind=\"_dialogProps.cancelButtonProps\"\r\n @click=\"props.reject()\"\r\n >\r\n {{ _dialogProps.cancelText || '取消' }}\r\n </ElButton>\r\n <ElButton\r\n type=\"primary\"\r\n v-bind=\"_dialogProps.okButtonProps\"\r\n :loading=\"internalSubmitting\"\r\n @click=\"props.resolve()\"\r\n >\r\n {{ _dialogProps.okText || '确定' }}\r\n </ElButton>\r\n </template>\r\n </div>\r\n </template>\r\n </ElDialog>\r\n</template>\r\n","import type { Form, IFormProps } from '@formily/core'\r\nimport type { IMiddleware } from '@formily/shared'\r\nimport type { App, Component } from 'vue'\r\nimport type { FormDialogSlotContent, IFormDialog, IFormDialogProps } from './types'\r\nimport { createForm } from '@formily/core'\r\nimport { toJS } from '@formily/reactive'\r\nimport { applyMiddleware, isArr, isFn, isStr, isValid, pascalCase } from '@formily/shared'\r\nimport { observer } from '@silver-formily/reactive-vue'\r\nimport { camelCase } from 'lodash-es'\r\nimport { createApp, h, ref } from 'vue'\r\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\r\nimport DialogContent from './dialog-content.vue'\r\n\r\nexport function FormDialog<T extends object = any>(\r\n title: IFormDialogProps | string,\r\n content?: Component | FormDialogSlotContent,\r\n dynamicMiddlewareNames?: string[],\r\n): IFormDialog<T> {\r\n const env: {\r\n root?: HTMLElement\r\n form?: Form<T>\r\n promise?: Promise<any>\r\n instance?: any\r\n app?: App<Element>\r\n openMiddlewares: IMiddleware<IFormProps<T>>[]\r\n confirmMiddlewares: IMiddleware<Form<T>>[]\r\n cancelMiddlewares: IMiddleware<Form<T>>[]\r\n [key: `${string}Middlewares`]: IMiddleware<Form<T>>[] | IMiddleware<IFormProps<T>>[] | undefined\r\n } = {\r\n root: document.createElement('div'),\r\n form: null,\r\n promise: null,\r\n app: null,\r\n instance: null,\r\n openMiddlewares: [],\r\n confirmMiddlewares: [],\r\n cancelMiddlewares: [],\r\n }\r\n\r\n if (isArr(dynamicMiddlewareNames)) {\r\n for (const middlewareName of dynamicMiddlewareNames) {\r\n /* istanbul ignore if -- @preserve */\r\n if (!isStr(middlewareName))\r\n return\r\n const _middlewareName = camelCase(middlewareName)\r\n /* istanbul ignore if -- @preserve */\r\n if (['open', 'cancel', 'confirm'].includes(_middlewareName)) {\r\n throw new Error(`for${pascalCase(_middlewareName)} is presved`)\r\n }\r\n (env[`${_middlewareName}Middlewares`] = [])\r\n }\r\n }\r\n\r\n document.body.append(env.root)\r\n\r\n const props = (isStr(title) ? ({ title }) : title) as IFormDialogProps\r\n\r\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\r\n const _content = isVueOptions(content)\r\n ? { default: () => h(content) }\r\n : content\r\n if (!env.instance) {\r\n const ComponentConstructor = observer({\r\n setup(_, { expose }) {\r\n const visible = ref(false)\r\n expose({\r\n visible,\r\n })\r\n return () => h(DialogContent, {\r\n dialogProps: props,\r\n form: env.form,\r\n resolve,\r\n reject,\r\n visible: visible.value,\r\n }, _content)\r\n },\r\n })\r\n env.app = createApp(ComponentConstructor)\r\n env.instance = env.app.mount(env.root)\r\n }\r\n env.instance.visible = visible\r\n }\r\n\r\n function disposeDialog() {\r\n const animationDuration = getTransitionDuration()\r\n setTimeout(() => {\r\n env.app?.unmount?.()\r\n env.app = null\r\n env.instance = null\r\n env.root?.remove()\r\n env.root = undefined\r\n }, animationDuration)\r\n }\r\n\r\n const formDialog = {\r\n forOpen: (middleware: IMiddleware<IFormProps<T>>) => {\r\n isFn(middleware) && env.openMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n forConfirm: (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env.confirmMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n forCancel: (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env.cancelMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n open: (payload: IFormProps<T>) => {\r\n /* istanbul ignore if -- @preserve */\r\n if (env.promise)\r\n return env.promise\r\n\r\n env.promise = new Promise((res, rej) => {\r\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\r\n .then((resPayload) => {\r\n env.form = env.form || createForm(resPayload as IFormProps<T>)\r\n render(true, (type: string) => {\r\n env.form.submit(async () => {\r\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\r\n res(toJS(env.form.values))\r\n formDialog.close()\r\n disposeDialog()\r\n }).catch(() => undefined)\n }, async () => {\r\n await loading(props.loadingText, () =>\r\n applyMiddleware(env.form, env.cancelMiddlewares))\r\n formDialog.close()\r\n disposeDialog()\r\n rej(new Error('cancel'))\r\n })\r\n })\r\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\r\n })\r\n return env.promise\r\n },\r\n close: () => {\r\n /* istanbul ignore if -- @preserve */\r\n if (!env.root)\r\n return\r\n render(false)\r\n },\r\n }\r\n if (isArr(dynamicMiddlewareNames)) {\r\n for (const middlewareName of dynamicMiddlewareNames) {\r\n const _middlewareName = camelCase(middlewareName)\r\n formDialog[`for${pascalCase(_middlewareName)}`] = (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env[`${_middlewareName}Middlewares`].push(middleware)\r\n return formDialog\r\n }\r\n }\r\n }\r\n\r\n return formDialog as IFormDialog<T>\r\n}\r\n\r\nexport default FormDialog\r\n"],"names":["props","__props","slots","_useSlots","prefixCls","stylePrefix","elConfig","loadElConfigProvider","_dialogProps","omit","internalSubmitting","useDebonceSubmitting","dialogRef","ref","enableEnterSubmit","computed","useEnterSubmit","resolveDialogElement","_openBlock","_createBlock","_unref","_mergeProps","done","isFn","_createVNode","FormProvider","_renderSlot","_ctx","_createElementVNode","_createElementBlock","_Fragment","ElButton","_cache","$event","_createTextVNode","_toDisplayString","FormDialog","title","content","dynamicMiddlewareNames","env","isArr","middlewareName","isStr","_middlewareName","camelCase","pascalCase","render","visible","resolve","reject","_content","isVueOptions","h","ComponentConstructor","observer","_","expose","DialogContent","createApp","disposeDialog","animationDuration","getTransitionDuration","formDialog","middleware","payload","res","rej","loading","applyMiddleware","resPayload","createForm","type","isValid","toJS","error"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/form-dialog/dialog-content.vue","../../src/form-dialog/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Form } from '@formily/core'\nimport type { ComponentPublicInstance, PropType } from 'vue'\nimport type { FormDialogSlots, IFormDialogProps } from './types'\nimport { isFn } from '@formily/shared'\nimport { FormProvider } from '@silver-formily/vue'\nimport { ElButton, ElConfigProvider, ElDialog } from 'element-plus'\nimport { omit } from 'lodash-es'\nimport { computed, ref } from 'vue'\nimport { loadElConfigProvider, stylePrefix, useDebonceSubmitting } from '../__builtins__'\nimport { useEnterSubmit } from '../__builtins__/shared/use-enter-submit'\nimport { resolveDialogElement } from '../shared/overlay-elements'\n\ndefineOptions({\n name: 'FormDialogContent',\n})\nconst props = defineProps({\n dialogProps: {\n type: Object as PropType<IFormDialogProps>,\n required: true,\n },\n visible: {\n type: Boolean,\n required: true,\n },\n form: {\n type: Object as PropType<Form>,\n required: true,\n },\n resolve: {\n type: Function as PropType<() => void>,\n required: true,\n },\n reject: {\n type: Function as PropType<() => void>,\n required: true,\n },\n})\n\nconst slots = defineSlots<FormDialogSlots>()\nconst prefixCls = `${stylePrefix}-form-dialog`\nconst elConfig = loadElConfigProvider()\nconst _dialogProps = omit(props.dialogProps, [\n 'modelValue',\n 'onUpdate:modelValue',\n 'beforeClose',\n 'enterSubmit',\n])\nconst { internalSubmitting } = useDebonceSubmitting(props.form)\nconst dialogRef = ref<ComponentPublicInstance | null>(null)\nconst enableEnterSubmit = computed(() => props.dialogProps.enterSubmit !== false)\n\nuseEnterSubmit({\n visible: computed(() => props.visible),\n resolve: () => props.resolve(),\n submitting: internalSubmitting,\n getContainer: () => resolveDialogElement(dialogRef.value),\n enabled: enableEnterSubmit,\n})\n</script>\n\n<template>\n <ElDialog\n ref=\"dialogRef\"\n :class=\"prefixCls\"\n :z-index=\"elConfig.zIndex\"\n v-bind=\"_dialogProps\"\n :model-value=\"visible\"\n :before-close=\"(done) => {\n reject()\n if (isFn(props.dialogProps.beforeClose)) {\n props.dialogProps.beforeClose(done)\n }\n else {\n done()\n }\n }\"\n >\n <template v-if=\"slots.header\" #header>\n <slot name=\"header\" :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\n </template>\n\n <template #default>\n <FormProvider :form=\"props.form\">\n <ElConfigProvider v-bind=\"elConfig\">\n <slot :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\n </ElConfigProvider>\n </FormProvider>\n </template>\n\n <template #footer>\n <div :class=\"`${prefixCls}-footer`\">\n <template v-if=\"slots.footer\">\n <slot name=\"footer\" :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\n </template>\n <template v-else>\n <ElButton\n v-bind=\"_dialogProps.cancelButtonProps\"\n @click=\"props.reject()\"\n >\n {{ _dialogProps.cancelText || '取消' }}\n </ElButton>\n <ElButton\n type=\"primary\"\n v-bind=\"_dialogProps.okButtonProps\"\n :loading=\"internalSubmitting\"\n @click=\"props.resolve()\"\n >\n {{ _dialogProps.okText || '确定' }}\n </ElButton>\n </template>\n </div>\n </template>\n </ElDialog>\n</template>\n","import type { Form, IFormProps } from '@formily/core'\r\nimport type { IMiddleware } from '@formily/shared'\r\nimport type { App, Component } from 'vue'\r\nimport type { FormDialogSlotContent, IFormDialog, IFormDialogProps } from './types'\r\nimport { createForm } from '@formily/core'\r\nimport { toJS } from '@formily/reactive'\r\nimport { applyMiddleware, isArr, isFn, isStr, isValid, pascalCase } from '@formily/shared'\r\nimport { observer } from '@silver-formily/reactive-vue'\r\nimport { camelCase } from 'lodash-es'\r\nimport { createApp, h, ref } from 'vue'\r\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\r\nimport DialogContent from './dialog-content.vue'\r\n\r\nexport function FormDialog<\n T extends object = any,\n const DynamicMiddlewareNames extends readonly string[] = [],\n>(\n title: IFormDialogProps | string,\n content?: Component | FormDialogSlotContent,\n dynamicMiddlewareNames?: DynamicMiddlewareNames,\n): IFormDialog<T, DynamicMiddlewareNames[number]> {\n const env: {\r\n root?: HTMLElement\r\n form?: Form<T>\r\n promise?: Promise<any>\r\n instance?: any\r\n app?: App<Element>\r\n openMiddlewares: IMiddleware<IFormProps<T>>[]\r\n confirmMiddlewares: IMiddleware<Form<T>>[]\r\n cancelMiddlewares: IMiddleware<Form<T>>[]\r\n [key: `${string}Middlewares`]: IMiddleware<Form<T>>[] | IMiddleware<IFormProps<T>>[] | undefined\r\n } = {\r\n root: document.createElement('div'),\r\n form: null,\r\n promise: null,\r\n app: null,\r\n instance: null,\r\n openMiddlewares: [],\r\n confirmMiddlewares: [],\r\n cancelMiddlewares: [],\r\n }\r\n\r\n if (isArr(dynamicMiddlewareNames)) {\r\n for (const middlewareName of dynamicMiddlewareNames) {\r\n /* istanbul ignore if -- @preserve */\r\n if (!isStr(middlewareName))\r\n return\r\n const _middlewareName = camelCase(middlewareName)\r\n /* istanbul ignore if -- @preserve */\r\n if (['open', 'cancel', 'confirm'].includes(_middlewareName)) {\r\n throw new Error(`for${pascalCase(_middlewareName)} is presved`)\r\n }\r\n (env[`${_middlewareName}Middlewares`] = [])\r\n }\r\n }\r\n\r\n document.body.append(env.root)\r\n\r\n const props = (isStr(title) ? ({ title }) : title) as IFormDialogProps\r\n\r\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\r\n const _content = isVueOptions(content)\r\n ? { default: () => h(content) }\r\n : content\r\n if (!env.instance) {\r\n const ComponentConstructor = observer({\r\n setup(_, { expose }) {\r\n const visible = ref(false)\r\n expose({\r\n visible,\r\n })\r\n return () => h(DialogContent, {\r\n dialogProps: props,\r\n form: env.form,\r\n resolve,\r\n reject,\r\n visible: visible.value,\r\n }, _content)\r\n },\r\n })\r\n env.app = createApp(ComponentConstructor)\r\n env.instance = env.app.mount(env.root)\r\n }\r\n env.instance.visible = visible\r\n }\r\n\r\n function disposeDialog() {\r\n const animationDuration = getTransitionDuration()\r\n setTimeout(() => {\r\n env.app?.unmount?.()\r\n env.app = null\r\n env.instance = null\r\n env.root?.remove()\r\n env.root = undefined\r\n }, animationDuration)\r\n }\r\n\r\n const formDialog = {\r\n forOpen: (middleware: IMiddleware<IFormProps<T>>) => {\r\n isFn(middleware) && env.openMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n forConfirm: (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env.confirmMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n forCancel: (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env.cancelMiddlewares.push(middleware)\r\n return formDialog\r\n },\r\n open: (payload: IFormProps<T>) => {\r\n /* istanbul ignore if -- @preserve */\r\n if (env.promise)\r\n return env.promise\r\n\r\n env.promise = new Promise((res, rej) => {\r\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\r\n .then((resPayload) => {\r\n env.form = env.form || createForm(resPayload as IFormProps<T>)\r\n render(true, (type: string) => {\r\n env.form.submit(async () => {\r\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\r\n res(toJS(env.form.values))\r\n formDialog.close()\r\n disposeDialog()\r\n }).catch(() => undefined)\n }, async () => {\r\n await loading(props.loadingText, () =>\r\n applyMiddleware(env.form, env.cancelMiddlewares))\r\n formDialog.close()\r\n disposeDialog()\r\n rej(new Error('cancel'))\r\n })\r\n })\r\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\r\n })\r\n return env.promise\r\n },\r\n close: () => {\r\n /* istanbul ignore if -- @preserve */\r\n if (!env.root)\r\n return\r\n render(false)\r\n },\r\n }\r\n if (isArr(dynamicMiddlewareNames)) {\r\n for (const middlewareName of dynamicMiddlewareNames) {\r\n const _middlewareName = camelCase(middlewareName)\r\n formDialog[`for${pascalCase(_middlewareName)}`] = (middleware: IMiddleware<Form<T>>) => {\r\n isFn(middleware) && env[`${_middlewareName}Middlewares`].push(middleware)\r\n return formDialog\r\n }\r\n }\r\n }\r\n\r\n return formDialog as IFormDialog<T, DynamicMiddlewareNames[number]>\n}\n\r\nexport default FormDialog\r\n"],"names":["props","__props","slots","_useSlots","prefixCls","stylePrefix","elConfig","loadElConfigProvider","_dialogProps","omit","internalSubmitting","useDebonceSubmitting","dialogRef","ref","enableEnterSubmit","computed","useEnterSubmit","resolveDialogElement","_openBlock","_createBlock","_unref","_mergeProps","done","isFn","_createVNode","FormProvider","_renderSlot","_ctx","_createElementVNode","_createElementBlock","_Fragment","ElButton","_cache","$event","_createTextVNode","_toDisplayString","FormDialog","title","content","dynamicMiddlewareNames","env","isArr","middlewareName","isStr","_middlewareName","camelCase","pascalCase","render","visible","resolve","reject","_content","isVueOptions","h","ComponentConstructor","observer","_","expose","DialogContent","createApp","disposeDialog","animationDuration","getTransitionDuration","formDialog","middleware","payload","res","rej","loading","applyMiddleware","resPayload","createForm","type","isValid","toJS","error"],"mappings":"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"}