@silver-formily/element-plus 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/LICENSE +21 -21
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/esm/__builtins__/configs/index.mjs.map +1 -1
  5. package/esm/__builtins__/index.mjs +18 -21
  6. package/esm/__builtins__/index.mjs.map +1 -1
  7. package/esm/__builtins__/shared/index.d.ts +0 -1
  8. package/esm/__builtins__/shared/index.mjs +18 -21
  9. package/esm/__builtins__/shared/index.mjs.map +1 -1
  10. package/esm/__builtins__/shared/loading.mjs +5 -5
  11. package/esm/__builtins__/shared/loading.mjs.map +1 -1
  12. package/esm/__builtins__/shared/simple-version-compare.mjs.map +1 -1
  13. package/esm/__builtins__/shared/transform-component.mjs.map +1 -1
  14. package/esm/__builtins__/shared/use-enter-submit.d.ts +9 -0
  15. package/esm/__builtins__/shared/use-enter-submit.mjs +25 -0
  16. package/esm/__builtins__/shared/use-enter-submit.mjs.map +1 -0
  17. package/esm/__builtins__/shared/utils.d.ts +1 -0
  18. package/esm/__builtins__/shared/utils.mjs +23 -17
  19. package/esm/__builtins__/shared/utils.mjs.map +1 -1
  20. package/esm/array-base/index.mjs +56 -52
  21. package/esm/array-base/index.mjs.map +1 -1
  22. package/esm/array-base/symbols.mjs.map +1 -1
  23. package/esm/array-base/utils.d.ts +0 -1
  24. package/esm/array-base/utils.mjs +45 -46
  25. package/esm/array-base/utils.mjs.map +1 -1
  26. package/esm/array-cards/index.mjs +36 -33
  27. package/esm/array-cards/index.mjs.map +1 -1
  28. package/esm/array-collapse/index.mjs +39 -37
  29. package/esm/array-collapse/index.mjs.map +1 -1
  30. package/esm/array-collapse/utils.mjs +9 -2
  31. package/esm/array-collapse/utils.mjs.map +1 -1
  32. package/esm/array-items/index.mjs +38 -34
  33. package/esm/array-items/index.mjs.map +1 -1
  34. package/esm/array-list-tabs/index.mjs +38 -36
  35. package/esm/array-list-tabs/index.mjs.map +1 -1
  36. package/esm/array-list-tabs/utils.mjs +12 -5
  37. package/esm/array-list-tabs/utils.mjs.map +1 -1
  38. package/esm/array-table/index.mjs +63 -60
  39. package/esm/array-table/index.mjs.map +1 -1
  40. package/esm/array-table/utils.mjs +18 -11
  41. package/esm/array-table/utils.mjs.map +1 -1
  42. package/esm/array-tabs/index.mjs +28 -25
  43. package/esm/array-tabs/index.mjs.map +1 -1
  44. package/esm/autocomplete/autocomplete.d.ts +1222 -0
  45. package/esm/autocomplete/index.d.ts +639 -0
  46. package/esm/autocomplete/index.mjs +116 -0
  47. package/esm/autocomplete/index.mjs.map +1 -0
  48. package/esm/cascader/index.mjs +22 -18
  49. package/esm/cascader/index.mjs.map +1 -1
  50. package/esm/checkbox/index.d.ts +42 -42
  51. package/esm/checkbox/index.mjs +20 -16
  52. package/esm/checkbox/index.mjs.map +1 -1
  53. package/esm/color-picker/index.d.ts +210 -0
  54. package/esm/color-picker/index.mjs +17 -0
  55. package/esm/color-picker/index.mjs.map +1 -0
  56. package/esm/color-picker-panel/index.d.ts +129 -0
  57. package/esm/color-picker-panel/index.mjs +25 -0
  58. package/esm/color-picker-panel/index.mjs.map +1 -0
  59. package/esm/date-picker/index.mjs +18 -37
  60. package/esm/date-picker/index.mjs.map +1 -1
  61. package/esm/date-picker/utils.d.ts +4 -0
  62. package/esm/date-picker/utils.mjs +27 -0
  63. package/esm/date-picker/utils.mjs.map +1 -0
  64. package/esm/date-picker-panel/index.d.ts +143 -0
  65. package/esm/date-picker-panel/index.mjs +30 -0
  66. package/esm/date-picker-panel/index.mjs.map +1 -0
  67. package/esm/editable/editable.d.ts +2 -0
  68. package/esm/editable/index.d.ts +1 -0
  69. package/esm/editable/index.mjs +71 -66
  70. package/esm/editable/index.mjs.map +1 -1
  71. package/esm/env.d.mjs +2 -0
  72. package/esm/env.d.mjs.map +1 -0
  73. package/esm/form/form.mjs +6 -6
  74. package/esm/form/form.mjs.map +1 -1
  75. package/esm/form-button-group/form-button-group.d.ts +10 -1
  76. package/esm/form-button-group/index.d.ts +18 -3
  77. package/esm/form-button-group/index.mjs +47 -28
  78. package/esm/form-button-group/index.mjs.map +1 -1
  79. package/esm/form-button-group/utils.mjs +9 -2
  80. package/esm/form-button-group/utils.mjs.map +1 -1
  81. package/esm/form-collapse/index.mjs +21 -18
  82. package/esm/form-collapse/index.mjs.map +1 -1
  83. package/esm/form-collapse/utils.mjs.map +1 -1
  84. package/esm/form-dialog/dialog-content.d.ts +789 -3
  85. package/esm/form-dialog/index.mjs +97 -86
  86. package/esm/form-dialog/index.mjs.map +1 -1
  87. package/esm/form-dialog/types.d.ts +1 -0
  88. package/esm/form-drawer/drawer-content.d.ts +919 -3
  89. package/esm/form-drawer/index.mjs +92 -82
  90. package/esm/form-drawer/index.mjs.map +1 -1
  91. package/esm/form-drawer/types.d.ts +1 -0
  92. package/esm/form-grid/hooks.mjs.map +1 -1
  93. package/esm/form-grid/index.mjs +26 -22
  94. package/esm/form-grid/index.mjs.map +1 -1
  95. package/esm/form-item/index.d.ts +1 -0
  96. package/esm/form-item/index.mjs +102 -99
  97. package/esm/form-item/index.mjs.map +1 -1
  98. package/esm/form-item/types.d.ts +4 -0
  99. package/esm/form-item/utils.mjs.map +1 -1
  100. package/esm/form-layout/form-layout.mjs +18 -14
  101. package/esm/form-layout/form-layout.mjs.map +1 -1
  102. package/esm/form-layout/utils.mjs +23 -23
  103. package/esm/form-layout/utils.mjs.map +1 -1
  104. package/esm/form-step/index.mjs +30 -27
  105. package/esm/form-step/index.mjs.map +1 -1
  106. package/esm/form-step/utils.mjs.map +1 -1
  107. package/esm/form-tab/hooks.mjs.map +1 -1
  108. package/esm/form-tab/index.mjs +24 -22
  109. package/esm/form-tab/index.mjs.map +1 -1
  110. package/esm/form-tab/utils.mjs.map +1 -1
  111. package/esm/index.d.ts +8 -0
  112. package/esm/index.mjs +90 -74
  113. package/esm/index.mjs.map +1 -1
  114. package/esm/input/index.mjs +30 -26
  115. package/esm/input/index.mjs.map +1 -1
  116. package/esm/input-number/index.d.ts +21 -21
  117. package/esm/input-number/index.mjs +11 -8
  118. package/esm/input-number/index.mjs.map +1 -1
  119. package/esm/input-tag/index.d.ts +32 -0
  120. package/esm/input-tag/index.mjs +50 -0
  121. package/esm/input-tag/index.mjs.map +1 -0
  122. package/esm/input-tag/input-tag.d.ts +32 -0
  123. package/esm/mention/index.d.ts +50 -0
  124. package/esm/mention/index.mjs +97 -0
  125. package/esm/mention/index.mjs.map +1 -0
  126. package/esm/mention/mention.d.ts +51 -0
  127. package/esm/pagination/components/jumper.mjs.map +1 -1
  128. package/esm/pagination/components/next.mjs.map +1 -1
  129. package/esm/pagination/components/pager.mjs.map +1 -1
  130. package/esm/pagination/components/prev.mjs.map +1 -1
  131. package/esm/pagination/components/total.mjs.map +1 -1
  132. package/esm/pagination/pagination.mjs.map +1 -1
  133. package/esm/password/index.mjs.map +1 -1
  134. package/esm/preview-text/color-picker.d.ts +5 -0
  135. package/esm/preview-text/index.d.ts +5 -0
  136. package/esm/preview-text/index.mjs +184 -145
  137. package/esm/preview-text/index.mjs.map +1 -1
  138. package/esm/preview-text/utils.mjs.map +1 -1
  139. package/esm/query-form/default-components.d.ts +5 -0
  140. package/esm/query-form/default-components.mjs +47 -0
  141. package/esm/query-form/default-components.mjs.map +1 -0
  142. package/esm/query-form/hooks.d.ts +25 -0
  143. package/esm/query-form/hooks.mjs +29 -0
  144. package/esm/query-form/hooks.mjs.map +1 -0
  145. package/esm/query-form/index.d.ts +117 -0
  146. package/esm/query-form/index.mjs +337 -0
  147. package/esm/query-form/index.mjs.map +1 -0
  148. package/esm/query-form/query-form-light.d.ts +27 -0
  149. package/esm/query-form/query-form.d.ts +52 -0
  150. package/esm/query-form/types.d.ts +44 -0
  151. package/esm/query-form/types.mjs +2 -0
  152. package/esm/query-form/types.mjs.map +1 -0
  153. package/esm/query-form-item/index.d.ts +151 -0
  154. package/esm/query-form-item/index.mjs +188 -0
  155. package/esm/query-form-item/index.mjs.map +1 -0
  156. package/esm/query-form-item/query-form-item.d.ts +96 -0
  157. package/esm/query-form-item/types.d.ts +46 -0
  158. package/esm/query-form-item/types.mjs +2 -0
  159. package/esm/query-form-item/types.mjs.map +1 -0
  160. package/esm/radio/index.d.ts +36 -36
  161. package/esm/radio/index.mjs +29 -25
  162. package/esm/radio/index.mjs.map +1 -1
  163. package/esm/rate/index.mjs +13 -10
  164. package/esm/rate/index.mjs.map +1 -1
  165. package/esm/reset/index.mjs.map +1 -1
  166. package/esm/segmented/index.mjs +16 -12
  167. package/esm/segmented/index.mjs.map +1 -1
  168. package/esm/select/index.mjs +26 -22
  169. package/esm/select/index.mjs.map +1 -1
  170. package/esm/select-table/index.mjs +36 -33
  171. package/esm/select-table/index.mjs.map +1 -1
  172. package/esm/shared/overlay-elements.d.ts +6 -0
  173. package/esm/shared/overlay-elements.mjs +19 -0
  174. package/esm/shared/overlay-elements.mjs.map +1 -0
  175. package/esm/slider/index.mjs +13 -10
  176. package/esm/slider/index.mjs.map +1 -1
  177. package/esm/styles/form-button-group/index.css +1 -1
  178. package/esm/styles/form-item/index.css +1 -1
  179. package/esm/styles/preview-text/index.css +1 -1
  180. package/esm/styles/query-form/index.css +1 -0
  181. package/esm/styles/query-form-item/index.css +1 -0
  182. package/esm/submit/index.mjs.map +1 -1
  183. package/esm/switch/index.d.ts +12 -12
  184. package/esm/switch/index.mjs.map +1 -1
  185. package/esm/time-picker/index.mjs +9 -6
  186. package/esm/time-picker/index.mjs.map +1 -1
  187. package/esm/time-select/index.mjs +9 -6
  188. package/esm/time-select/index.mjs.map +1 -1
  189. package/esm/transfer/index.mjs.map +1 -1
  190. package/esm/tree/index.mjs +33 -29
  191. package/esm/tree/index.mjs.map +1 -1
  192. package/esm/tree/utils.mjs.map +1 -1
  193. package/esm/tree-select/index.mjs +18 -14
  194. package/esm/tree-select/index.mjs.map +1 -1
  195. package/esm/upload/index.d.ts +1 -1
  196. package/esm/upload/index.mjs +10 -7
  197. package/esm/upload/index.mjs.map +1 -1
  198. package/esm/upload/upload.d.ts +2 -2
  199. package/esm/vendor/lodash.mjs +751 -663
  200. package/esm/vendor/lodash.mjs.map +1 -1
  201. package/esm/vendor/sizes.mjs.map +1 -1
  202. package/package.json +115 -113
  203. package/esm/__builtins__/shared/hooks.d.ts +0 -7
  204. package/esm/__builtins__/shared/hooks.mjs +0 -59
  205. package/esm/__builtins__/shared/hooks.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../src/preview-text/utils.ts"],"sourcesContent":["import type { SpaceProps, TagProps, TextProps } from 'element-plus'\r\nimport { computed, inject } from 'vue'\r\n\r\nexport interface PreviewTextProps {\r\n placeholder?: string\r\n tagProps?: Partial<TagProps> | Record<string, any>\r\n spaceProps?: Partial<SpaceProps> | Record<string, any>\r\n textProps?: Partial<TextProps> | Record<string, any>\r\n}\r\n\r\nexport const previewTextConfigKey = Symbol('previewTextConfig')\r\n\r\nexport function usePreviewConfig() {\r\n const previewConfig = inject(previewTextConfigKey, {}) as PreviewTextProps\r\n const placeholder = computed(() => previewConfig?.placeholder || 'N/A')\r\n const tagProps = computed<Partial<TagProps>>(() => previewConfig?.tagProps ?? { type: 'info' })\r\n const spaceProps = computed(() => previewConfig?.spaceProps || {})\r\n const textProps = computed(() => previewConfig?.textProps || {})\r\n return {\r\n placeholder,\r\n tagProps,\r\n spaceProps,\r\n textProps,\r\n }\r\n}\r\n"],"names":["previewTextConfigKey","usePreviewConfig","previewConfig","inject","placeholder","computed","tagProps","spaceProps","textProps"],"mappings":";AAUO,MAAMA,IAAuB,OAAO,mBAAmB;AAEvD,SAASC,IAAmB;AACjC,QAAMC,IAAgBC,EAAOH,GAAsB,EAAE,GAC/CI,IAAcC,EAAS,MAAMH,GAAe,eAAe,KAAK,GAChEI,IAAWD,EAA4B,MAAMH,GAAe,YAAY,EAAE,MAAM,QAAQ,GACxFK,IAAaF,EAAS,MAAMH,GAAe,cAAc,CAAA,CAAE,GAC3DM,IAAYH,EAAS,MAAMH,GAAe,aAAa,CAAA,CAAE;AAC/D,SAAO;AAAA,IACL,aAAAE;AAAA,IACA,UAAAE;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../src/preview-text/utils.ts"],"sourcesContent":["import type { SpaceProps, TagProps, TextProps } from 'element-plus'\nimport { computed, inject } from 'vue'\n\nexport interface PreviewTextProps {\n placeholder?: string\n tagProps?: Partial<TagProps> | Record<string, any>\n spaceProps?: Partial<SpaceProps> | Record<string, any>\n textProps?: Partial<TextProps> | Record<string, any>\n}\n\nexport const previewTextConfigKey = Symbol('previewTextConfig')\n\nexport function usePreviewConfig() {\n const previewConfig = inject(previewTextConfigKey, {}) as PreviewTextProps\n const placeholder = computed(() => previewConfig?.placeholder || 'N/A')\n const tagProps = computed<Partial<TagProps>>(() => previewConfig?.tagProps ?? { type: 'info' })\n const spaceProps = computed(() => previewConfig?.spaceProps || {})\n const textProps = computed(() => previewConfig?.textProps || {})\n return {\n placeholder,\n tagProps,\n spaceProps,\n textProps,\n }\n}\n"],"names":["previewTextConfigKey","usePreviewConfig","previewConfig","inject","placeholder","computed","tagProps","spaceProps","textProps"],"mappings":";AAUO,MAAMA,IAAuB,OAAO,mBAAmB;AAEvD,SAASC,IAAmB;AACjC,QAAMC,IAAgBC,EAAOH,GAAsB,EAAE,GAC/CI,IAAcC,EAAS,MAAMH,GAAe,eAAe,KAAK,GAChEI,IAAWD,EAA4B,MAAMH,GAAe,YAAY,EAAE,MAAM,QAAQ,GACxFK,IAAaF,EAAS,MAAMH,GAAe,cAAc,CAAA,CAAE,GAC3DM,IAAYH,EAAS,MAAMH,GAAe,aAAa,CAAA,CAAE;AAC/D,SAAO;AAAA,IACL,aAAAE;AAAA,IACA,UAAAE;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,5 @@
