@silver-formily/element-plus 3.0.3 → 4.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 (57) hide show
  1. package/README.en-US.md +3 -1
  2. package/README.md +3 -1
  3. package/esm/autocomplete/index.d.ts +41 -1
  4. package/esm/cascader/index.d.ts +31 -1
  5. package/esm/checkbox/index.d.ts +819 -1
  6. package/esm/color-picker/index.d.ts +210 -1
  7. package/esm/color-picker-panel/index.d.ts +130 -1
  8. package/esm/date-picker/index.d.ts +447 -1
  9. package/esm/date-picker-panel/index.d.ts +147 -1
  10. package/esm/editable/index.d.ts +60 -1
  11. package/esm/form-collapse/index.d.ts +3 -3
  12. package/esm/form-dialog/dialog-content.mjs +10 -12
  13. package/esm/form-dialog/dialog-content.mjs.map +1 -1
  14. package/esm/form-dialog/index.mjs +22 -26
  15. package/esm/form-dialog/index.mjs.map +1 -1
  16. package/esm/form-dialog/types.d.ts +0 -1
  17. package/esm/form-drawer/drawer-content.mjs +10 -12
  18. package/esm/form-drawer/drawer-content.mjs.map +1 -1
  19. package/esm/form-drawer/index.mjs +22 -26
  20. package/esm/form-drawer/index.mjs.map +1 -1
  21. package/esm/form-drawer/types.d.ts +0 -1
  22. package/esm/form-item/index.d.ts +83 -1
  23. package/esm/form-layout/form-layout.vue.d.ts +1 -1
  24. package/esm/index.d.ts +3 -1
  25. package/esm/index.mjs +2 -1
  26. package/esm/input/index.d.ts +43 -1
  27. package/esm/input-number/index.d.ts +328 -1
  28. package/esm/input-tag/index.d.ts +26 -1
  29. package/esm/mention/index.d.ts +36 -1
  30. package/esm/password/index.d.ts +42 -1
  31. package/esm/picker-select/index.d.ts +47 -0
  32. package/esm/picker-select/index.mjs +14 -0
  33. package/esm/picker-select/index.mjs.map +1 -0
  34. package/esm/picker-select/picker-select.mjs +186 -0
  35. package/esm/picker-select/picker-select.mjs.map +1 -0
  36. package/esm/picker-select/types.d.ts +23 -0
  37. package/esm/query-form-item/index.d.ts +152 -1
  38. package/esm/radio/index.d.ts +100 -46
  39. package/esm/rate/index.d.ts +186 -1
  40. package/esm/segmented/index.d.ts +28 -1
  41. package/esm/select/index.d.ts +112 -1
  42. package/esm/select-table/index.d.ts +61 -1
  43. package/esm/select-table/select-table.mjs +63 -29
  44. package/esm/select-table/select-table.mjs.map +1 -1
  45. package/esm/select-table/types.d.ts +22 -0
  46. package/esm/slider/index.d.ts +178 -1
  47. package/esm/switch/index.d.ts +298 -1
  48. package/esm/time-picker/index.d.ts +446 -1
  49. package/esm/time-select/index.d.ts +188 -1
  50. package/esm/transfer/index.d.ts +268 -1
  51. package/esm/tree/index.d.ts +45 -1
  52. package/esm/tree/types.d.ts +18 -0
  53. package/esm/tree-select/index.d.ts +19 -1
  54. package/esm/upload/index.d.ts +129 -1
  55. package/package.json +3 -3
  56. package/esm/shared/url-change-listener.mjs +0 -50
  57. package/esm/shared/url-change-listener.mjs.map +0 -1
@@ -1,10 +1,69 @@
1
1
  import { IFormItemProps } from "../form-item/types.js";
2
2
  import { ElPopover } from "element-plus";
3
+ import * as _$vue from "vue";
3
4
 
4
5
  //#region src/editable/index.d.ts
5
6
  type EditableProps = IFormItemProps;
6
7
  type EditablePopoverProps = typeof ElPopover;
7
- declare const Editable: any;
8
+ declare const Editable: {
9
+ new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<IFormItemProps & {
10
+ editProps?: IFormItemProps;
11
+ }> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {
12
+ size: "small" | "default" | "large";
13
+ feedbackLayout: "loose" | "terse" | "popover";
14
+ }, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
15
+ P: {};
16
+ B: {};
17
+ D: {};
18
+ C: {};
19
+ M: {};
20
+ Defaults: {};
21
+ }, Readonly<IFormItemProps & {
22
+ editProps?: IFormItemProps;
23
+ }> & Readonly<{}>, {}, {}, {}, {}, {
24
+ size: "small" | "default" | "large";
25
+ feedbackLayout: "loose" | "terse" | "popover";
26
+ }>;
27
+ __isFragment?: never;
28
+ __isTeleport?: never;
29
+ __isSuspense?: never;
30
+ } & _$vue.ComponentOptionsBase<Readonly<IFormItemProps & {
31
+ editProps?: IFormItemProps;
32
+ }> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {
33
+ size: "small" | "default" | "large";
34
+ feedbackLayout: "loose" | "terse" | "popover";
35
+ }, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & (new () => {
36
+ $slots: {
37
+ default?: (props: {}) => any;
38
+ };
39
+ }) & {
40
+ Popover: {
41
+ new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<IFormItemProps> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {
42
+ size: "small" | "default" | "large";
43
+ feedbackLayout: "loose" | "terse" | "popover";
44
+ }, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
45
+ P: {};
46
+ B: {};
47
+ D: {};
48
+ C: {};
49
+ M: {};
50
+ Defaults: {};
51
+ }, Readonly<IFormItemProps> & Readonly<{}>, {}, {}, {}, {}, {
52
+ size: "small" | "default" | "large";
53
+ feedbackLayout: "loose" | "terse" | "popover";
54
+ }>;
55
+ __isFragment?: never;
56
+ __isTeleport?: never;
57
+ __isSuspense?: never;
58
+ } & _$vue.ComponentOptionsBase<Readonly<IFormItemProps> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {
59
+ size: "small" | "default" | "large";
60
+ feedbackLayout: "loose" | "terse" | "popover";
61
+ }, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & (new () => {
62
+ $slots: {
63
+ default?: (props: {}) => any;
64
+ };
65
+ });
66
+ };
8
67
  //#endregion
9
68
  export { Editable, EditablePopoverProps, EditableProps };
10
69
  //# sourceMappingURL=index.d.ts.map
@@ -11,7 +11,7 @@ declare const composeFormCollapse: {
11
11
  type: _$vue.PropType<IFormCollapse>;
12
12
  };
13
13
  activeKey: {
14
- type: (NumberConstructor | StringConstructor)[];
14
+ type: (StringConstructor | NumberConstructor)[];
15
15
  };
16
16
  }>> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {}, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
17
17
  P: {};
@@ -25,7 +25,7 @@ declare const composeFormCollapse: {
25
25
  type: _$vue.PropType<IFormCollapse>;
26
26
  };
27
27
  activeKey: {
28
- type: (NumberConstructor | StringConstructor)[];
28
+ type: (StringConstructor | NumberConstructor)[];
29
29
  };
30
30
  }>> & Readonly<{}>, {}, {}, {}, {}, {}>;
31
31
  __isFragment?: never;
@@ -36,7 +36,7 @@ declare const composeFormCollapse: {
36
36
  type: _$vue.PropType<IFormCollapse>;
37
37
  };
38
38
  activeKey: {
39
- type: (NumberConstructor | StringConstructor)[];
39
+ type: (StringConstructor | NumberConstructor)[];
40
40
  };
41
41
  }>> & Readonly<{}>, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {}, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & {
42
42
  Item: _$vue.DefineComponent<{}, () => _$vue.VNode<_$vue.RendererNode, _$vue.RendererElement, {
@@ -4,7 +4,7 @@ import { stylePrefix } from "../__builtins__/configs/index.mjs";
4
4
  import { useEnterSubmit } from "../__builtins__/shared/use-enter-submit.mjs";
5
5
  import { resolveDialogElement } from "../shared/overlay-elements.mjs";
6
6
  import { ElButton, ElConfigProvider, ElDialog } from "element-plus";
7
- import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
7
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
8
8
  import { FormProvider } from "@silver-formily/vue";
9
9
  import { isFn } from "@formily/shared";
10
10
  import { omit } from "lodash-es";
@@ -68,7 +68,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
68
68
  if (unref(isFn)(props.dialogProps.beforeClose)) props.dialogProps.beforeClose(done);
69
69
  else done();
70
70
  }
71
- }), createSlots({
71
+ }), {
72
+ header: withCtx(() => [slots.header ? renderSlot(_ctx.$slots, "header", {
73
+ key: 0,
74
+ resolve: __props.resolve,
75
+ reject: __props.reject,
76
+ form: __props.form
77
+ }) : createCommentVNode("v-if", true)]),
72
78
  default: withCtx(() => [createVNode(unref(FormProvider), { form: props.form }, {
73
79
  default: withCtx(() => [createVNode(unref(ElConfigProvider), normalizeProps(guardReactiveProps(unref(elConfig))), {
74
80
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
@@ -95,16 +101,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
95
101
  default: withCtx(() => [createTextVNode(toDisplayString(unref(_dialogProps).okText || "确定"), 1)]),
96
102
  _: 1
97
103
  }, 16, ["loading"])], 64))], 2)]),