1
+ import { Component } from 'vue';
2
+ export declare const queryFormAutoComponents: Record<string, Component>;
3
+ export declare function mergeQueryFormComponents(components?: Record<string, Component>): {
4
+ [x: string]: Component;
5
+ };
@@ -0,0 +1,47 @@
1
+ import { Autocomplete as r } from "../autocomplete/index.mjs";
2
+ import { Cascader as m } from "../cascader/index.mjs";
3
+ import { Checkbox as t } from "../checkbox/index.mjs";
4
+ import { ColorPicker as e } from "../color-picker/index.mjs";
5
+ import { DatePicker as i } from "../date-picker/index.mjs";
6
+ import { FormItem as p } from "../form-item/index.mjs";
7
+ import { Input as f } from "../input/index.mjs";
8
+ import { InputNumber as c } from "../input-number/index.mjs";
9
+ import { Password as n } from "../password/index.mjs";
10
+ import { Radio as u } from "../radio/index.mjs";
11
+ import { Rate as a } from "../rate/index.mjs";
12
+ import { Select as l } from "../select/index.mjs";
13
+ import { Slider as s } from "../slider/index.mjs";
14
+ import { Switch as C } from "../switch/index.mjs";
15
+ import { TimePicker as S } from "../time-picker/index.mjs";
16
+ import { TimeSelect as d } from "../time-select/index.mjs";
17
+ import { TreeSelect as k } from "../tree-select/index.mjs";
18
+ const P = {
19
+ FormItem: p,
20
+ Input: f,
21
+ Autocomplete: r,
22
+ InputNumber: c,
23
+ Password: n,
24
+ Checkbox: t,
25
+ Radio: u,
26
+ Select: l,
27
+ TreeSelect: k,
28
+ Cascader: m,
29
+ Switch: C,
30
+ Rate: a,
31
+ Slider: s,
32
+ ColorPicker: e,
33
+ DatePicker: i,
34
+ TimePicker: S,
35
+ TimeSelect: d
36
+ };
37
+ function z(o) {
38
+ return {
39
+ ...P,
40
+ ...o
41
+ };
42
+ }
43
+ export {
44
+ z as mergeQueryFormComponents,
45
+ P as queryFormAutoComponents
46
+ };
47
+ //# sourceMappingURL=default-components.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-components.mjs","sources":["../../src/query-form/default-components.ts"],"sourcesContent":["import type { Component } from 'vue'\nimport { Autocomplete } from '../autocomplete'\nimport { Cascader } from '../cascader'\nimport { Checkbox } from '../checkbox'\nimport { ColorPicker } from '../color-picker'\nimport { DatePicker } from '../date-picker'\nimport { FormItem } from '../form-item'\nimport { Input } from '../input'\nimport { InputNumber } from '../input-number'\nimport { Password } from '../password'\nimport { Radio } from '../radio'\nimport { Rate } from '../rate'\nimport { Select } from '../select'\nimport { Slider } from '../slider'\nimport { Switch } from '../switch'\nimport { TimePicker } from '../time-picker'\nimport { TimeSelect } from '../time-select'\nimport { TreeSelect } from '../tree-select'\n\nexport const queryFormAutoComponents: Record<string, Component> = {\n FormItem,\n Input,\n Autocomplete,\n InputNumber,\n Password,\n Checkbox,\n Radio,\n Select,\n TreeSelect,\n Cascader,\n Switch,\n Rate,\n Slider,\n ColorPicker,\n DatePicker,\n TimePicker,\n TimeSelect,\n}\n\nexport function mergeQueryFormComponents(components?: Record<string, Component>) {\n return {\n ...queryFormAutoComponents,\n ...components,\n }\n}\n"],"names":["queryFormAutoComponents","FormItem","Input","Autocomplete","InputNumber","Password","Checkbox","Radio","Select","TreeSelect","Cascader","Switch","Rate","Slider","ColorPicker","DatePicker","TimePicker","TimeSelect","mergeQueryFormComponents","components"],"mappings":";;;;;;;;;;;;;;;;;AAmBO,MAAMA,IAAqD;AAAA,EAChE,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF;AAEO,SAASC,EAAyBC,GAAwC;AAC/E,SAAO;AAAA,IACL,GAAGnB;AAAA,IACH,GAAGmB;AAAA,EAAA;AAEP;"}
@@ -0,0 +1,25 @@
1
+ import { Form } from '@formily/core';
2
+ import { ISchema } from '@formily/json-schema';
3
+ import { Component, ComputedRef, MaybeRefOrGetter, Slots } from 'vue';
4
+ interface UseQueryFormFormOptions {
5
+ formProps: MaybeRefOrGetter<{
6
+ form?: unknown;
7
+ }>;
8
+ fallbackForm?: MaybeRefOrGetter<Form | undefined>;
9
+ }
10
+ export declare function useQueryFormForm(options: UseQueryFormFormOptions): {
11
+ externalForm: ComputedRef<Form<any>>;
12
+ activeForm: ComputedRef<Form<any>>;
13
+ };
14
+ interface UseQueryFormSchemaFieldOptions {
15
+ slots: Slots;
16
+ schema: ComputedRef<ISchema | undefined>;
17
+ schemaField: ComputedRef<Component | undefined>;
18
+ components: ComputedRef<Record<string, Component> | undefined>;
19
+ scope?: ComputedRef<Record<string, any> | undefined>;
20
+ }
21
+ export declare function useQueryFormSchemaField(options: UseQueryFormSchemaFieldOptions): {
22
+ hasDefaultSlot: ComputedRef<boolean>;
23
+ schemaField: ComputedRef<Component>;
24
+ };
25
+ export {};
@@ -0,0 +1,29 @@
1
+ import { isFn as l } from "@formily/shared";
2
+ import { createSchemaField as n } from "@silver-formily/vue";
3
+ import { computed as o, toValue as t } from "vue";
4
+ import { mergeQueryFormComponents as a } from "./default-components.mjs";
5
+ function c(e) {
6
+ return l(e) ? e() : e;
7
+ }
8
+ function v(e) {
9
+ const r = o(() => c(t(e.formProps)?.form)), m = o(() => r.value ?? t(e.fallbackForm));
10
+ return {
11
+ externalForm: r,
12
+ activeForm: m
13
+ };
14
+ }
15
+ function d(e) {
16
+ const r = o(() => !!e.slots.default), m = o(() => a(e.components.value)), u = o(() => r.value || !e.schema.value ? null : e.schemaField.value ?? n({
17
+ components: m.value,
18
+ scope: e.scope?.value
19
+ }).SchemaField);
20
+ return {
21
+ hasDefaultSlot: r,
22
+ schemaField: u
23
+ };
24
+ }
25
+ export {
26
+ v as useQueryFormForm,
27
+ d as useQueryFormSchemaField
28
+ };
29
+ //# sourceMappingURL=hooks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.mjs","sources":["../../src/query-form/hooks.ts"],"sourcesContent":["import type { Form } from '@formily/core'\nimport type { ISchema } from '@formily/json-schema'\nimport type { Component, ComputedRef, MaybeRefOrGetter, Slots } from 'vue'\nimport { isFn } from '@formily/shared'\nimport { createSchemaField } from '@silver-formily/vue'\nimport { computed, toValue } from 'vue'\nimport { mergeQueryFormComponents } from './default-components'\n\nfunction resolveExternalForm(form: unknown): Form | undefined {\n if (isFn(form))\n return (form as () => Form | undefined)()\n return form as Form | undefined\n}\n\ninterface UseQueryFormFormOptions {\n formProps: MaybeRefOrGetter<{ form?: unknown }>\n fallbackForm?: MaybeRefOrGetter<Form | undefined>\n}\n\nexport function useQueryFormForm(options: UseQueryFormFormOptions) {\n const externalForm = computed<Form | undefined>(() => resolveExternalForm(toValue(options.formProps)?.form))\n const activeForm = computed<Form | undefined>(() => externalForm.value ?? toValue(options.fallbackForm))\n\n return {\n externalForm,\n activeForm,\n }\n}\n\ninterface UseQueryFormSchemaFieldOptions {\n slots: Slots\n schema: ComputedRef<ISchema | undefined>\n schemaField: ComputedRef<Component | undefined>\n components: ComputedRef<Record<string, Component> | undefined>\n scope?: ComputedRef<Record<string, any> | undefined>\n}\n\nexport function useQueryFormSchemaField(options: UseQueryFormSchemaFieldOptions) {\n const hasDefaultSlot = computed(() => Boolean(options.slots.default))\n const mergedComponents = computed(() => mergeQueryFormComponents(options.components.value))\n const schemaField = computed<Component | null>(() => {\n if (hasDefaultSlot.value || !options.schema.value)\n return null\n return options.schemaField.value ?? createSchemaField({\n components: mergedComponents.value,\n scope: options.scope?.value,\n }).SchemaField\n })\n\n return {\n hasDefaultSlot,\n schemaField,\n }\n}\n"],"names":["resolveExternalForm","form","isFn","useQueryFormForm","options","externalForm","computed","toValue","activeForm","useQueryFormSchemaField","hasDefaultSlot","mergedComponents","mergeQueryFormComponents","schemaField","createSchemaField"],"mappings":";;;;AAQA,SAASA,EAAoBC,GAAiC;AAC5D,SAAIC,EAAKD,CAAI,IACHA,EAAA,IACHA;AACT;AAOO,SAASE,EAAiBC,GAAkC;AACjE,QAAMC,IAAeC,EAA2B,MAAMN,EAAoBO,EAAQH,EAAQ,SAAS,GAAG,IAAI,CAAC,GACrGI,IAAaF,EAA2B,MAAMD,EAAa,SAASE,EAAQH,EAAQ,YAAY,CAAC;AAEvG,SAAO;AAAA,IACL,cAAAC;AAAA,IACA,YAAAG;AAAA,EAAA;AAEJ;AAUO,SAASC,EAAwBL,GAAyC;AAC/E,QAAMM,IAAiBJ,EAAS,MAAM,EAAQF,EAAQ,MAAM,OAAQ,GAC9DO,IAAmBL,EAAS,MAAMM,EAAyBR,EAAQ,WAAW,KAAK,CAAC,GACpFS,IAAcP,EAA2B,MACzCI,EAAe,SAAS,CAACN,EAAQ,OAAO,QACnC,OACFA,EAAQ,YAAY,SAASU,EAAkB;AAAA,IACpD,YAAYH,EAAiB;AAAA,IAC7B,OAAOP,EAAQ,OAAO;AAAA,EAAA,CACvB,EAAE,WACJ;AAED,SAAO;AAAA,IACL,gBAAAM;AAAA,IACA,aAAAG;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,117 @@
1
+ export type { IQueryFormLightProps, IQueryFormProps, QueryFormVisible, QueryFormVisibleContext } from './types';
2
+ export declare const QueryForm: {
3
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').IQueryFormProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
4
+ components: Record<string, import('vue').Component>;
5
+ gridProps: Omit<import('@formily/grid').IGridOptions, "shouldVisible" | "maxRows">;
6
+ defaultExpanded: boolean;
7
+ showToggle: boolean;
8
+ actionsAtRowEnd: boolean;
9
+ submitText: string;
10
+ resetText: string;
11
+ expandText: string;
12
+ collapseText: string;
13
+ showSubmit: boolean;
14
+ showReset: boolean;
15
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
16
+ P: {};
17
+ B: {};
18
+ D: {};
19
+ C: {};
20
+ M: {};
21
+ Defaults: {};
22
+ }, Readonly<import('./types').IQueryFormProps> & Readonly<{}>, {}, {}, {}, {}, {
23
+ components: Record<string, import('vue').Component>;
24
+ gridProps: Omit<import('@formily/grid').IGridOptions, "shouldVisible" | "maxRows">;
25
+ defaultExpanded: boolean;
26
+ showToggle: boolean;
27
+ actionsAtRowEnd: boolean;
28
+ submitText: string;
29
+ resetText: string;
30
+ expandText: string;
31
+ collapseText: string;
32
+ showSubmit: boolean;
33
+ showReset: boolean;
34
+ }>;
35
+ __isFragment?: never;
36
+ __isTeleport?: never;
37
+ __isSuspense?: never;
38
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').IQueryFormProps> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
39
+ components: Record<string, import('vue').Component>;
40
+ gridProps: Omit<import('@formily/grid').IGridOptions, "shouldVisible" | "maxRows">;
41
+ defaultExpanded: boolean;
42
+ showToggle: boolean;
43
+ actionsAtRowEnd: boolean;
44
+ submitText: string;
45
+ resetText: string;
46
+ expandText: string;
47
+ collapseText: string;
48
+ showSubmit: boolean;
49
+ showReset: boolean;
50
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
51
+ $slots: {
52
+ default?(_: {}): any;
53
+ actions?(_: {
54
+ expanded: boolean;
55
+ toggle: () => void;
56
+ type: "incomplete-wrap";
57
+ }): any;
58
+ actions?(_: {
59
+ expanded: boolean;
60
+ toggle: () => void;
61
+ type: "collapsible";
62
+ }): any;
63
+ actions?(_: {
64
+ expanded: boolean;
65
+ toggle: () => void;
66
+ type: "collapsible" | "complete-wrap";
67
+ }): any;
68
+ collapse?(_: {
69
+ expanded: boolean;
70
+ toggle: () => void;
71
+ type: "collapsible";
72
+ }): any;
73
+ };
74
+ }) & {
75
+ Light: {
76
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').IQueryFormLightProps> & Readonly<{
77
+ onAutoSubmit?: (values: any) => any;
78
+ onAutoSubmitFailed?: (error: any) => any;
79
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
80
+ autoSubmit: (values: any) => any;
81
+ autoSubmitFailed: (error: any) => any;
82
+ }, import('vue').PublicProps, {
83
+ components: Record<string, import('vue').Component>;
84
+ throttleWait: number;
85
+ }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
86
+ P: {};
87
+ B: {};
88
+ D: {};
89
+ C: {};
90
+ M: {};
91
+ Defaults: {};
92
+ }, Readonly<import('./types').IQueryFormLightProps> & Readonly<{
93
+ onAutoSubmit?: (values: any) => any;
94
+ onAutoSubmitFailed?: (error: any) => any;
95
+ }>, {}, {}, {}, {}, {
96
+ components: Record<string, import('vue').Component>;
97
+ throttleWait: number;
98
+ }>;
99
+ __isFragment?: never;
100
+ __isTeleport?: never;
101
+ __isSuspense?: never;
102
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').IQueryFormLightProps> & Readonly<{
103
+ onAutoSubmit?: (values: any) => any;
104
+ onAutoSubmitFailed?: (error: any) => any;
105
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
106
+ autoSubmit: (values: any) => any;
107
+ autoSubmitFailed: (error: any) => any;
108
+ }, string, {
109
+ components: Record<string, import('vue').Component>;
110
+ throttleWait: number;
111
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
112
+ $slots: {
113
+ default?(_: {}): any;
114
+ };
115
+ });
116
+ };
117
+ export default QueryForm;
@@ -0,0 +1,337 @@
1
+ import { ElLink as fe, ElIcon as he } from "element-plus";
2
+ import { reaction as we, toJS as ye, autorun as ve } from "@formily/reactive";
3
+ import "@vueuse/core";
4
+ import { defineComponent as Z, useSlots as ee, computed as d, onUnmounted as te, createBlock as r, openBlock as l, unref as o, mergeProps as f, withCtx as n, createElementVNode as be, normalizeClass as I, renderSlot as x, createCommentVNode as h, resolveDynamicComponent as oe, ref as K, createVNode as W, normalizeStyle as M, normalizeProps as _, createTextVNode as b, toDisplayString as g } from "vue";
5
+ import "@formily/core";
6
+ import "@silver-formily/reactive-vue";
7
+ import { useForm as se, useFieldSchema as ne } from "@silver-formily/vue";
8
+ import { useCleanAttrs as re, compatibleUnderlineProp as ge, composeExport as Fe } from "../__builtins__/shared/utils.mjs";
9
+ import { stylePrefix as le } from "../__builtins__/configs/index.mjs";
10
+ import { _ as ae } from "../form/form.mjs";
11
+ import { useQueryFormForm as ie, useQueryFormSchemaField as ue } from "./hooks.mjs";
12
+ import { t as _e } from "../vendor/lodash.mjs";
13
+ import { ArrowUp as xe, ArrowDown as Se } from "@element-plus/icons-vue";
14
+ import { Schema as X } from "@formily/json-schema";
15
+ import { FormButtonGroup as O } from "../form-button-group/index.mjs";
16
+ import { FormGrid as Y } from "../form-grid/index.mjs";
17
+ import { createFormGrid as Re } from "../form-grid/hooks.mjs";
18
+ import { Reset as H } from "../reset/index.mjs";
19
+ import { Submit as J } from "../submit/index.mjs";
20
+ import '../styles/query-form/index.css';const ke = /* @__PURE__ */ Z({
21
+ name: "FQueryFormLight",
22
+ inheritAttrs: !1,
23
+ __name: "query-form-light",
24
+ props: {
25
+ schema: {},
26
+ schemaField: {},
27
+ components: { default: () => ({}) },
28
+ scope: {},
29
+ throttleWait: { default: 300 }
30
+ },
31
+ emits: ["autoSubmit", "autoSubmitFailed"],
32
+ setup(q, { emit: e }) {
33
+ const w = q, C = e, { props: a } = re(["modelValue", "onUpdate:modelValue"]), D = ee(), L = se(), z = ne(), P = `${le}-query-form-light`, { externalForm: N, activeForm: T } = ie({
34
+ formProps: a,
35
+ fallbackForm: L
36
+ }), A = d(() => w.schema ?? z.value), Q = d(() => ({
37
+ fullness: !1,
38
+ ...a.value,
39
+ form: N.value
40
+ }));
41
+ function $() {
42
+ T.value.submit((i) => (C("autoSubmit", i), a.value.onAutoSubmit?.(i))).catch((i) => {
43
+ C("autoSubmitFailed", i), a.value.onAutoSubmitFailed?.(i);
44
+ });
45
+ }
46
+ const E = _e(() => {
47
+ $();
48
+ }, w.throttleWait, {
49
+ leading: !1,
50
+ trailing: !0
51
+ }), V = we(() => {
52
+ const y = T.value;
53
+ if (y)
54
+ return ye(y.values);
55
+ }, () => {
56
+ E();
57
+ });
58
+ te(() => {
59
+ V(), E.cancel();
60
+ });
61
+ const { hasDefaultSlot: S, schemaField: R } = ue({
62
+ slots: D,
63
+ schema: A,
64
+ schemaField: d(() => w.schemaField),
65
+ components: d(() => w.components)
66
+ });
67
+ return (y, i) => (l(), r(o(ae), f(Q.value, { class: P }), {
68
+ default: n(() => [
69
+ be("div", {
70
+ class: I(`${P}__content`)
71
+ }, [
72
+ o(S) ? x(y.$slots, "default", { key: 0 }) : o(R) ? (l(), r(oe(o(R)), {
73
+ key: 1,
74
+ schema: A.value
75
+ }, null, 8, ["schema"])) : h("", !0)
76
+ ], 2)
77
+ ]),
78
+ _: 3
79
+ }, 16));
80
+ }
81
+ }), F = 1, Ce = /* @__PURE__ */ Z({
82
+ name: "FQueryForm",
83
+ inheritAttrs: !1,
84
+ __name: "query-form",
85
+ props: {
86
+ schema: {},
87
+ schemaField: {},
88
+ components: { default: () => ({}) },
89
+ scope: {},
90
+ gridProps: { default: () => ({}) },
91
+ defaultExpanded: { type: Boolean, default: !1 },
92
+ showToggle: { type: Boolean, default: !0 },
93
+ actionsAtRowEnd: { type: Boolean, default: !1 },
94
+ visibleWhen: {},
95
+ submitText: { default: "查询" },
96
+ resetText: { default: "重置" },
97
+ expandText: { default: "展开" },
98
+ collapseText: { default: "收起" },
99
+ showSubmit: { type: Boolean, default: !0 },
100
+ showReset: { type: Boolean, default: !0 },
101
+ submitProps: {},
102
+ resetProps: {}
103
+ },
104
+ setup(q) {
105
+ const e = q, { props: w } = re(["modelValue", "onUpdate:modelValue"]), C = ee(), a = `${le}-query-form`, D = Y.GridColumn, L = ne(), z = se(), { externalForm: P, activeForm: N } = ie({
106
+ formProps: w,
107
+ fallbackForm: z
108
+ }), T = d(() => ({
109
+ fullness: !0,
110
+ ...w.value,
111
+ form: P.value
112
+ })), A = d(() => {
113
+ const t = e.schema ?? L.value;
114
+ /* istanbul ignore next -- @preserve defensive: schema can be temporarily absent in external field-schema lifecycle */
115
+ return t ? (t instanceof X ? t : new X(t)).mapProperties((c, p) => ({
116
+ name: p,
117
+ schema: c
118
+ })) : [];
119
+ });
120
+ function Q(t) {
121
+ return N.value?.query(t).take();
122
+ }
123
+ function $(t, s, c) {
124
+ const p = t.index ?? 0, G = A.value[p], B = G?.schema, U = G?.name ?? B?.name;
125
+ return {
126
+ field: Q(U),
127
+ schema: B,
128
+ index: p,
129
+ node: t,
130
+ grid: s,
131
+ collapsed: c ?? s.maxRows !== 1 / 0,
132
+ breakpoint: s.breakpoint
133
+ };
134
+ }
135
+ function E(t) {
136
+ if (!t.collapsed)
137
+ return !0;
138
+ const s = t.node.shadowRow ?? 0;
139
+ if (!(s < F + 1))
140
+ return !1;
141
+ if (!(R(t.grid) > F))
142
+ return !0;
143
+ const G = t.node.shadowColumn ?? 1, B = t.node.span ?? 1, U = G + B - 1;
144
+ return !(s === F && U === t.grid.columns);
145
+ }
146
+ function V(t) {
147
+ return (e.visibleWhen ? e.visibleWhen(t) : E(t)) !== !1;
148
+ }
149
+ function S(t, s) {
150
+ return t.element ? t.element.dataset.queryFormActions !== void 0 : t.index === s.childSize - 1;
151
+ }
152
+ function R(t) {
153
+ const s = (t.children ?? []).filter((c) => !S(c, t)).map((c) => c.shadowRow ?? 0);
154
+ return new Set(s).size;
155
+ }
156
+ const y = (t, s) => S(t, s) ? !0 : V($(t, s)), i = e.gridProps ?? {}, me = {
157
+ ...i.minColumns === void 0 && i.maxColumns === void 0 ? { maxColumns: 4 } : {},
158
+ ...i,
159
+ maxRows: e.defaultExpanded || !e.showToggle ? 1 / 0 : F,
160
+ shouldVisible: y
161
+ }, u = Re(me), v = K(u.maxRows === 1 / 0), m = K("complete-wrap");
162
+ function ce() {
163
+ if (!e.showToggle) {
164
+ m.value = "incomplete-wrap";
165
+ return;
166
+ }
167
+ if (!e.visibleWhen) {
168
+ m.value = R(u) > F ? "collapsible" : "incomplete-wrap";
169
+ return;
170
+ }
171
+ const s = (u.children ?? []).some((p) => S(p, u) ? !1 : !V($(p, u, !0)));
172
+ /* istanbul ignore next -- @preserve layout branch depends on runtime grid measurement in browser */
173
+ if (s) {
174
+ m.value = "collapsible";
175
+ return;
176
+ }
177
+ const c = u.shadowRows;
178
+ m.value = c < F + 1 ? "incomplete-wrap" : "complete-wrap";
179
+ }
180
+ const de = ve(() => {
181
+ v.value = u.maxRows === 1 / 0, ce();
182
+ });
183
+ te(de);
184
+ function k() {
185
+ e.showToggle && (u.maxRows = u.maxRows === 1 / 0 ? F : 1 / 0);
186
+ }
187
+ const { hasDefaultSlot: pe, schemaField: j } = ue({
188
+ slots: C,
189
+ schema: d(() => e.schema),
190
+ schemaField: d(() => e.schemaField),
191
+ components: d(() => e.components),
192
+ scope: d(() => e.scope)
193
+ });
194
+ return (t, s) => (l(), r(o(ae), f(T.value, { class: a }), {
195
+ default: n(() => [
196
+ W(o(Y), { grid: o(u) }, {
197
+ default: n(() => [
198
+ o(pe) ? x(t.$slots, "default", { key: 0 }) : o(j) ? (l(), r(oe(o(j)), {
199
+ key: 1,
200
+ schema: e.schema
201
+ }, null, 8, ["schema"])) : h("", !0),
202
+ W(o(D), {
203
+ "grid-span": -1,
204
+ "data-query-form-actions": "",
205
+ class: I([
206
+ `${a}__actions`,
207
+ e.actionsAtRowEnd && `${a}__actions--row-end`
208
+ ])
209
+ }, {
210
+ default: n(() => [
211
+ m.value === "incomplete-wrap" ? (l(), r(o(O), {
212
+ key: 0,
213
+ align: e.actionsAtRowEnd ? "right" : "left",
214
+ "align-form-item": "",
215
+ inline: "",
216
+ style: M(e.actionsAtRowEnd && { width: "100%" })
217
+ }, {
218
+ default: n(() => [
219
+ x(t.$slots, "actions", {
220
+ expanded: v.value,
221
+ toggle: k,
222
+ type: m.value
223
+ }, () => [
224
+ e.showSubmit ? (l(), r(o(J), _(f({ key: 0 }, e.submitProps)), {
225
+ default: n(() => [
226
+ b(g(e.submitText), 1)
227
+ ]),
228
+ _: 1
229
+ }, 16)) : h("", !0),
230
+ e.showReset ? (l(), r(o(H), _(f({ key: 1 }, e.resetProps)), {
231
+ default: n(() => [
232
+ b(g(e.resetText), 1)
233
+ ]),
234
+ _: 1
235
+ }, 16)) : h("", !0)
236
+ ])
237
+ ]),
238
+ _: 3
239
+ }, 8, ["align", "style"])) : m.value === "collapsible" && e.showToggle ? (l(), r(o(O), {
240
+ key: 1,
241
+ align: e.actionsAtRowEnd ? "right" : "left",
242
+ "align-form-item": "",
243
+ inline: "",
244
+ style: M(e.actionsAtRowEnd && { width: "100%" })
245
+ }, {
246
+ default: n(() => [
247
+ x(t.$slots, "actions", {
248
+ expanded: v.value,
249
+ toggle: k,
250
+ type: m.value
251
+ }, () => [
252
+ e.showSubmit ? (l(), r(o(J), _(f({ key: 0 }, e.submitProps)), {
253
+ default: n(() => [
254
+ b(g(e.submitText), 1)
255
+ ]),
256
+ _: 1
257
+ }, 16)) : h("", !0),
258
+ e.showReset ? (l(), r(o(H), _(f({ key: 1 }, e.resetProps)), {
259
+ default: n(() => [
260
+ b(g(e.resetText), 1)
261
+ ]),
262
+ _: 1
263
+ }, 16)) : h("", !0)
264
+ ]),
265
+ x(t.$slots, "collapse", {
266
+ expanded: v.value,
267
+ toggle: k,
268
+ type: m.value
269
+ }, () => [
270
+ W(o(fe), {
271
+ type: "primary",
272
+ underline: o(ge)(),
273
+ class: I(`${a}__collapse-link`),
274
+ onClick: k
275
+ }, {
276
+ default: n(() => [
277
+ b(g(v.value ? e.collapseText : e.expandText) + " ", 1),
278
+ W(o(he), {
279
+ class: I(`${a}__collapse-icon`)
280
+ }, {
281
+ default: n(() => [
282
+ v.value ? (l(), r(o(xe), { key: 0 })) : (l(), r(o(Se), { key: 1 }))
283
+ ]),
284
+ _: 1
285
+ }, 8, ["class"])
286
+ ]),
287
+ _: 1
288
+ }, 8, ["underline", "class"])
289
+ ])
290
+ ]),
291
+ _: 3
292
+ }, 8, ["align", "style"])) : (l(), r(o(O), {
293
+ key: 2,
294
+ align: "right",
295
+ inline: "",
296
+ style: { display: "flex", width: "100%" }
297
+ }, {
298
+ default: n(() => [
299
+ x(t.$slots, "actions", {
300
+ expanded: v.value,
301
+ toggle: k,
302
+ type: m.value
303
+ }, () => [
304
+ e.showSubmit ? (l(), r(o(J), _(f({ key: 0 }, e.submitProps)), {
305
+ default: n(() => [
306
+ b(g(e.submitText), 1)
307
+ ]),
308
+ _: 1
309
+ }, 16)) : h("", !0),
310
+ e.showReset ? (l(), r(o(H), _(f({ key: 1 }, e.resetProps)), {
311
+ default: n(() => [
312
+ b(g(e.resetText), 1)
313
+ ]),
314
+ _: 1
315
+ }, 16)) : h("", !0)
316
+ ])
317
+ ]),
318
+ _: 3
319
+ }))
320
+ ]),
321
+ _: 3
322
+ }, 8, ["class"])
323
+ ]),
324
+ _: 3
325
+ }, 8, ["grid"])
326
+ ]),
327
+ _: 3
328
+ }, 16));
329
+ }
330
+ }), Ke = Fe(Ce, {
331
+ Light: ke
332
+ });
333
+ export {
334
+ Ke as QueryForm,
335
+ Ke as default
336
+ };
337
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/query-form/query-form-light.vue","../../src/query-form/query-form.vue","../../src/query-form/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Form } from '@formily/core'\nimport type { IQueryFormLightProps } from './types'\nimport { reaction, toJS } from '@formily/reactive'\nimport { useFieldSchema, useForm } from '@silver-formily/vue'\nimport { throttle } from 'lodash-es'\nimport { computed, onUnmounted, useSlots } from 'vue'\nimport { stylePrefix, useCleanAttrs } from '../__builtins__'\nimport { Form as FForm } from '../form'\nimport { useQueryFormForm, useQueryFormSchemaField } from './hooks'\n\ndefineOptions({\n name: 'FQueryFormLight',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<IQueryFormLightProps>(), {\n components: () => ({}),\n throttleWait: 300,\n})\nconst emit = defineEmits<{\n (e: 'autoSubmit', values: Form['values']): void\n (e: 'autoSubmitFailed', error: any): void\n}>()\n\nconst { props: formProps } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\nconst slots = useSlots()\nconst formRef = useForm()\nconst fieldSchemaRef = useFieldSchema()\nconst prefixCls = `${stylePrefix}-query-form-light`\n\nconst { externalForm, activeForm } = useQueryFormForm({\n formProps,\n fallbackForm: formRef,\n})\nconst resolvedSchema = computed(() => props.schema ?? fieldSchemaRef.value)\n\nconst innerFormProps = computed(() => ({\n fullness: false,\n ...formProps.value,\n form: externalForm.value,\n}))\n\nfunction submitByChange() {\n const form = activeForm.value\n form\n .submit((values) => {\n emit('autoSubmit', values)\n return formProps.value.onAutoSubmit?.(values)\n })\n .catch((error) => {\n emit('autoSubmitFailed', error)\n formProps.value.onAutoSubmitFailed?.(error)\n })\n}\n\nconst triggerSubmit = throttle(() => {\n submitByChange()\n}, props.throttleWait, {\n leading: false,\n trailing: true,\n})\n\nconst dispose = reaction(() => {\n const form = activeForm.value\n if (!form)\n return\n return toJS(form.values)\n}, () => {\n triggerSubmit()\n})\n\nonUnmounted(() => {\n dispose()\n triggerSubmit.cancel()\n})\n\nconst { hasDefaultSlot, schemaField } = useQueryFormSchemaField({\n slots,\n schema: resolvedSchema,\n schemaField: computed(() => props.schemaField),\n components: computed(() => props.components),\n})\n</script>\n\n<template>\n <FForm v-bind=\"innerFormProps\" :class=\"prefixCls\">\n <div :class=\"`${prefixCls}__content`\">\n <slot v-if=\"hasDefaultSlot\" />\n <component\n :is=\"schemaField\"\n v-else-if=\"schemaField\"\n :schema=\"resolvedSchema\"\n />\n </div>\n </FForm>\n</template>\n","<script setup lang=\"ts\">\nimport type { Grid, GridNode, IGridOptions } from '@formily/grid'\nimport type { ISchema } from '@formily/json-schema'\nimport type { IQueryFormProps, SchemaEntry } from './types'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\nimport { Schema } from '@formily/json-schema'\nimport { autorun } from '@formily/reactive'\nimport { useFieldSchema, useForm } from '@silver-formily/vue'\nimport { ElIcon, ElLink } from 'element-plus'\nimport { computed, onUnmounted, ref, useSlots } from 'vue'\nimport { compatibleUnderlineProp, stylePrefix, useCleanAttrs } from '../__builtins__'\nimport { Form } from '../form'\nimport { FormButtonGroup } from '../form-button-group'\nimport { FormGrid } from '../form-grid'\nimport { createFormGrid } from '../form-grid/hooks'\nimport { Reset } from '../reset'\nimport { Submit } from '../submit'\nimport { useQueryFormForm, useQueryFormSchemaField } from './hooks'\n\ndefineOptions({\n name: 'FQueryForm',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<IQueryFormProps>(), {\n components: () => ({}),\n gridProps: () => ({}),\n defaultExpanded: false,\n showToggle: true,\n actionsAtRowEnd: false,\n submitText: '查询',\n resetText: '重置',\n expandText: '展开',\n collapseText: '收起',\n showSubmit: true,\n showReset: true,\n})\n\nconst { props: formProps } = useCleanAttrs(['modelValue', 'onUpdate:modelValue'])\nconst slots = useSlots()\nconst prefixCls = `${stylePrefix}-query-form`\nconst FormGridColumn = FormGrid.GridColumn\n\nconst COLLAPSED_ROWS = 1\nconst fieldSchemaRef = useFieldSchema()\nconst formRef = useForm()\nconst { externalForm, activeForm } = useQueryFormForm({\n formProps,\n fallbackForm: formRef,\n})\nconst innerFormProps = computed(() => ({\n fullness: true,\n ...formProps.value,\n form: externalForm.value,\n}))\n\nconst schemaList = computed<SchemaEntry[]>(() => {\n const rawSchema = props.schema ?? fieldSchemaRef.value\n /* istanbul ignore next -- @preserve defensive: schema can be temporarily absent in external field-schema lifecycle */\n if (!rawSchema)\n return []\n const schema = rawSchema instanceof Schema ? rawSchema : new Schema(rawSchema)\n return schema.mapProperties((childSchema: ISchema, name: string | number) => ({\n name,\n schema: childSchema,\n }))\n})\n\nfunction resolveField(name?: string | number) {\n return activeForm.value?.query(name).take()\n}\n\nfunction createVisibleContext(\n node: GridNode,\n grid: Grid<HTMLElement>,\n collapsedOverride?: boolean,\n) {\n const index = node.index ?? 0\n const entry = schemaList.value[index]\n const schema = entry?.schema\n const name = entry?.name ?? schema?.name\n return {\n field: resolveField(name),\n schema,\n index,\n node,\n grid,\n collapsed: collapsedOverride ?? grid.maxRows !== Infinity,\n breakpoint: grid.breakpoint,\n }\n}\n\nfunction defaultVisibleWhen(context: ReturnType<typeof createVisibleContext>) {\n if (!context.collapsed)\n return true\n\n const shadowRow = context.node.shadowRow ?? 0\n const withinRows = shadowRow < COLLAPSED_ROWS + 1\n if (!withinRows)\n return false\n\n const isCollapsible = getFieldRowCount(context.grid) > COLLAPSED_ROWS\n if (!isCollapsible)\n return true\n const shadowColumn = context.node.shadowColumn ?? 1\n const span = context.node.span ?? 1\n const endColumn = shadowColumn + span - 1\n if (shadowRow === COLLAPSED_ROWS && endColumn === context.grid.columns)\n return false\n\n return true\n}\n\nfunction resolveVisibleWhen(context: ReturnType<typeof createVisibleContext>) {\n const visible = props.visibleWhen\n ? props.visibleWhen(context)\n : defaultVisibleWhen(context)\n return visible !== false\n}\n\nfunction isActionsNode(node: GridNode, grid: Grid<HTMLElement>) {\n if (node.element) {\n return node.element.dataset.queryFormActions !== undefined\n }\n return node.index === grid.childSize - 1\n}\n\nfunction getFieldRowCount(grid: Grid<HTMLElement>) {\n const rows = (grid.children ?? [])\n .filter(node => !isActionsNode(node, grid))\n .map(node => node.shadowRow ?? 0)\n return new Set(rows).size\n}\n\nconst defaultShouldVisible: IGridOptions['shouldVisible'] = (node, grid) => {\n if (isActionsNode(node, grid))\n return true\n return resolveVisibleWhen(createVisibleContext(node, grid))\n}\n\nconst restGridProps = props.gridProps ?? {}\nconst defaultGridProps: Partial<IGridOptions> = restGridProps.minColumns === undefined && restGridProps.maxColumns === undefined\n ? { maxColumns: 4 }\n : {}\n\nconst gridOptions: IGridOptions = {\n ...defaultGridProps,\n ...restGridProps,\n maxRows: (props.defaultExpanded || !props.showToggle) ? Infinity : COLLAPSED_ROWS,\n shouldVisible: defaultShouldVisible,\n}\n\nconst internalGrid = createFormGrid(gridOptions)\nconst grid = internalGrid\n\nconst expanded = ref(grid.maxRows === Infinity)\nconst gridType = ref<'incomplete-wrap' | 'collapsible' | 'complete-wrap'>('complete-wrap')\n\nfunction updateType() {\n if (!props.showToggle) {\n gridType.value = 'incomplete-wrap'\n return\n }\n\n if (!props.visibleWhen) {\n gridType.value = getFieldRowCount(grid) > COLLAPSED_ROWS\n ? 'collapsible'\n : 'incomplete-wrap'\n return\n }\n\n const nodes = grid.children ?? []\n const hasHiddenInCollapsed = nodes.some((node) => {\n if (isActionsNode(node, grid))\n return false\n return !resolveVisibleWhen(createVisibleContext(node, grid, true))\n })\n /* istanbul ignore next -- @preserve layout branch depends on runtime grid measurement in browser */\n if (hasHiddenInCollapsed) {\n gridType.value = 'collapsible'\n return\n }\n const realRows = grid.shadowRows\n gridType.value = realRows < COLLAPSED_ROWS + 1 ? 'incomplete-wrap' : 'complete-wrap'\n}\n\nconst dispose = autorun(() => {\n expanded.value = grid.maxRows === Infinity\n updateType()\n})\n\nonUnmounted(dispose)\n\nfunction toggle() {\n if (!props.showToggle)\n return\n grid.maxRows = grid.maxRows === Infinity ? COLLAPSED_ROWS : Infinity\n}\n\nconst { hasDefaultSlot, schemaField } = useQueryFormSchemaField({\n slots,\n schema: computed(() => props.schema),\n schemaField: computed(() => props.schemaField),\n components: computed(() => props.components),\n scope: computed(() => props.scope),\n})\n</script>\n\n<template>\n <Form v-bind=\"innerFormProps\" :class=\"prefixCls\">\n <FormGrid :grid=\"grid\">\n <slot v-if=\"hasDefaultSlot\" />\n <component\n :is=\"schemaField\"\n v-else-if=\"schemaField\"\n :schema=\"props.schema\"\n />\n <FormGridColumn\n :grid-span=\"-1\"\n data-query-form-actions\n :class=\"[\n `${prefixCls}__actions`,\n props.actionsAtRowEnd && `${prefixCls}__actions--row-end`,\n ]\"\n >\n <template v-if=\"gridType === 'incomplete-wrap'\">\n <FormButtonGroup\n :align=\"props.actionsAtRowEnd ? 'right' : 'left'\"\n align-form-item\n inline\n :style=\"props.actionsAtRowEnd && { width: '100%' }\"\n >\n <slot\n name=\"actions\"\n :expanded=\"expanded\"\n :toggle=\"toggle\"\n :type=\"gridType\"\n >\n <Submit v-if=\"props.showSubmit\" v-bind=\"props.submitProps\">\n {{ props.submitText }}\n </Submit>\n <Reset v-if=\"props.showReset\" v-bind=\"props.resetProps\">\n {{ props.resetText }}\n </Reset>\n </slot>\n </FormButtonGroup>\n </template>\n <template v-else-if=\"gridType === 'collapsible' && props.showToggle\">\n <FormButtonGroup\n :align=\"props.actionsAtRowEnd ? 'right' : 'left'\"\n align-form-item\n inline\n :style=\"props.actionsAtRowEnd && { width: '100%' }\"\n >\n <slot\n name=\"actions\"\n :expanded=\"expanded\"\n :toggle=\"toggle\"\n :type=\"gridType\"\n >\n <Submit v-if=\"props.showSubmit\" v-bind=\"props.submitProps\">\n {{ props.submitText }}\n </Submit>\n <Reset v-if=\"props.showReset\" v-bind=\"props.resetProps\">\n {{ props.resetText }}\n </Reset>\n </slot>\n <slot\n name=\"collapse\"\n :expanded=\"expanded\"\n :toggle=\"toggle\"\n :type=\"gridType\"\n >\n <ElLink\n type=\"primary\"\n :underline=\"compatibleUnderlineProp()\"\n :class=\"`${prefixCls}__collapse-link`\"\n @click=\"toggle\"\n >\n {{ expanded ? props.collapseText : props.expandText }}\n <ElIcon :class=\"`${prefixCls}__collapse-icon`\">\n <ArrowUp v-if=\"expanded\" />\n <ArrowDown v-else />\n </ElIcon>\n </ElLink>\n </slot>\n </FormButtonGroup>\n </template>\n <template v-else>\n <FormButtonGroup\n align=\"right\"\n inline\n style=\"display: flex; width: 100%;\"\n >\n <slot\n name=\"actions\"\n :expanded=\"expanded\"\n :toggle=\"toggle\"\n :type=\"gridType\"\n >\n <Submit v-if=\"props.showSubmit\" v-bind=\"props.submitProps\">\n {{ props.submitText }}\n </Submit>\n <Reset v-if=\"props.showReset\" v-bind=\"props.resetProps\">\n {{ props.resetText }}\n </Reset>\n </slot>\n </FormButtonGroup>\n </template>\n </FormGridColumn>\n </FormGrid>\n </Form>\n</template>\n","import { composeExport } from '../__builtins__/shared'\nimport QueryFormLightInner from './query-form-light.vue'\nimport QueryFormInner from './query-form.vue'\nimport './style.scss'\n\nexport type { IQueryFormLightProps, IQueryFormProps, QueryFormVisible, QueryFormVisibleContext } from './types'\n\nexport const QueryForm = composeExport(QueryFormInner, {\n Light: QueryFormLightInner,\n})\n\nexport default QueryForm\n"],"names":["props","__props","emit","__emit","formProps","useCleanAttrs","slots","useSlots","formRef","useForm","fieldSchemaRef","useFieldSchema","prefixCls","stylePrefix","externalForm","activeForm","useQueryFormForm","resolvedSchema","computed","innerFormProps","submitByChange","values","error","triggerSubmit","throttle","dispose","reaction","form","toJS","onUnmounted","hasDefaultSlot","schemaField","useQueryFormSchemaField","_openBlock","_createBlock","_unref","_mergeProps","_createElementVNode","_renderSlot","_ctx","_resolveDynamicComponent","COLLAPSED_ROWS","FormGridColumn","FormGrid","schemaList","rawSchema","Schema","childSchema","name","resolveField","createVisibleContext","node","grid","collapsedOverride","index","entry","schema","defaultVisibleWhen","context","shadowRow","getFieldRowCount","shadowColumn","span","endColumn","resolveVisibleWhen","isActionsNode","rows","defaultShouldVisible","restGridProps","gridOptions","createFormGrid","expanded","ref","gridType","updateType","hasHiddenInCollapsed","realRows","autorun","toggle","_createVNode","_normalizeClass","FormButtonGroup","_normalizeStyle","Submit","_normalizeProps","_createTextVNode","_toDisplayString","Reset","ElLink","compatibleUnderlineProp","ElIcon","ArrowUp","ArrowDown","QueryForm","composeExport","QueryFormInner","QueryFormLightInner"],"mappings":"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"}