98
- _: 2
99
- }, [slots.header ? {
100
- name: "header",
101
- fn: withCtx(() => [renderSlot(_ctx.$slots, "header", {
102
- resolve: __props.resolve,
103
- reject: __props.reject,
104
- form: __props.form
105
- })]),
106
- key: "0"
107
- } : void 0]), 1040, [
104
+ _: 3
105
+ }, 16, [
108
106
  "z-index",
109
107
  "model-value",
110
108
  "before-close"
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-content.mjs","names":[],"sources":["../../src/form-dialog/dialog-content.vue"],"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<(type?: string) => 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,MAAM,QAAQ;EAuBd,MAAM,QAAQ,UAAA;EACd,MAAM,YAAY,GAAG,YAAY;EACjC,MAAM,WAAW,sBAAqB;EACtC,MAAM,eAAe,KAAK,MAAM,aAAa;GAC3C;GACA;GACA;GACA;GACD,CAAA;EACD,MAAM,EAAE,uBAAuB,qBAAqB,MAAM,KAAI;EAC9D,MAAM,YAAY,IAAoC,KAAI;EAC1D,MAAM,oBAAoB,eAAe,MAAM,YAAY,gBAAgB,MAAK;AAEhF,iBAAe;GACb,SAAS,eAAe,MAAM,QAAQ;GACtC,eAAe,MAAM,SAAS;GAC9B,YAAY;GACZ,oBAAoB,qBAAqB,UAAU,MAAM;GACzD,SAAS;GACV,CAAA;;uBAIC,YAmDW,MAAA,SAAA,EAnDX,WAmDW;aAlDL;IAAJ,KAAI;IACH,OAAO;IACP,WAAS,MAAA,SAAQ,CAAC;MACX,MAAA,aAAY,EAAA;IACnB,eAAa,QAAA;IACb,iBAAe,SAAI;AAAa,aAAA,QAAM;SAAa,MAAA,KAAI,CAAC,MAAM,YAAY,YAAW,CAAa,OAAM,YAAY,YAAY,KAAI;SAA+B,OAAI;;;IAc7J,SAAO,cAKD,CAJf,YAIe,MAAA,aAAA,EAAA,EAJA,MAAM,MAAM,MAAA,EAAA;4BAGN,CAFnB,YAEmB,MAAA,iBAAA,EAAA,eAAA,mBAFO,MAAA,SAAQ,CAAA,CAAA,EAAA;6BACyB,CAAzD,WAAyD,KAAA,QAAA,WAAA;OAAlD,SAAS,QAAA;OAAU,QAAQ,QAAA;OAAS,MAAM,QAAA;;;;;;IAK5C,QAAM,cAqBT,CApBN,mBAoBM,OAAA,EApBA,OAAK,eAAA,GAAK,UAAS,SAAA,EAAA,EAAA,CACP,MAAM,SACpB,WAAuE,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;uBAEjE,mBAeW,UAAA,EAAA,KAAA,GAAA,EAAA,CAdT,YAKW,MAAA,SAAA,EALX,WACU,MAIC,aAJW,CAAC,mBAAiB,EACrC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAM,QAAM,GAAA,CAAA,EAAA;4BAEiB,CAAA,gBAAA,gBAAlC,MAAA,aAAY,CAAC,cAAU,KAAA,EAAA,EAAA,CAAA,CAAA;;YAE5B,YAOW,MAAA,SAAA,EAPX,WAOW,EANT,MAAK,WAAS,EACN,MAAA,aAAY,CAAC,eAAa;KACjC,SAAS,MAAA,mBAAkB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAM,SAAO;;4BAEY,CAAA,gBAAA,gBAA9B,MAAA,aAAY,CAAC,UAAM,KAAA,EAAA,EAAA,CAAA,CAAA;;;;OA9Bd,MAAM,SAAA;UAAS;sBAC0C,CAAvE,WAAuE,KAAA,QAAA,UAAA;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA"}
1
+ {"version":3,"file":"dialog-content.mjs","names":[],"sources":["../../src/form-dialog/dialog-content.vue"],"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<(type?: string) => 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 #header>\n <slot v-if=\"slots.header\" 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,MAAM,QAAQ;EAuBd,MAAM,QAAQ,UAAA;EACd,MAAM,YAAY,GAAG,YAAY;EACjC,MAAM,WAAW,sBAAqB;EACtC,MAAM,eAAe,KAAK,MAAM,aAAa;GAC3C;GACA;GACA;GACA;GACD,CAAA;EACD,MAAM,EAAE,uBAAuB,qBAAqB,MAAM,KAAI;EAC9D,MAAM,YAAY,IAAoC,KAAI;EAC1D,MAAM,oBAAoB,eAAe,MAAM,YAAY,gBAAgB,MAAK;AAEhF,iBAAe;GACb,SAAS,eAAe,MAAM,QAAQ;GACtC,eAAe,MAAM,SAAS;GAC9B,YAAY;GACZ,oBAAoB,qBAAqB,UAAU,MAAM;GACzD,SAAS;GACV,CAAA;;uBAIC,YAmDW,MAAA,SAAA,EAnDX,WAmDW;aAlDL;IAAJ,KAAI;IACH,OAAO;IACP,WAAS,MAAA,SAAQ,CAAC;MACX,MAAA,aAAY,EAAA;IACnB,eAAa,QAAA;IACb,iBAAe,SAAI;AAAa,aAAA,QAAM;SAAa,MAAA,KAAI,CAAC,MAAM,YAAY,YAAW,CAAa,OAAM,YAAY,YAAY,KAAI;SAA+B,OAAI;;;IAU7J,QAAM,cAC4E,CAA/E,MAAM,SAAlB,WAA2F,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;;IAG1E,SAAO,cAKD,CAJf,YAIe,MAAA,aAAA,EAAA,EAJA,MAAM,MAAM,MAAA,EAAA;4BAGN,CAFnB,YAEmB,MAAA,iBAAA,EAAA,eAAA,mBAFO,MAAA,SAAQ,CAAA,CAAA,EAAA;6BACyB,CAAzD,WAAyD,KAAA,QAAA,WAAA;OAAlD,SAAS,QAAA;OAAU,QAAQ,QAAA;OAAS,MAAM,QAAA;;;;;;IAK5C,QAAM,cAqBT,CApBN,mBAoBM,OAAA,EApBA,OAAK,eAAA,GAAK,UAAS,SAAA,EAAA,EAAA,CACP,MAAM,SACpB,WAAuE,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;uBAEjE,mBAeW,UAAA,EAAA,KAAA,GAAA,EAAA,CAdT,YAKW,MAAA,SAAA,EALX,WACU,MAIC,aAJW,CAAC,mBAAiB,EACrC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAM,QAAM,GAAA,CAAA,EAAA;4BAEiB,CAAA,gBAAA,gBAAlC,MAAA,aAAY,CAAC,cAAU,KAAA,EAAA,EAAA,CAAA,CAAA;;YAE5B,YAOW,MAAA,SAAA,EAPX,WAOW,EANT,MAAK,WAAS,EACN,MAAA,aAAY,CAAC,eAAa;KACjC,SAAS,MAAA,mBAAkB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAM,SAAO;;4BAEY,CAAA,gBAAA,gBAA9B,MAAA,aAAY,CAAC,UAAM,KAAA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { getTransitionDuration, loading } from "../__builtins__/shared/loading.mjs";
2
2
  import { isVueOptions } from "../__builtins__/shared/utils.mjs";
3
- import { onUrlChange } from "../shared/url-change-listener.mjs";
4
3
  import _sfc_main from "./dialog-content.mjs";
5
4
  import { observer } from "@silver-formily/reactive-vue";
6
5
  import { createApp, h, ref } from "vue";
@@ -16,7 +15,6 @@ function FormDialog(title, content, dynamicMiddlewareNames) {
16
15
  promise: null,
17
16
  app: null,
18
17
  instance: null,
19
- stopUrlChangeListener: void 0,
20
18
  settled: false,
21
19
  openMiddlewares: [],
22
20
  confirmMiddlewares: [],
@@ -35,11 +33,7 @@ function FormDialog(title, content, dynamicMiddlewareNames) {
35
33
  env[`${_middlewareName}Middlewares`] = [];
36
34
  }
37
35
  document.body.append(env.root);
38
- const rawProps = isStr(title) ? { title } : title;
39
- const props = {
40
- ...rawProps,
41
- closeOnUrlChange: rawProps.closeOnUrlChange ?? true
42
- };
36
+ const props = isStr(title) ? { title } : title;
43
37
  function render(visible, resolve, reject) {
44
38
  const _content = isVueOptions(content) ? { default: () => h(content) } : isFn(content) ? { default: content } : content;
45
39
  if (!env.instance) {
@@ -59,8 +53,6 @@ function FormDialog(title, content, dynamicMiddlewareNames) {
59
53
  env.instance.visible = visible;
60
54
  }
61
55
  function disposeDialog() {
62
- env.stopUrlChangeListener?.();
63
- env.stopUrlChangeListener = void 0;
64
56
  const animationDuration = getTransitionDuration();
65
57
  setTimeout(() => {
66
58
  env.app?.unmount?.();
@@ -73,12 +65,26 @@ function FormDialog(title, content, dynamicMiddlewareNames) {
73
65
  async function rejectDialog(reject) {
74
66
  if (env.settled) return;
75
67
  env.settled = true;
76
- env.stopUrlChangeListener?.();
77
- env.stopUrlChangeListener = void 0;
78
- await loading(props.loadingText, () => applyMiddleware(env.form, env.cancelMiddlewares));
79
- render(false);
80
- disposeDialog();
81
- reject?.();
68
+ try {
69
+ await loading(props.loadingText, () => applyMiddleware(env.form, env.cancelMiddlewares));
70
+ render(false);
71
+ disposeDialog();
72
+ reject?.();
73
+ } catch {
74
+ env.settled = false;
75
+ }
76
+ }
77
+ async function submitDialog(type, resolve, close) {
78
+ if (env.settled) return;
79
+ env.settled = true;
80
+ try {
81
+ await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares));
82
+ resolve(toJS(env.form.values));
83
+ close();
84
+ disposeDialog();
85
+ } catch {
86
+ env.settled = false;
87
+ }
82
88
  }
83
89
  const formDialog = {
84
90
  forOpen: (middleware) => {
@@ -102,19 +108,9 @@ function FormDialog(title, content, dynamicMiddlewareNames) {
102
108
  env.form = env.form || createForm(resPayload);
103
109
  render(true, (type) => {
104
110
  env.form.submit(async () => {
105
- if (env.settled) return;
106
- env.settled = true;
107
- env.stopUrlChangeListener?.();
108
- env.stopUrlChangeListener = void 0;
109
- await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares));
110
- res(toJS(env.form.values));
111
- formDialog.close();
112
- disposeDialog();
111
+ await submitDialog(type, res, formDialog.close);
113
112
  }).catch(() => void 0);
114
113
  }, () => rejectDialog(() => rej(/* @__PURE__ */ new Error("cancel"))));
115
- if (props.closeOnUrlChange) env.stopUrlChangeListener = onUrlChange(() => {
116
- rejectDialog(() => rej(/* @__PURE__ */ new Error("cancel")));
117
- });
118
114
  }).catch(
119
115
  /* istanbul ignore next -- @preserve */
120
116
  (error) => rej(error)
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["DialogContent"],"sources":["../../src/form-dialog/index.ts"],"sourcesContent":["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'\nimport { camelCase } from 'lodash-es'\nimport { createApp, h, ref } from 'vue'\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\nimport { onUrlChange } from '../shared/url-change-listener'\nimport DialogContent from './dialog-content.vue'\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<T, DynamicMiddlewareNames[number]>,\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\n app?: App<Element>\n stopUrlChangeListener?: () => void\n settled?: boolean\n openMiddlewares: IMiddleware<IFormProps<T>>[]\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,\n instance: null,\n stopUrlChangeListener: undefined,\n settled: false,\n openMiddlewares: [],\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 rawProps = (isStr(title) ? { title } : title) as IFormDialogProps\n const props = {\n ...rawProps,\n closeOnUrlChange: rawProps.closeOnUrlChange ?? true,\n } as IFormDialogProps\n\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\n const _content = isVueOptions(content)\n ? { default: () => h(content) }\n : isFn(content)\n ? { default: content }\n : content\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() {\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n const animationDuration = getTransitionDuration()\n setTimeout(() => {\n env.app?.unmount?.()\n env.app = null\r\n env.instance = null\r\n env.root?.remove()\r\n env.root = undefined\n }, animationDuration)\n }\n\n async function rejectDialog(reject?: () => any) {\n if (env.settled)\n return\n\n env.settled = true\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n await loading(props.loadingText, () =>\n applyMiddleware(env.form, env.cancelMiddlewares))\n render(false)\n disposeDialog()\n reject?.()\n }\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>) => {\n /* istanbul ignore if -- @preserve */\n if (env.promise)\n return env.promise\n\n env.settled = false\n env.promise = new Promise((res, rej) => {\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\n .then((resPayload) => {\n env.form = env.form || createForm(resPayload as IFormProps<T>)\n render(true, (type: string) => {\n env.form.submit(async () => {\n if (env.settled)\n return\n\n env.settled = true\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\n res(toJS(env.form.values))\n formDialog.close()\n disposeDialog()\n }).catch(() => undefined)\n }, () => rejectDialog(() => rej(new Error('cancel'))))\n if (props.closeOnUrlChange) {\n env.stopUrlChangeListener = onUrlChange(() => {\n void rejectDialog(() => rej(new Error('cancel')))\n })\n }\n })\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\n })\n return env.promise\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"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["DialogContent"],"sources":["../../src/form-dialog/index.ts"],"sourcesContent":["import type { Form, IFormProps } from '@formily/core'\nimport type { IMiddleware } from '@formily/shared'\nimport type { App, Component } from 'vue'\nimport type { FormDialogSlotContent, IFormDialog, IFormDialogProps } from './types'\nimport { createForm } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { applyMiddleware, isArr, isFn, isStr, isValid, pascalCase } from '@formily/shared'\nimport { observer } from '@silver-formily/reactive-vue'\nimport { camelCase } from 'lodash-es'\nimport { createApp, h, ref } from 'vue'\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\nimport DialogContent from './dialog-content.vue'\n\nexport function FormDialog<\n T extends object = any,\n const DynamicMiddlewareNames extends readonly string[] = [],\n>(\n title: IFormDialogProps | string,\n content?: Component | FormDialogSlotContent<T, DynamicMiddlewareNames[number]>,\n dynamicMiddlewareNames?: DynamicMiddlewareNames,\n): IFormDialog<T, DynamicMiddlewareNames[number]> {\n const env: {\n root?: HTMLElement\n form?: Form<T>\n promise?: Promise<any>\n instance?: any\n app?: App<Element>\n settled?: boolean\n openMiddlewares: IMiddleware<IFormProps<T>>[]\n confirmMiddlewares: IMiddleware<Form<T>>[]\n cancelMiddlewares: IMiddleware<Form<T>>[]\n [key: `${string}Middlewares`]: IMiddleware<Form<T>>[] | IMiddleware<IFormProps<T>>[] | undefined\n } = {\n root: document.createElement('div'),\n form: null,\n promise: null,\n app: null,\n instance: null,\n settled: false,\n openMiddlewares: [],\n confirmMiddlewares: [],\n cancelMiddlewares: [],\n }\n\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n /* istanbul ignore if -- @preserve */\n if (!isStr(middlewareName))\n return\n const _middlewareName = camelCase(middlewareName)\n /* istanbul ignore if -- @preserve */\n if (['open', 'cancel', 'confirm'].includes(_middlewareName)) {\n throw new Error(`for${pascalCase(_middlewareName)} is presved`)\n }\n (env[`${_middlewareName}Middlewares`] = [])\n }\n }\n\n document.body.append(env.root)\n\n const props = (isStr(title) ? { title } : title) as IFormDialogProps\n\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\n const _content = isVueOptions(content)\n ? { default: () => h(content) }\n : isFn(content)\n ? { default: content }\n : content\n if (!env.instance) {\n const ComponentConstructor = observer({\n setup(_, { expose }) {\n const visible = ref(false)\n expose({\n visible,\n })\n return () => h(DialogContent, {\n dialogProps: props,\n form: env.form,\n resolve,\n reject,\n visible: visible.value,\n }, _content)\n },\n })\n env.app = createApp(ComponentConstructor)\n env.instance = env.app.mount(env.root)\n }\n env.instance.visible = visible\n }\n\n function disposeDialog() {\n const animationDuration = getTransitionDuration()\n setTimeout(() => {\n env.app?.unmount?.()\n env.app = null\n env.instance = null\n env.root?.remove()\n env.root = undefined\n }, animationDuration)\n }\n\n async function rejectDialog(reject?: () => any) {\n if (env.settled)\n return\n\n env.settled = true\n\n try {\n await loading(props.loadingText, () =>\n applyMiddleware(env.form, env.cancelMiddlewares))\n render(false)\n disposeDialog()\n reject?.()\n }\n catch {\n env.settled = false\n }\n }\n\n async function submitDialog(type: string | undefined, resolve: (payload: any) => void, close: () => void) {\n if (env.settled)\n return\n\n env.settled = true\n\n try {\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\n resolve(toJS(env.form.values))\n close()\n disposeDialog()\n }\n catch {\n env.settled = false\n }\n }\n\n const formDialog = {\n forOpen: (middleware: IMiddleware<IFormProps<T>>) => {\n isFn(middleware) && env.openMiddlewares.push(middleware)\n return formDialog\n },\n forConfirm: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.confirmMiddlewares.push(middleware)\n return formDialog\n },\n forCancel: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.cancelMiddlewares.push(middleware)\n return formDialog\n },\n open: (payload: IFormProps<T>) => {\n /* istanbul ignore if -- @preserve */\n if (env.promise)\n return env.promise\n\n env.settled = false\n env.promise = new Promise((res, rej) => {\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\n .then((resPayload) => {\n env.form = env.form || createForm(resPayload as IFormProps<T>)\n render(true, (type: string) => {\n env.form.submit(async () => {\n await submitDialog(type, res, formDialog.close)\n }).catch(() => undefined)\n }, () => rejectDialog(() => rej(new Error('cancel'))))\n })\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\n })\n return env.promise\n },\n close: () => {\n /* istanbul ignore if -- @preserve */\n if (!env.root)\n return\n render(false)\n },\n }\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n const _middlewareName = camelCase(middlewareName)\n formDialog[`for${pascalCase(_middlewareName)}`] = (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env[`${_middlewareName}Middlewares`].push(middleware)\n return formDialog\n }\n }\n }\n\n return formDialog as IFormDialog<T, DynamicMiddlewareNames[number]>\n}\n\nexport default FormDialog\n"],"mappings":";;;;;;;;;;AAaA,SAAgB,WAId,OACA,SACA,wBACgD;CAChD,MAAM,MAWF;EACF,MAAM,SAAS,cAAc,MAAM;EACnC,MAAM;EACN,SAAS;EACT,KAAK;EACL,UAAU;EACV,SAAS;EACT,iBAAiB,EAAE;EACnB,oBAAoB,EAAE;EACtB,mBAAmB,EAAE;EACtB;AAED,KAAI,MAAM,uBAAuB,CAC/B,MAAK,MAAM,kBAAkB,wBAAwB;;AAEnD,MAAI,CAAC,MAAM,eAAe,CACxB;EACF,MAAM,kBAAkB,UAAU,eAAe;;AAEjD,MAAI;GAAC;GAAQ;GAAU;GAAU,CAAC,SAAS,gBAAgB,CACzD,OAAM,IAAI,MAAM,MAAM,WAAW,gBAAgB,CAAC,aAAa;AAEhE,MAAI,GAAG,gBAAgB,gBAAgB,EAAE;;AAI9C,UAAS,KAAK,OAAO,IAAI,KAAK;CAE9B,MAAM,QAAS,MAAM,MAAM,GAAG,EAAE,OAAO,GAAG;CAE1C,SAAS,OAAO,SAAkB,SAAkC,QAAoB;EACtF,MAAM,WAAW,aAAa,QAAQ,GAClC,EAAE,eAAe,EAAE,QAAQ,EAAE,GAC7B,KAAK,QAAQ,GACX,EAAE,SAAS,SAAS,GACpB;AACN,MAAI,CAAC,IAAI,UAAU;AAgBjB,OAAI,MAAM,UAfmB,SAAS,EACpC,MAAM,GAAG,EAAE,UAAU;IACnB,MAAM,UAAU,IAAI,MAAM;AAC1B,WAAO,EACL,SACD,CAAC;AACF,iBAAa,EAAEA,WAAe;KAC5B,aAAa;KACb,MAAM,IAAI;KACV;KACA;KACA,SAAS,QAAQ;KAClB,EAAE,SAAS;MAEf,CAAC,CACuC;AACzC,OAAI,WAAW,IAAI,IAAI,MAAM,IAAI,KAAK;;AAExC,MAAI,SAAS,UAAU;;CAGzB,SAAS,gBAAgB;EACvB,MAAM,oBAAoB,uBAAuB;AACjD,mBAAiB;AACf,OAAI,KAAK,WAAW;AACpB,OAAI,MAAM;AACV,OAAI,WAAW;AACf,OAAI,MAAM,QAAQ;AAClB,OAAI,OAAO,KAAA;KACV,kBAAkB;;CAGvB,eAAe,aAAa,QAAoB;AAC9C,MAAI,IAAI,QACN;AAEF,MAAI,UAAU;AAEd,MAAI;AACF,SAAM,QAAQ,MAAM,mBAClB,gBAAgB,IAAI,MAAM,IAAI,kBAAkB,CAAC;AACnD,UAAO,MAAM;AACb,kBAAe;AACf,aAAU;UAEN;AACJ,OAAI,UAAU;;;CAIlB,eAAe,aAAa,MAA0B,SAAiC,OAAmB;AACxG,MAAI,IAAI,QACN;AAEF,MAAI,UAAU;AAEd,MAAI;AACF,UAAO,QAAQ,KAAK,GAAG,gBAAgB,IAAI,MAAM,IAAI,GAAG,KAAK,cAAc,GAAG,gBAAgB,IAAI,MAAM,IAAI,mBAAmB;AAC/H,WAAQ,KAAK,IAAI,KAAK,OAAO,CAAC;AAC9B,UAAO;AACP,kBAAe;UAEX;AACJ,OAAI,UAAU;;;CAIlB,MAAM,aAAa;EACjB,UAAU,eAA2C;AACnD,QAAK,WAAW,IAAI,IAAI,gBAAgB,KAAK,WAAW;AACxD,UAAO;;EAET,aAAa,eAAqC;AAChD,QAAK,WAAW,IAAI,IAAI,mBAAmB,KAAK,WAAW;AAC3D,UAAO;;EAET,YAAY,eAAqC;AAC/C,QAAK,WAAW,IAAI,IAAI,kBAAkB,KAAK,WAAW;AAC1D,UAAO;;EAET,OAAO,YAA2B;;AAEhC,OAAI,IAAI,QACN,QAAO,IAAI;AAEb,OAAI,UAAU;AACd,OAAI,UAAU,IAAI,SAAS,KAAK,QAAQ;AACtC,YAAQ,MAAM,mBAAmB,gBAAgB,SAAS,IAAI,gBAAgB,CAAC,CAC5E,MAAM,eAAe;AACpB,SAAI,OAAO,IAAI,QAAQ,WAAW,WAA4B;AAC9D,YAAO,OAAO,SAAiB;AAC7B,UAAI,KAAK,OAAO,YAAY;AAC1B,aAAM,aAAa,MAAM,KAAK,WAAW,MAAM;QAC/C,CAAC,YAAY,KAAA,EAAU;cAClB,mBAAmB,oBAAI,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC;MACtD,CACD;;MAA8C,UAAS,IAAI,MAAM;KAAC;KACrE;AACF,UAAO,IAAI;;EAEb,aAAa;;AAEX,OAAI,CAAC,IAAI,KACP;AACF,UAAO,MAAM;;EAEhB;AACD,KAAI,MAAM,uBAAuB,CAC/B,MAAK,MAAM,kBAAkB,wBAAwB;EACnD,MAAM,kBAAkB,UAAU,eAAe;AACjD,aAAW,MAAM,WAAW,gBAAgB,OAAO,eAAqC;AACtF,QAAK,WAAW,IAAI,IAAI,GAAG,gBAAgB,cAAc,KAAK,WAAW;AACzE,UAAO;;;AAKb,QAAO"}
@@ -11,7 +11,6 @@ type IFormDialogProps = Partial<DialogProps> & {
11
11
  okButtonProps?: ButtonProps;
12
12
  loadingText?: string;
13
13
  enterSubmit?: boolean;
14
- closeOnUrlChange?: boolean;
15
14
  };
16
15
  interface FormDialogResolve {
17
16
  (type?: string): void;
@@ -4,7 +4,7 @@ import { stylePrefix } from "../__builtins__/configs/index.mjs";
4
4
  import { useEnterSubmit } from "../__builtins__/shared/use-enter-submit.mjs";
5
5
  import { resolveDrawerElement } from "../shared/overlay-elements.mjs";
6
6
  import { ElButton, ElConfigProvider, ElDrawer } from "element-plus";
7
- import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
7
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, toDisplayString, unref, useSlots, withCtx } from "vue";
8
8
  import { FormProvider } from "@silver-formily/vue";
9
9
  import { isFn } from "@formily/shared";
10
10
  import { omit } from "lodash-es";
@@ -68,7 +68,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
68
68
  if (unref(isFn)(props.drawerProps.beforeClose)) props.drawerProps.beforeClose(done);
69
69
  else done();
70
70
  }
71
- }), createSlots({
71
+ }), {
72
+ header: withCtx(() => [slots.header ? renderSlot(_ctx.$slots, "header", {
73
+ key: 0,
74
+ resolve: __props.resolve,
75
+ reject: __props.reject,
76
+ form: __props.form
77
+ }) : createCommentVNode("v-if", true)]),
72
78
  default: withCtx(() => [createVNode(unref(FormProvider), { form: __props.form }, {
73
79
  default: withCtx(() => [createVNode(unref(ElConfigProvider), normalizeProps(guardReactiveProps(unref(elConfig))), {
74
80
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
@@ -95,16 +101,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
95
101
  default: withCtx(() => [createTextVNode(toDisplayString(unref(_drawerProps).okText || "确定"), 1)]),
96
102
  _: 1
97
103
  }, 16, ["loading"])], 64))], 2)]),
98
- _: 2
99
- }, [slots.header ? {
100
- name: "header",
101
- fn: withCtx(() => [renderSlot(_ctx.$slots, "header", {
102
- resolve: __props.resolve,
103
- reject: __props.reject,
104
- form: __props.form
105
- })]),
106
- key: "0"
107
- } : void 0]), 1040, [
104
+ _: 3
105
+ }, 16, [
108
106
  "z-index",
109
107
  "model-value",
110
108
  "before-close"
@@ -1 +1 @@
1
- {"version":3,"file":"drawer-content.mjs","names":[],"sources":["../../src/form-drawer/drawer-content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Form } from '@formily/core'\nimport type { ComponentPublicInstance, PropType } from 'vue'\nimport type { FormDrawerSlots, IFormDrawerProps } from './types'\nimport { isFn } from '@formily/shared'\nimport { FormProvider } from '@silver-formily/vue'\nimport { ElButton, ElConfigProvider, ElDrawer } 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 { resolveDrawerElement } from '../shared/overlay-elements'\n\ndefineOptions({\n name: 'FormDrawerContent',\n})\n\nconst props = defineProps({\n drawerProps: {\n type: Object as PropType<IFormDrawerProps>,\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<(type?: string) => void>,\n required: true,\n },\n reject: {\n type: Function as PropType<() => void>,\n required: true,\n },\n})\nconst slots = defineSlots<FormDrawerSlots>()\nconst prefixCls = `${stylePrefix}-form-drawer`\nconst elConfig = loadElConfigProvider()\n\nconst { internalSubmitting } = useDebonceSubmitting(props.form)\nconst _drawerProps = omit(props.drawerProps, ['modelValue', 'onUpdate:modelValue', 'beforeClose', 'enterSubmit'])\nconst drawerRef = ref<ComponentPublicInstance | null>(null)\nconst enableEnterSubmit = computed(() => props.drawerProps.enterSubmit !== false)\n\nuseEnterSubmit({\n visible: computed(() => props.visible),\n resolve: () => props.resolve(),\n submitting: internalSubmitting,\n getContainer: () => resolveDrawerElement(drawerRef.value),\n enabled: enableEnterSubmit,\n})\n</script>\n\n<template>\n <ElDrawer\n ref=\"drawerRef\"\n :class=\"prefixCls\"\n :z-index=\"elConfig.zIndex\"\n v-bind=\"_drawerProps\"\n :model-value=\"visible\"\n :before-close=\"(done) => {\n reject()\n if (isFn(props.drawerProps.beforeClose)) {\n props.drawerProps.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=\"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=\"_drawerProps.cancelButtonProps\"\n @click=\"reject()\"\n >\n {{ _drawerProps.cancelText || '取消' }}\n </ElButton>\n <ElButton\n type=\"primary\"\n v-bind=\"_drawerProps.okButtonProps\"\n :loading=\"internalSubmitting\"\n @click=\"resolve()\"\n >\n {{ _drawerProps.okText || '确定' }}\n </ElButton>\n </template>\n </div>\n </template>\n </ElDrawer>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBA,MAAM,QAAQ;EAsBd,MAAM,QAAQ,UAAA;EACd,MAAM,YAAY,GAAG,YAAY;EACjC,MAAM,WAAW,sBAAqB;EAEtC,MAAM,EAAE,uBAAuB,qBAAqB,MAAM,KAAI;EAC9D,MAAM,eAAe,KAAK,MAAM,aAAa;GAAC;GAAc;GAAuB;GAAe;GAAc,CAAA;EAChH,MAAM,YAAY,IAAoC,KAAI;EAC1D,MAAM,oBAAoB,eAAe,MAAM,YAAY,gBAAgB,MAAK;AAEhF,iBAAe;GACb,SAAS,eAAe,MAAM,QAAQ;GACtC,eAAe,MAAM,SAAS;GAC9B,YAAY;GACZ,oBAAoB,qBAAqB,UAAU,MAAM;GACzD,SAAS;GACV,CAAA;;uBAIC,YAmDW,MAAA,SAAA,EAnDX,WAmDW;aAlDL;IAAJ,KAAI;IACH,OAAO;IACP,WAAS,MAAA,SAAQ,CAAC;MACX,MAAA,aAAY,EAAA;IACnB,eAAa,QAAA;IACb,iBAAe,SAAI;AAAa,aAAA,QAAM;SAAa,MAAA,KAAI,CAAC,MAAM,YAAY,YAAW,CAAa,OAAM,YAAY,YAAY,KAAI;SAA+B,OAAI;;;IAc7J,SAAO,cAKD,CAJf,YAIe,MAAA,aAAA,EAAA,EAJA,MAAM,QAAA,MAAI,EAAA;4BAGJ,CAFnB,YAEmB,MAAA,iBAAA,EAAA,eAAA,mBAFO,MAAA,SAAQ,CAAA,CAAA,EAAA;6BACyB,CAAzD,WAAyD,KAAA,QAAA,WAAA;OAAlD,SAAS,QAAA;OAAU,QAAQ,QAAA;OAAS,MAAM,QAAA;;;;;;IAK5C,QAAM,cAqBT,CApBN,mBAoBM,OAAA,EApBA,OAAK,eAAA,GAAK,UAAS,SAAA,EAAA,EAAA,CACP,MAAM,SACpB,WAAuE,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;uBAEjE,mBAeW,UAAA,EAAA,KAAA,GAAA,EAAA,CAdT,YAKW,MAAA,SAAA,EALX,WACU,MAIC,aAJW,CAAC,mBAAiB,EACrC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,QAAM,GAAA,CAAA,EAAA;4BAEuB,CAAA,gBAAA,gBAAlC,MAAA,aAAY,CAAC,cAAU,KAAA,EAAA,EAAA,CAAA,CAAA;;YAE5B,YAOW,MAAA,SAAA,EAPX,WAOW,EANT,MAAK,WAAS,EACN,MAAA,aAAY,CAAC,eAAa;KACjC,SAAS,MAAA,mBAAkB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,SAAO;;4BAEkB,CAAA,gBAAA,gBAA9B,MAAA,aAAY,CAAC,UAAM,KAAA,EAAA,EAAA,CAAA,CAAA;;;;OA9Bd,MAAM,SAAA;UAAS;sBAC0C,CAAvE,WAAuE,KAAA,QAAA,UAAA;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA"}
1
+ {"version":3,"file":"drawer-content.mjs","names":[],"sources":["../../src/form-drawer/drawer-content.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Form } from '@formily/core'\nimport type { ComponentPublicInstance, PropType } from 'vue'\nimport type { FormDrawerSlots, IFormDrawerProps } from './types'\nimport { isFn } from '@formily/shared'\nimport { FormProvider } from '@silver-formily/vue'\nimport { ElButton, ElConfigProvider, ElDrawer } 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 { resolveDrawerElement } from '../shared/overlay-elements'\n\ndefineOptions({\n name: 'FormDrawerContent',\n})\n\nconst props = defineProps({\n drawerProps: {\n type: Object as PropType<IFormDrawerProps>,\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<(type?: string) => void>,\n required: true,\n },\n reject: {\n type: Function as PropType<() => void>,\n required: true,\n },\n})\nconst slots = defineSlots<FormDrawerSlots>()\nconst prefixCls = `${stylePrefix}-form-drawer`\nconst elConfig = loadElConfigProvider()\n\nconst { internalSubmitting } = useDebonceSubmitting(props.form)\nconst _drawerProps = omit(props.drawerProps, ['modelValue', 'onUpdate:modelValue', 'beforeClose', 'enterSubmit'])\nconst drawerRef = ref<ComponentPublicInstance | null>(null)\nconst enableEnterSubmit = computed(() => props.drawerProps.enterSubmit !== false)\n\nuseEnterSubmit({\n visible: computed(() => props.visible),\n resolve: () => props.resolve(),\n submitting: internalSubmitting,\n getContainer: () => resolveDrawerElement(drawerRef.value),\n enabled: enableEnterSubmit,\n})\n</script>\n\n<template>\n <ElDrawer\n ref=\"drawerRef\"\n :class=\"prefixCls\"\n :z-index=\"elConfig.zIndex\"\n v-bind=\"_drawerProps\"\n :model-value=\"visible\"\n :before-close=\"(done) => {\n reject()\n if (isFn(props.drawerProps.beforeClose)) {\n props.drawerProps.beforeClose(done)\n }\n else {\n done()\n }\n }\"\n >\n <template #header>\n <slot v-if=\"slots.header\" name=\"header\" :resolve=\"resolve\" :reject=\"reject\" :form=\"form\" />\n </template>\n\n <template #default>\n <FormProvider :form=\"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=\"_drawerProps.cancelButtonProps\"\n @click=\"reject()\"\n >\n {{ _drawerProps.cancelText || '取消' }}\n </ElButton>\n <ElButton\n type=\"primary\"\n v-bind=\"_drawerProps.okButtonProps\"\n :loading=\"internalSubmitting\"\n @click=\"resolve()\"\n >\n {{ _drawerProps.okText || '确定' }}\n </ElButton>\n </template>\n </div>\n </template>\n </ElDrawer>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBA,MAAM,QAAQ;EAsBd,MAAM,QAAQ,UAAA;EACd,MAAM,YAAY,GAAG,YAAY;EACjC,MAAM,WAAW,sBAAqB;EAEtC,MAAM,EAAE,uBAAuB,qBAAqB,MAAM,KAAI;EAC9D,MAAM,eAAe,KAAK,MAAM,aAAa;GAAC;GAAc;GAAuB;GAAe;GAAc,CAAA;EAChH,MAAM,YAAY,IAAoC,KAAI;EAC1D,MAAM,oBAAoB,eAAe,MAAM,YAAY,gBAAgB,MAAK;AAEhF,iBAAe;GACb,SAAS,eAAe,MAAM,QAAQ;GACtC,eAAe,MAAM,SAAS;GAC9B,YAAY;GACZ,oBAAoB,qBAAqB,UAAU,MAAM;GACzD,SAAS;GACV,CAAA;;uBAIC,YAmDW,MAAA,SAAA,EAnDX,WAmDW;aAlDL;IAAJ,KAAI;IACH,OAAO;IACP,WAAS,MAAA,SAAQ,CAAC;MACX,MAAA,aAAY,EAAA;IACnB,eAAa,QAAA;IACb,iBAAe,SAAI;AAAa,aAAA,QAAM;SAAa,MAAA,KAAI,CAAC,MAAM,YAAY,YAAW,CAAa,OAAM,YAAY,YAAY,KAAI;SAA+B,OAAI;;;IAU7J,QAAM,cAC4E,CAA/E,MAAM,SAAlB,WAA2F,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;;IAG1E,SAAO,cAKD,CAJf,YAIe,MAAA,aAAA,EAAA,EAJA,MAAM,QAAA,MAAI,EAAA;4BAGJ,CAFnB,YAEmB,MAAA,iBAAA,EAAA,eAAA,mBAFO,MAAA,SAAQ,CAAA,CAAA,EAAA;6BACyB,CAAzD,WAAyD,KAAA,QAAA,WAAA;OAAlD,SAAS,QAAA;OAAU,QAAQ,QAAA;OAAS,MAAM,QAAA;;;;;;IAK5C,QAAM,cAqBT,CApBN,mBAoBM,OAAA,EApBA,OAAK,eAAA,GAAK,UAAS,SAAA,EAAA,EAAA,CACP,MAAM,SACpB,WAAuE,KAAA,QAAA,UAAA;;KAAlD,SAAS,QAAA;KAAU,QAAQ,QAAA;KAAS,MAAM,QAAA;uBAEjE,mBAeW,UAAA,EAAA,KAAA,GAAA,EAAA,CAdT,YAKW,MAAA,SAAA,EALX,WACU,MAIC,aAJW,CAAC,mBAAiB,EACrC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,QAAM,GAAA,CAAA,EAAA;4BAEuB,CAAA,gBAAA,gBAAlC,MAAA,aAAY,CAAC,cAAU,KAAA,EAAA,EAAA,CAAA,CAAA;;YAE5B,YAOW,MAAA,SAAA,EAPX,WAOW,EANT,MAAK,WAAS,EACN,MAAA,aAAY,CAAC,eAAa;KACjC,SAAS,MAAA,mBAAkB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,SAAO;;4BAEkB,CAAA,gBAAA,gBAA9B,MAAA,aAAY,CAAC,UAAM,KAAA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { getTransitionDuration, loading } from "../__builtins__/shared/loading.mjs";
2
2
  import { isVueOptions } from "../__builtins__/shared/utils.mjs";
3
- import { onUrlChange } from "../shared/url-change-listener.mjs";
4
3
  import _sfc_main from "./drawer-content.mjs";
5
4
  import { observer } from "@silver-formily/reactive-vue";
6
5
  import { createApp, h, ref } from "vue";
@@ -16,7 +15,6 @@ function FormDrawer(title, content, dynamicMiddlewareNames) {
16
15
  promise: null,
17
16
  app: null,
18
17
  instance: null,
19
- stopUrlChangeListener: void 0,
20
18
  settled: false,
21
19
  openMiddlewares: [],
22
20
  confirmMiddlewares: [],
@@ -35,11 +33,7 @@ function FormDrawer(title, content, dynamicMiddlewareNames) {
35
33
  env[`${_middlewareName}Middlewares`] = [];
36
34
  }
37
35
  document.body.append(env.root);
38
- const rawProps = isStr(title) ? { title } : title;
39
- const props = {
40
- ...rawProps,
41
- closeOnUrlChange: rawProps.closeOnUrlChange ?? true
42
- };
36
+ const props = isStr(title) ? { title } : title;
43
37
  function render(visible, resolve, reject) {
44
38
  const _content = isVueOptions(content) ? { default: () => h(content) } : isFn(content) ? { default: content } : content;
45
39
  if (!env.instance) {
@@ -59,8 +53,6 @@ function FormDrawer(title, content, dynamicMiddlewareNames) {
59
53
  env.instance.visible = visible;
60
54
  }
61
55
  function disposeDrawer() {
62
- env.stopUrlChangeListener?.();
63
- env.stopUrlChangeListener = void 0;
64
56
  const animationDuration = getTransitionDuration();
65
57
  setTimeout(() => {
66
58
  env.app?.unmount?.();
@@ -73,12 +65,26 @@ function FormDrawer(title, content, dynamicMiddlewareNames) {
73
65
  async function rejectDrawer(reject) {
74
66
  if (env.settled) return;
75
67
  env.settled = true;
76
- env.stopUrlChangeListener?.();
77
- env.stopUrlChangeListener = void 0;
78
- await loading(props.loadingText, () => applyMiddleware(env.form, env.cancelMiddlewares));
79
- render(false);
80
- disposeDrawer();
81
- reject?.();
68
+ try {
69
+ await loading(props.loadingText, () => applyMiddleware(env.form, env.cancelMiddlewares));
70
+ render(false);
71
+ disposeDrawer();
72
+ reject?.();
73
+ } catch {
74
+ env.settled = false;
75
+ }
76
+ }
77
+ async function submitDrawer(type, resolve, close) {
78
+ if (env.settled) return;
79
+ env.settled = true;
80
+ try {
81
+ await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares));
82
+ resolve(toJS(env.form.values));
83
+ close();
84
+ disposeDrawer();
85
+ } catch {
86
+ env.settled = false;
87
+ }
82
88
  }
83
89
  const formDrawer = {
84
90
  forOpen: (middleware) => {
@@ -102,19 +108,9 @@ function FormDrawer(title, content, dynamicMiddlewareNames) {
102
108
  env.form = env.form || createForm(resPayload);
103
109
  render(true, (type) => {
104
110
  env.form.submit(async () => {
105
- if (env.settled) return;
106
- env.settled = true;
107
- env.stopUrlChangeListener?.();
108
- env.stopUrlChangeListener = void 0;
109
- await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares));
110
- res(toJS(env.form.values));
111
- formDrawer.close();
112
- disposeDrawer();
111
+ await submitDrawer(type, res, formDrawer.close);
113
112
  }).catch(() => void 0);
114
113
  }, () => rejectDrawer(() => rej(/* @__PURE__ */ new Error("cancel"))));
115
- if (props.closeOnUrlChange) env.stopUrlChangeListener = onUrlChange(() => {
116
- rejectDrawer(() => rej(/* @__PURE__ */ new Error("cancel")));
117
- });
118
114
  }).catch(
119
115
  /* istanbul ignore next -- @preserve */
120
116
  (error) => rej(error)
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["DrawerContent"],"sources":["../../src/form-drawer/index.ts"],"sourcesContent":["import type { Form, IFormProps } from '@formily/core'\nimport type { IMiddleware } from '@formily/shared'\nimport type { App, Component } from 'vue'\nimport type { FormDrawerSlotContent, IFormDrawer, IFormDrawerProps } from './types'\nimport { createForm } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { applyMiddleware, isArr, isFn, isStr, isValid, pascalCase } from '@formily/shared'\nimport { observer } from '@silver-formily/reactive-vue'\nimport { camelCase } from 'lodash-es'\nimport { createApp, h, ref } from 'vue'\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\nimport { onUrlChange } from '../shared/url-change-listener'\nimport DrawerContent from './drawer-content.vue'\n\nexport function FormDrawer<\n T extends object = any,\n const DynamicMiddlewareNames extends readonly string[] = [],\n>(\n title: IFormDrawerProps | string,\n content?: Component | FormDrawerSlotContent<T, DynamicMiddlewareNames[number]>,\n dynamicMiddlewareNames?: DynamicMiddlewareNames,\n): IFormDrawer<T, DynamicMiddlewareNames[number]> {\n const env: {\n root?: HTMLElement\n form?: Form<T>\n promise?: Promise<any>\n instance?: any\n app?: App<Element>\n stopUrlChangeListener?: () => void\n settled?: boolean\n openMiddlewares: IMiddleware<IFormProps<T>>[]\n confirmMiddlewares: IMiddleware<Form<T>>[]\n cancelMiddlewares: IMiddleware<Form<T>>[]\n [key: `${string}Middlewares`]: IMiddleware<Form<T>>[] | IMiddleware<IFormProps<T>>[] | undefined\n } = {\n root: document.createElement('div'),\n form: null,\n promise: null,\n app: null,\n instance: null,\n stopUrlChangeListener: undefined,\n settled: false,\n openMiddlewares: [],\n confirmMiddlewares: [],\n cancelMiddlewares: [],\n }\n\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n /* istanbul ignore if -- @preserve */\n if (!isStr(middlewareName))\n return\n const _middlewareName = camelCase(middlewareName)\n /* istanbul ignore if -- @preserve */\n if (['open', 'cancel', 'confirm'].includes(_middlewareName)) {\n throw new Error(`for${pascalCase(_middlewareName)} is presved`)\n }\n (env[`${_middlewareName}Middlewares`] = [])\n }\n }\n\n document.body.append(env.root)\n\n const rawProps = (isStr(title) ? { title } : title) as IFormDrawerProps\n const props = {\n ...rawProps,\n closeOnUrlChange: rawProps.closeOnUrlChange ?? true,\n } as IFormDrawerProps\n\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\n const _content = isVueOptions(content)\n ? { default: () => h(content) }\n : isFn(content)\n ? { default: content }\n : content\n if (!env.instance) {\n const ComponentConstructor = observer({\n setup(_, { expose }) {\n const visible = ref(false)\n expose({\n visible,\n })\n return () => h(DrawerContent, {\n drawerProps: props,\n form: env.form,\n resolve,\n reject,\n visible: visible.value,\n }, _content)\n },\n })\n env.app = createApp(ComponentConstructor)\n env.instance = env.app.mount(env.root)\n }\n env.instance.visible = visible\n }\n\n function disposeDrawer() {\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n const animationDuration = getTransitionDuration()\n setTimeout(() => {\n env.app?.unmount?.()\n env.app = null\n env.instance = null\n env.root?.remove()\n env.root = undefined\n }, animationDuration)\n }\n\n async function rejectDrawer(reject?: () => any) {\n if (env.settled)\n return\n\n env.settled = true\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n await loading(props.loadingText, () =>\n applyMiddleware(env.form, env.cancelMiddlewares))\n render(false)\n disposeDrawer()\n reject?.()\n }\n\n const formDrawer = {\n forOpen: (middleware: IMiddleware<IFormProps<T>>) => {\n isFn(middleware) && env.openMiddlewares.push(middleware)\n return formDrawer\n },\n forConfirm: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.confirmMiddlewares.push(middleware)\n return formDrawer\n },\n forCancel: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.cancelMiddlewares.push(middleware)\n return formDrawer\n },\n open: (payload: IFormProps<T>) => {\n /* istanbul ignore if -- @preserve */\n if (env.promise)\n return env.promise\n\n env.settled = false\n env.promise = new Promise((res, rej) => {\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\n .then((resPayload) => {\n env.form = env.form || createForm(resPayload as IFormProps<T>)\n render(true, (type: string) => {\n env.form.submit(async () => {\n if (env.settled)\n return\n\n env.settled = true\n env.stopUrlChangeListener?.()\n env.stopUrlChangeListener = undefined\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\n res(toJS(env.form.values))\n formDrawer.close()\n disposeDrawer()\n }).catch(() => undefined)\n }, () => rejectDrawer(() => rej(new Error('cancel'))))\n if (props.closeOnUrlChange) {\n env.stopUrlChangeListener = onUrlChange(() => {\n void rejectDrawer(() => rej(new Error('cancel')))\n })\n }\n })\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\n })\n return env.promise\n },\n close: () => {\n /* istanbul ignore if -- @preserve */\n if (!env.root)\n return\n render(false)\n },\n }\n\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n const _middlewareName = camelCase(middlewareName)\n formDrawer[`for${pascalCase(_middlewareName)}`] = (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env[`${_middlewareName}Middlewares`].push(middleware)\n return formDrawer\n }\n }\n }\n\n return formDrawer as IFormDrawer<T, DynamicMiddlewareNames[number]>\n}\n\nexport default FormDrawer\n"],"mappings":";;;;;;;;;;;AAcA,SAAgB,WAId,OACA,SACA,wBACgD;CAChD,MAAM,MAYF;EACF,MAAM,SAAS,cAAc,MAAM;EACnC,MAAM;EACN,SAAS;EACT,KAAK;EACL,UAAU;EACV,uBAAuB,KAAA;EACvB,SAAS;EACT,iBAAiB,EAAE;EACnB,oBAAoB,EAAE;EACtB,mBAAmB,EAAE;EACtB;AAED,KAAI,MAAM,uBAAuB,CAC/B,MAAK,MAAM,kBAAkB,wBAAwB;;AAEnD,MAAI,CAAC,MAAM,eAAe,CACxB;EACF,MAAM,kBAAkB,UAAU,eAAe;;AAEjD,MAAI;GAAC;GAAQ;GAAU;GAAU,CAAC,SAAS,gBAAgB,CACzD,OAAM,IAAI,MAAM,MAAM,WAAW,gBAAgB,CAAC,aAAa;AAEhE,MAAI,GAAG,gBAAgB,gBAAgB,EAAE;;AAI9C,UAAS,KAAK,OAAO,IAAI,KAAK;CAE9B,MAAM,WAAY,MAAM,MAAM,GAAG,EAAE,OAAO,GAAG;CAC7C,MAAM,QAAQ;EACZ,GAAG;EACH,kBAAkB,SAAS,oBAAoB;EAChD;CAED,SAAS,OAAO,SAAkB,SAAkC,QAAoB;EACtF,MAAM,WAAW,aAAa,QAAQ,GAClC,EAAE,eAAe,EAAE,QAAQ,EAAE,GAC7B,KAAK,QAAQ,GACX,EAAE,SAAS,SAAS,GACpB;AACN,MAAI,CAAC,IAAI,UAAU;AAgBjB,OAAI,MAAM,UAfmB,SAAS,EACpC,MAAM,GAAG,EAAE,UAAU;IACnB,MAAM,UAAU,IAAI,MAAM;AAC1B,WAAO,EACL,SACD,CAAC;AACF,iBAAa,EAAEA,WAAe;KAC5B,aAAa;KACb,MAAM,IAAI;KACV;KACA;KACA,SAAS,QAAQ;KAClB,EAAE,SAAS;MAEf,CAAC,CACuC;AACzC,OAAI,WAAW,IAAI,IAAI,MAAM,IAAI,KAAK;;AAExC,MAAI,SAAS,UAAU;;CAGzB,SAAS,gBAAgB;AACvB,MAAI,yBAAyB;AAC7B,MAAI,wBAAwB,KAAA;EAC5B,MAAM,oBAAoB,uBAAuB;AACjD,mBAAiB;AACf,OAAI,KAAK,WAAW;AACpB,OAAI,MAAM;AACV,OAAI,WAAW;AACf,OAAI,MAAM,QAAQ;AAClB,OAAI,OAAO,KAAA;KACV,kBAAkB;;CAGvB,eAAe,aAAa,QAAoB;AAC9C,MAAI,IAAI,QACN;AAEF,MAAI,UAAU;AACd,MAAI,yBAAyB;AAC7B,MAAI,wBAAwB,KAAA;AAC5B,QAAM,QAAQ,MAAM,mBAClB,gBAAgB,IAAI,MAAM,IAAI,kBAAkB,CAAC;AACnD,SAAO,MAAM;AACb,iBAAe;AACf,YAAU;;CAGZ,MAAM,aAAa;EACjB,UAAU,eAA2C;AACnD,QAAK,WAAW,IAAI,IAAI,gBAAgB,KAAK,WAAW;AACxD,UAAO;;EAET,aAAa,eAAqC;AAChD,QAAK,WAAW,IAAI,IAAI,mBAAmB,KAAK,WAAW;AAC3D,UAAO;;EAET,YAAY,eAAqC;AAC/C,QAAK,WAAW,IAAI,IAAI,kBAAkB,KAAK,WAAW;AAC1D,UAAO;;EAET,OAAO,YAA2B;;AAEhC,OAAI,IAAI,QACN,QAAO,IAAI;AAEb,OAAI,UAAU;AACd,OAAI,UAAU,IAAI,SAAS,KAAK,QAAQ;AACtC,YAAQ,MAAM,mBAAmB,gBAAgB,SAAS,IAAI,gBAAgB,CAAC,CAC5E,MAAM,eAAe;AACpB,SAAI,OAAO,IAAI,QAAQ,WAAW,WAA4B;AAC9D,YAAO,OAAO,SAAiB;AAC7B,UAAI,KAAK,OAAO,YAAY;AAC1B,WAAI,IAAI,QACN;AAEF,WAAI,UAAU;AACd,WAAI,yBAAyB;AAC7B,WAAI,wBAAwB,KAAA;AAC5B,cAAO,QAAQ,KAAK,GAAG,gBAAgB,IAAI,MAAM,IAAI,GAAG,KAAK,cAAc,GAAG,gBAAgB,IAAI,MAAM,IAAI,mBAAmB;AAC/H,WAAI,KAAK,IAAI,KAAK,OAAO,CAAC;AAC1B,kBAAW,OAAO;AAClB,sBAAe;QACf,CAAC,YAAY,KAAA,EAAU;cAClB,mBAAmB,oBAAI,IAAI,MAAM,SAAS,CAAC,CAAC,CAAC;AACtD,SAAI,MAAM,iBACR,KAAI,wBAAwB,kBAAkB;AACvC,yBAAmB,oBAAI,IAAI,MAAM,SAAS,CAAC,CAAC;OACjD;MAEJ,CACD;;MAA8C,UAAS,IAAI,MAAM;KAAC;KACrE;AACF,UAAO,IAAI;;EAEb,aAAa;;AAEX,OAAI,CAAC,IAAI,KACP;AACF,UAAO,MAAM;;EAEhB;AAED,KAAI,MAAM,uBAAuB,CAC/B,MAAK,MAAM,kBAAkB,wBAAwB;EACnD,MAAM,kBAAkB,UAAU,eAAe;AACjD,aAAW,MAAM,WAAW,gBAAgB,OAAO,eAAqC;AACtF,QAAK,WAAW,IAAI,IAAI,GAAG,gBAAgB,cAAc,KAAK,WAAW;AACzE,UAAO;;;AAKb,QAAO"}
1
+ {"version":3,"file":"index.mjs","names":["DrawerContent"],"sources":["../../src/form-drawer/index.ts"],"sourcesContent":["import type { Form, IFormProps } from '@formily/core'\nimport type { IMiddleware } from '@formily/shared'\nimport type { App, Component } from 'vue'\nimport type { FormDrawerSlotContent, IFormDrawer, IFormDrawerProps } from './types'\nimport { createForm } from '@formily/core'\nimport { toJS } from '@formily/reactive'\nimport { applyMiddleware, isArr, isFn, isStr, isValid, pascalCase } from '@formily/shared'\nimport { observer } from '@silver-formily/reactive-vue'\nimport { camelCase } from 'lodash-es'\nimport { createApp, h, ref } from 'vue'\nimport { getTransitionDuration, isVueOptions, loading } from '../__builtins__'\nimport DrawerContent from './drawer-content.vue'\n\nexport function FormDrawer<\n T extends object = any,\n const DynamicMiddlewareNames extends readonly string[] = [],\n>(\n title: IFormDrawerProps | string,\n content?: Component | FormDrawerSlotContent<T, DynamicMiddlewareNames[number]>,\n dynamicMiddlewareNames?: DynamicMiddlewareNames,\n): IFormDrawer<T, DynamicMiddlewareNames[number]> {\n const env: {\n root?: HTMLElement\n form?: Form<T>\n promise?: Promise<any>\n instance?: any\n app?: App<Element>\n settled?: boolean\n openMiddlewares: IMiddleware<IFormProps<T>>[]\n confirmMiddlewares: IMiddleware<Form<T>>[]\n cancelMiddlewares: IMiddleware<Form<T>>[]\n [key: `${string}Middlewares`]: IMiddleware<Form<T>>[] | IMiddleware<IFormProps<T>>[] | undefined\n } = {\n root: document.createElement('div'),\n form: null,\n promise: null,\n app: null,\n instance: null,\n settled: false,\n openMiddlewares: [],\n confirmMiddlewares: [],\n cancelMiddlewares: [],\n }\n\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n /* istanbul ignore if -- @preserve */\n if (!isStr(middlewareName))\n return\n const _middlewareName = camelCase(middlewareName)\n /* istanbul ignore if -- @preserve */\n if (['open', 'cancel', 'confirm'].includes(_middlewareName)) {\n throw new Error(`for${pascalCase(_middlewareName)} is presved`)\n }\n (env[`${_middlewareName}Middlewares`] = [])\n }\n }\n\n document.body.append(env.root)\n\n const props = (isStr(title) ? { title } : title) as IFormDrawerProps\n\n function render(visible: boolean, resolve?: (type?: string) => any, reject?: () => any) {\n const _content = isVueOptions(content)\n ? { default: () => h(content) }\n : isFn(content)\n ? { default: content }\n : content\n if (!env.instance) {\n const ComponentConstructor = observer({\n setup(_, { expose }) {\n const visible = ref(false)\n expose({\n visible,\n })\n return () => h(DrawerContent, {\n drawerProps: props,\n form: env.form,\n resolve,\n reject,\n visible: visible.value,\n }, _content)\n },\n })\n env.app = createApp(ComponentConstructor)\n env.instance = env.app.mount(env.root)\n }\n env.instance.visible = visible\n }\n\n function disposeDrawer() {\n const animationDuration = getTransitionDuration()\n setTimeout(() => {\n env.app?.unmount?.()\n env.app = null\n env.instance = null\n env.root?.remove()\n env.root = undefined\n }, animationDuration)\n }\n\n async function rejectDrawer(reject?: () => any) {\n if (env.settled)\n return\n\n env.settled = true\n\n try {\n await loading(props.loadingText, () =>\n applyMiddleware(env.form, env.cancelMiddlewares))\n render(false)\n disposeDrawer()\n reject?.()\n }\n catch {\n env.settled = false\n }\n }\n\n async function submitDrawer(type: string | undefined, resolve: (payload: any) => void, close: () => void) {\n if (env.settled)\n return\n\n env.settled = true\n\n try {\n await (isValid(type) ? applyMiddleware(env.form, env[`${type}Middlewares`]) : applyMiddleware(env.form, env.confirmMiddlewares))\n resolve(toJS(env.form.values))\n close()\n disposeDrawer()\n }\n catch {\n env.settled = false\n }\n }\n\n const formDrawer = {\n forOpen: (middleware: IMiddleware<IFormProps<T>>) => {\n isFn(middleware) && env.openMiddlewares.push(middleware)\n return formDrawer\n },\n forConfirm: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.confirmMiddlewares.push(middleware)\n return formDrawer\n },\n forCancel: (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env.cancelMiddlewares.push(middleware)\n return formDrawer\n },\n open: (payload: IFormProps<T>) => {\n /* istanbul ignore if -- @preserve */\n if (env.promise)\n return env.promise\n\n env.settled = false\n env.promise = new Promise((res, rej) => {\n loading(props.loadingText, () => applyMiddleware(payload, env.openMiddlewares))\n .then((resPayload) => {\n env.form = env.form || createForm(resPayload as IFormProps<T>)\n render(true, (type: string) => {\n env.form.submit(async () => {\n await submitDrawer(type, res, formDrawer.close)\n }).catch(() => undefined)\n }, () => rejectDrawer(() => rej(new Error('cancel'))))\n })\n .catch(/* istanbul ignore next -- @preserve */ error => rej(error))\n })\n return env.promise\n },\n close: () => {\n /* istanbul ignore if -- @preserve */\n if (!env.root)\n return\n render(false)\n },\n }\n\n if (isArr(dynamicMiddlewareNames)) {\n for (const middlewareName of dynamicMiddlewareNames) {\n const _middlewareName = camelCase(middlewareName)\n formDrawer[`for${pascalCase(_middlewareName)}`] = (middleware: IMiddleware<Form<T>>) => {\n isFn(middleware) && env[`${_middlewareName}Middlewares`].push(middleware)\n return formDrawer\n }\n }\n }\n\n return formDrawer as IFormDrawer<T, DynamicMiddlewareNames[number]>\n}\n\nexport default FormDrawer\n"],"mappings":"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"}
@@ -11,7 +11,6 @@ type IFormDrawerProps = Partial<DrawerProps> & {
11
11
  okButtonProps?: ButtonProps;
12
12
  loadingText?: string;
13
13
  enterSubmit?: boolean;
14
- closeOnUrlChange?: boolean;
15
14
  };
16
15
  interface FormDrawerResolve {
17
16
  (type?: string): void;
@@ -1,9 +1,91 @@
1
1
  import { IFormItemProps } from "./types.js";
2
2
  import { _default } from "./form-item.vue.js";
3
+ import * as _$element_plus0 from "element-plus";
4
+ import * as _$vue from "vue";
3
5
 
4
6
  //#region src/form-item/index.d.ts
5
7
  declare function fieldFeedbackMapper(props: any, field: any): any;
6
- declare const FormItem: any;
8
+ declare const FormItem: {
9
+ new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<IFormItemProps> & Readonly<{}>, {
10
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
11
+ }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {
12
+ asterisk: boolean;
13
+ colon: boolean;
14
+ labelWrap: boolean;
15
+ fullness: boolean;
16
+ }, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
17
+ P: {};
18
+ B: {};
19
+ D: {};
20
+ C: {};
21
+ M: {};
22
+ Defaults: {};
23
+ }, Readonly<IFormItemProps> & Readonly<{}>, {
24
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
25
+ }, {}, {}, {}, {
26
+ asterisk: boolean;
27
+ colon: boolean;
28
+ labelWrap: boolean;
29
+ fullness: boolean;
30
+ }>;
31
+ __isFragment?: never;
32
+ __isTeleport?: never;
33
+ __isSuspense?: never;
34
+ } & _$vue.ComponentOptionsBase<Readonly<IFormItemProps> & Readonly<{}>, {
35
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
36
+ }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {
37
+ asterisk: boolean;
38
+ colon: boolean;
39
+ labelWrap: boolean;
40
+ fullness: boolean;
41
+ }, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & (new () => {
42
+ $slots: {
43
+ default?: (props: {}) => any;
44
+ } & {
45
+ default?: (props: {}) => any;
46
+ };
47
+ }) & {
48
+ BaseItem: {
49
+ new (...args: any[]): _$vue.CreateComponentPublicInstanceWithMixins<Readonly<IFormItemProps> & Readonly<{}>, {
50
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
51
+ }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, _$vue.PublicProps, {
52
+ asterisk: boolean;
53
+ colon: boolean;
54
+ labelWrap: boolean;
55
+ fullness: boolean;
56
+ }, true, {}, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, {}, any, _$vue.ComponentProvideOptions, {
57
+ P: {};
58
+ B: {};
59
+ D: {};
60
+ C: {};
61
+ M: {};
62
+ Defaults: {};
63
+ }, Readonly<IFormItemProps> & Readonly<{}>, {
64
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
65
+ }, {}, {}, {}, {
66
+ asterisk: boolean;
67
+ colon: boolean;
68
+ labelWrap: boolean;
69
+ fullness: boolean;
70
+ }>;
71
+ __isFragment?: never;
72
+ __isTeleport?: never;
73
+ __isSuspense?: never;
74
+ } & _$vue.ComponentOptionsBase<Readonly<IFormItemProps> & Readonly<{}>, {
75
+ feedbackTooltipRef: _$vue.Ref<_$element_plus0.TooltipInstance, _$element_plus0.TooltipInstance>;
76
+ }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, {
77
+ asterisk: boolean;
78
+ colon: boolean;
79
+ labelWrap: boolean;
80
+ fullness: boolean;
81
+ }, {}, string, {}, _$vue.GlobalComponents, _$vue.GlobalDirectives, string, _$vue.ComponentProvideOptions> & _$vue.VNodeProps & _$vue.AllowedComponentProps & _$vue.ComponentCustomProps & (new () => {
82
+ $slots: {
83
+ default?: (props: {}) => any;
84
+ } & {
85
+ default?: (props: {}) => any;
86
+ };
87
+ });
88
+ };
7
89
  //#endregion
8
90
  export { FormItem, fieldFeedbackMapper };
9
91
  //# sourceMappingURL=index.d.ts.map