@sunny-base-web/ui 0.0.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 (100) hide show
  1. package/dist/basic/icon/icon.d.ts +8 -0
  2. package/dist/basic/icon/icon.d.ts.map +1 -0
  3. package/dist/basic/icon/index.d.ts +2 -0
  4. package/dist/basic/icon/index.d.ts.map +1 -0
  5. package/dist/basic/scrollbar/components/ScrollArea.d.ts +28 -0
  6. package/dist/basic/scrollbar/components/ScrollArea.d.ts.map +1 -0
  7. package/dist/basic/scrollbar/components/ScrollBar.d.ts +9 -0
  8. package/dist/basic/scrollbar/components/ScrollBar.d.ts.map +1 -0
  9. package/dist/basic/scrollbar/components/index.d.ts +3 -0
  10. package/dist/basic/scrollbar/components/index.d.ts.map +1 -0
  11. package/dist/basic/scrollbar/index.d.ts +2 -0
  12. package/dist/basic/scrollbar/index.d.ts.map +1 -0
  13. package/dist/basic/scrollbar/scrollbar.d.ts +53 -0
  14. package/dist/basic/scrollbar/scrollbar.d.ts.map +1 -0
  15. package/dist/data/edit-grid/api.d.ts +21 -0
  16. package/dist/data/edit-grid/api.d.ts.map +1 -0
  17. package/dist/data/edit-grid/index.d.ts +2 -0
  18. package/dist/data/edit-grid/index.d.ts.map +1 -0
  19. package/dist/data/edit-grid/use-vxe-grid.d.ts +29 -0
  20. package/dist/data/edit-grid/use-vxe-grid.d.ts.map +1 -0
  21. package/dist/data/query-grid/api.d.ts +21 -0
  22. package/dist/data/query-grid/api.d.ts.map +1 -0
  23. package/dist/data/query-grid/index.d.ts +2 -0
  24. package/dist/data/query-grid/index.d.ts.map +1 -0
  25. package/dist/data/query-grid/renderer/FilterComplex.d.ts +11 -0
  26. package/dist/data/query-grid/renderer/FilterComplex.d.ts.map +1 -0
  27. package/dist/data/query-grid/renderer/index.d.ts +2 -0
  28. package/dist/data/query-grid/renderer/index.d.ts.map +1 -0
  29. package/dist/data/query-grid/sticky.d.ts +4 -0
  30. package/dist/data/query-grid/sticky.d.ts.map +1 -0
  31. package/dist/data/query-grid/use-query-grid.d.ts +29 -0
  32. package/dist/data/query-grid/use-query-grid.d.ts.map +1 -0
  33. package/dist/data/upload/index.d.ts +48 -0
  34. package/dist/data/upload/index.d.ts.map +1 -0
  35. package/dist/entry/form/SunnyForm.d.ts +30 -0
  36. package/dist/entry/form/SunnyForm.d.ts.map +1 -0
  37. package/dist/entry/form/SunnyUseForm.d.ts +29 -0
  38. package/dist/entry/form/SunnyUseForm.d.ts.map +1 -0
  39. package/dist/entry/form/components/form-actions.d.ts +55 -0
  40. package/dist/entry/form/components/form-actions.d.ts.map +1 -0
  41. package/dist/entry/form/config.d.ts +13 -0
  42. package/dist/entry/form/config.d.ts.map +1 -0
  43. package/dist/entry/form/form-api.d.ts +191 -0
  44. package/dist/entry/form/form-api.d.ts.map +1 -0
  45. package/dist/entry/form/form-render/Form.d.ts +20 -0
  46. package/dist/entry/form/form-render/Form.d.ts.map +1 -0
  47. package/dist/entry/form/form-render/FormField.d.ts +7 -0
  48. package/dist/entry/form/form-render/FormField.d.ts.map +1 -0
  49. package/dist/entry/form/form-render/context.d.ts +41 -0
  50. package/dist/entry/form/form-render/context.d.ts.map +1 -0
  51. package/dist/entry/form/form-render/dependencies.d.ts +19 -0
  52. package/dist/entry/form/form-render/dependencies.d.ts.map +1 -0
  53. package/dist/entry/form/form-render/expandable.d.ts +11 -0
  54. package/dist/entry/form/form-render/expandable.d.ts.map +1 -0
  55. package/dist/entry/form/form-render/helper.d.ts +33 -0
  56. package/dist/entry/form/form-render/helper.d.ts.map +1 -0
  57. package/dist/entry/form/index.d.ts +7 -0
  58. package/dist/entry/form/index.d.ts.map +1 -0
  59. package/dist/entry/form/store.d.ts +46 -0
  60. package/dist/entry/form/store.d.ts.map +1 -0
  61. package/dist/entry/form/types.d.ts +337 -0
  62. package/dist/entry/form/types.d.ts.map +1 -0
  63. package/dist/entry/form/use-form-context.d.ts +29 -0
  64. package/dist/entry/form/use-form-context.d.ts.map +1 -0
  65. package/dist/entry/form/use-sunny-form.d.ts +6 -0
  66. package/dist/entry/form/use-sunny-form.d.ts.map +1 -0
  67. package/dist/entry/index.d.ts +4 -0
  68. package/dist/entry/index.d.ts.map +1 -0
  69. package/dist/entry/search-input-tag/SearchInputTag.d.ts +32 -0
  70. package/dist/entry/search-input-tag/SearchInputTag.d.ts.map +1 -0
  71. package/dist/entry/search-input-tag/index.d.ts +5 -0
  72. package/dist/entry/search-input-tag/index.d.ts.map +1 -0
  73. package/dist/entry/search-input-tag/types.d.ts +12 -0
  74. package/dist/entry/search-input-tag/types.d.ts.map +1 -0
  75. package/dist/entry/select/BatchSelect.d.ts +28 -0
  76. package/dist/entry/select/BatchSelect.d.ts.map +1 -0
  77. package/dist/entry/select/Select.d.ts +37 -0
  78. package/dist/entry/select/Select.d.ts.map +1 -0
  79. package/dist/entry/select/index.d.ts +6 -0
  80. package/dist/entry/select/index.d.ts.map +1 -0
  81. package/dist/entry/select/types.d.ts +66 -0
  82. package/dist/entry/select/types.d.ts.map +1 -0
  83. package/dist/feedback/modal/Modal.d.ts +40 -0
  84. package/dist/feedback/modal/Modal.d.ts.map +1 -0
  85. package/dist/feedback/modal/index.d.ts +7 -0
  86. package/dist/feedback/modal/index.d.ts.map +1 -0
  87. package/dist/feedback/modal/modal-api.d.ts +9 -0
  88. package/dist/feedback/modal/modal-api.d.ts.map +1 -0
  89. package/dist/feedback/modal/types.d.ts +60 -0
  90. package/dist/feedback/modal/types.d.ts.map +1 -0
  91. package/dist/feedback/modal/use-sunny-modal.d.ts +3 -0
  92. package/dist/feedback/modal/use-sunny-modal.d.ts.map +1 -0
  93. package/dist/index.d.ts +17 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +1 -0
  96. package/dist/index.mjs +3133 -0
  97. package/dist/navigation/nprogress/index.d.ts +12 -0
  98. package/dist/navigation/nprogress/index.d.ts.map +1 -0
  99. package/dist/ui.css +1 -0
  100. package/package.json +55 -0
@@ -0,0 +1,7 @@
1
+ import { default as Modal } from './Modal';
2
+ import { useSunnyModal } from './use-sunny-modal';
3
+ import { ModalApi } from './modal-api';
4
+ import * as ModalTypes from './types';
5
+ export { Modal, useSunnyModal, ModalApi, ModalTypes };
6
+ export default Modal;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feedback/modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AACtD,eAAe,KAAK,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ModalApiOptions, ModalMethods, ModalProps } from './types';
2
+ export declare class ModalApi implements ModalMethods {
3
+ state: ModalProps;
4
+ constructor(options?: ModalApiOptions);
5
+ open: () => void;
6
+ close: () => void;
7
+ setState(stateOrFn: ((prev: ModalProps) => Partial<ModalProps>) | Partial<ModalProps>): this;
8
+ }
9
+ //# sourceMappingURL=modal-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-api.d.ts","sourceRoot":"","sources":["../../../src/feedback/modal/modal-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEzE,qBAAa,QAAS,YAAW,YAAY;IACpC,KAAK,EAAE,UAAU,CAAC;gBAEb,OAAO,GAAE,eAAoB;IAOzC,IAAI,aAGF;IAEF,KAAK,aAGH;IAEF,QAAQ,CACN,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;CAU/E"}
@@ -0,0 +1,60 @@
1
+ export interface ModalProps {
2
+ /** 是否可见 */
3
+ modelValue?: boolean;
4
+ /** 标题 */
5
+ title?: string;
6
+ /** 宽度 */
7
+ width?: string | number;
8
+ /** 距离顶部距离 */
9
+ top?: string | number;
10
+ /** 层级 */
11
+ zIndex?: number;
12
+ /** 帮助信息 */
13
+ helpMessage?: string;
14
+ /** 是否支持 ESC 关闭 */
15
+ closeOnEsc?: boolean;
16
+ /** 是否支持点击遮罩关闭 */
17
+ closeOnClickModal?: boolean;
18
+ /** 确认按钮文字 */
19
+ okText?: string;
20
+ /** 取消按钮文字 */
21
+ cancelText?: string;
22
+ /** 确认按钮 loading */
23
+ okLoading?: boolean;
24
+ /** 确认按钮 loading (兼容) */
25
+ confirmLoading?: boolean;
26
+ /** 是否隐藏取消按钮 */
27
+ hideCancel?: boolean;
28
+ /** 确认按钮 props */
29
+ okButtonProps?: any;
30
+ /** 取消按钮 props */
31
+ cancelButtonProps?: any;
32
+ /** 可见性变化回调 */
33
+ onVisibleChange?: (visible: boolean) => void;
34
+ /** 确认前回调 */
35
+ onBeforeOk?: (done?: (closed: boolean) => void) => void | boolean | Promise<void | boolean>;
36
+ /** 取消前回调 */
37
+ onBeforeCancel?: () => boolean | Promise<boolean>;
38
+ /** 关闭回调 */
39
+ onClose?: () => void;
40
+ /** 确认回调 */
41
+ onOk?: () => void;
42
+ }
43
+ export interface ModalApiOptions extends Partial<ModalProps> {
44
+ [key: string]: any;
45
+ }
46
+ export interface ModalMethods {
47
+ /** 设置属性 */
48
+ setProps: (props: Partial<ModalProps>) => void;
49
+ /** 打开弹窗 */
50
+ open: () => void;
51
+ /** 关闭弹窗 */
52
+ close: () => void;
53
+ /** 设置状态 */
54
+ setState: (stateOrFn: ((prev: ModalProps) => Partial<ModalProps>) | Partial<ModalProps>) => void;
55
+ }
56
+ export type UseModalReturnType = [
57
+ any,
58
+ ModalMethods
59
+ ];
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/feedback/modal/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,iBAAiB;IACjB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,cAAc;IACd,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,YAAY;IACZ,UAAU,CAAC,EAAE,CACX,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,KAC7B,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IAC9C,YAAY;IACZ,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO,CAAC,UAAU,CAAC;IAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC/C,WAAW;IACX,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,WAAW;IACX,QAAQ,EAAE,CACR,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,KACzE,IAAI,CAAC;CACX;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG;IACH,YAAY;CACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ModalApiOptions, UseModalReturnType } from './types';
2
+ export declare function useSunnyModal(options?: ModalApiOptions): UseModalReturnType;
3
+ //# sourceMappingURL=use-sunny-modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sunny-modal.d.ts","sourceRoot":"","sources":["../../../src/feedback/modal/use-sunny-modal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAInE,wBAAgB,aAAa,CAC3B,OAAO,GAAE,eAAoB,GAC5B,kBAAkB,CA2BpB"}
@@ -0,0 +1,17 @@
1
+ import { Modal, useSunnyModal, ModalTypes } from './feedback/modal';
2
+ import { SunnyIcon } from './basic/icon';
3
+ import { SunnyScrollbar } from './basic/scrollbar';
4
+ import { SunnyUpload } from './data/upload';
5
+ import { default as SunnySelect } from './entry/select';
6
+ import { default as SunnyBatchSelect } from './entry/select/BatchSelect';
7
+ import { default as SunnySearchInputTag } from './entry/search-input-tag';
8
+ import { useSunnyForm, FormApi, SunnyForm, setupSunnyForm, z } from './entry/form';
9
+ import { useSunnyEditGrid } from './data/edit-grid';
10
+ import { useSunnyQueryGrid } from './data/query-grid';
11
+ import { patterns } from '@sunny-base-web/utils';
12
+ export * from './navigation/nprogress';
13
+ export { Modal, useSunnyModal, ModalTypes, SunnyIcon, SunnyScrollbar, SunnyUpload, SunnyBatchSelect, SunnySelect, SunnySearchInputTag, useSunnyForm, FormApi, SunnyForm, setupSunnyForm, useSunnyEditGrid, useSunnyQueryGrid, patterns, z };
14
+ export * from './entry/select/types';
15
+ export * from './entry/search-input-tag/types';
16
+ export * from './entry/form/types';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EACL,KAAK,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,CAAC,EACF,CAAC;AAEF,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ (function($,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@arco-design/web-vue"),require("@sunny-base-web/icons"),require("@sunny-base-web/utils"),require("reka-ui"),require("axios"),require("@tanstack/vue-store"),require("@tanstack/store"),require("@vueuse/core"),require("vee-validate"),require("@vee-validate/zod"),require("zod"),require("vxe-table"),require("vxe-pc-ui")):typeof define=="function"&&define.amd?define(["exports","vue","@arco-design/web-vue","@sunny-base-web/icons","@sunny-base-web/utils","reka-ui","axios","@tanstack/vue-store","@tanstack/store","@vueuse/core","vee-validate","@vee-validate/zod","zod","vxe-table","vxe-pc-ui"],e):($=typeof globalThis<"u"?globalThis:$||self,e($.SunnyBaseWebUI={},$.Vue,$.ArcoVue,$.icons,$.utils,$.rekaUi,$.axios,$.vueStore,$.store,$.core,$.veeValidate,$.zod$1,$.zod,$.vxeTable,$.vxePcUi))})(this,(function($,e,w,D,B,L,X,Ie,ve,ue,_,qe,Ue,Z,z){"use strict";function He(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const Ge=He(Ue),We=Symbol("ArcoConfigProvider"),Ye="arco",Ke="$arco",T=t=>{var o,n,r;const s=e.getCurrentInstance(),a=e.inject(We,void 0);return`${(r=(n=a?.prefixCls)!=null?n:(o=s?.appContext.config.globalProperties[Ke])==null?void 0:o.classPrefix)!=null?r:Ye}-${t}`},Xe=Object.prototype.toString;function R(t){return Xe.call(t)==="[object Number]"&&t===t}var M=(t,o)=>{for(const[n,r]of o)t[n]=r;return t};const Ze=e.defineComponent({name:"IconClose",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-close`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),Qe=["stroke-width","stroke-linecap","stroke-linejoin"];function Je(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M9.857 9.858 24 24m0 0 14.142 14.142M24 24 38.142 9.858M24 24 9.857 38.142"},null,-1)]),14,Qe)}var Q=M(Ze,[["render",Je]]);const et=Object.assign(Q,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+Q.name,Q)}}),tt=e.defineComponent({name:"IconQuestionCircle",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-question-circle`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),ot=["stroke-width","stroke-linecap","stroke-linejoin"];function nt(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M42 24c0 9.941-8.059 18-18 18S6 33.941 6 24 14.059 6 24 6s18 8.059 18 18Z"},null,-1),e.createElementVNode("path",{d:"M24.006 31v4.008m0-6.008L24 28c0-3 3-4 4.78-6.402C30.558 19.195 28.288 15 23.987 15c-4.014 0-5.382 2.548-5.388 4.514v.465"},null,-1)]),14,ot)}var J=M(tt,[["render",nt]]);const me=Object.assign(J,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+J.name,J)}}),rt=e.defineComponent({name:"IconSearch",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-search`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),st=["stroke-width","stroke-linecap","stroke-linejoin"];function at(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M33.072 33.071c6.248-6.248 6.248-16.379 0-22.627-6.249-6.249-16.38-6.249-22.628 0-6.248 6.248-6.248 16.379 0 22.627 6.248 6.248 16.38 6.248 22.628 0Zm0 0 8.485 8.485"},null,-1)]),14,st)}var ee=M(rt,[["render",at]]);const lt=Object.assign(ee,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+ee.name,ee)}}),it=e.defineComponent({name:"IconDelete",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-delete`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),ct=["stroke-width","stroke-linecap","stroke-linejoin"];function dt(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M5 11h5.5m0 0v29a1 1 0 0 0 1 1h25a1 1 0 0 0 1-1V11m-27 0H16m21.5 0H43m-5.5 0H32m-16 0V7h16v4m-16 0h16M20 18v15m8-15v15"},null,-1)]),14,ct)}var te=M(it,[["render",dt]]);const ft=Object.assign(te,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+te.name,te)}}),pt=e.defineComponent({name:"IconFullscreenExit",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-fullscreen-exit`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),ut=["stroke-width","stroke-linecap","stroke-linejoin"];function mt(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M35 6v8a1 1 0 0 0 1 1h8M13 6v8a1 1 0 0 1-1 1H4m31 27v-8a1 1 0 0 1 1-1h8m-31 9v-8a1 1 0 0 0-1-1H4"},null,-1)]),14,ut)}var oe=M(pt,[["render",mt]]);const ht=Object.assign(oe,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+oe.name,oe)}}),yt=e.defineComponent({name:"IconFullscreen",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const n=T("icon"),r=e.computed(()=>[n,`${n}-fullscreen`,{[`${n}-spin`]:t.spin}]),s=e.computed(()=>{const l={};return t.size&&(l.fontSize=R(t.size)?`${t.size}px`:t.size),t.rotate&&(l.transform=`rotate(${t.rotate}deg)`),l});return{cls:r,innerStyle:s,onClick:l=>{o("click",l)}}}}),gt=["stroke-width","stroke-linecap","stroke-linejoin"];function bt(t,o,n,r,s,a){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...l)=>t.onClick&&t.onClick(...l))},o[1]||(o[1]=[e.createElementVNode("path",{d:"M42 17V9a1 1 0 0 0-1-1h-8M6 17V9a1 1 0 0 1 1-1h8m27 23v8a1 1 0 0 1-1 1h-8M6 31v8a1 1 0 0 0 1 1h8"},null,-1)]),14,gt)}var ne=M(yt,[["render",bt]]);const kt=Object.assign(ne,{install:(t,o)=>{var n;const r=(n=o?.iconPrefix)!=null?n:"";t.component(r+ne.name,ne)}}),St={class:"flex-1 font-semibold text-base text-[var(--color-text-1)] overflow-hidden text-ellipsis whitespace-nowrap"},wt={class:"flex items-center gap-3 ml-3"},Ct={class:"cursor-pointer text-[var(--color-text-2)] flex items-center justify-center transition-colors duration-200 text-base hover:text-[var(--color-text-1)]"},xt={key:1,class:"flex items-center justify-end gap-2"},he=e.defineComponent({__name:"Modal",props:{modelValue:{type:Boolean,default:!1},title:{default:"Title"},width:{default:"50%"},top:{},zIndex:{default:1e3},helpMessage:{default:"双击标题栏可最大化/还原,按 ESC 可关闭弹窗"},closeOnEsc:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},okText:{},cancelText:{},okLoading:{type:Boolean},confirmLoading:{type:Boolean},hideCancel:{type:Boolean},okButtonProps:{},cancelButtonProps:{},onVisibleChange:{},onBeforeOk:{},onBeforeCancel:{},onClose:{},onOk:{}},emits:["update:modelValue","close","ok"],setup(t,{emit:o}){const n=t,r=o,s=e.useAttrs(),a=e.ref(!1),l=e.computed({get:()=>n.modelValue,set:f=>r("update:modelValue",f)}),i=e.ref(!1),m=()=>{i.value=!i.value},g=async()=>{const f=n.onBeforeCancel;typeof f=="function"&&await f()===!1||(l.value=!1,r("close"))},y=g,c=async()=>{const f=n.onBeforeOk;if(typeof f=="function")try{a.value=!0,await f()!==!1&&(r("ok"),l.value=!1)}catch(d){console.error(d)}finally{a.value=!1}else r("ok"),l.value=!1};return(f,d)=>(e.openBlock(),e.createBlock(e.unref(w.Modal),e.mergeProps({visible:l.value,"onUpdate:visible":d[0]||(d[0]=h=>l.value=h),title:t.title,width:t.width,top:t.top,"z-index":t.zIndex,"mask-closable":t.closeOnClickModal,"esc-to-close":t.closeOnEsc,fullscreen:i.value,closable:!1},f.$attrs,{class:"k-modal-custom"}),{title:e.withCtx(()=>[e.createElementVNode("div",{class:"flex items-center justify-between w-full",onDblclick:m},[e.createElementVNode("div",St,[e.renderSlot(f.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])]),e.createElementVNode("div",wt,[t.helpMessage?(e.openBlock(),e.createBlock(e.unref(w.Tooltip),{key:0,content:t.helpMessage},{default:e.withCtx(()=>[e.createElementVNode("div",Ct,[e.createVNode(e.unref(me))])]),_:1},8,["content"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"cursor-pointer text-[var(--color-text-2)] flex items-center justify-center transition-colors duration-200 text-base hover:text-[var(--color-text-1)]",onClick:e.withModifiers(m,["stop"])},[i.value?(e.openBlock(),e.createBlock(e.unref(ht),{key:0})):(e.openBlock(),e.createBlock(e.unref(kt),{key:1}))]),e.createElementVNode("div",{class:"cursor-pointer text-[var(--color-text-2)] flex items-center justify-center transition-colors duration-200 text-base hover:text-[rgb(var(--red-6))]",onClick:e.withModifiers(g,["stop"])},[e.createVNode(e.unref(et))])])],32)]),footer:e.withCtx(()=>[f.$slots.footer?e.renderSlot(f.$slots,"footer",{key:0}):(e.openBlock(),e.createElementBlock("div",xt,[e.renderSlot(f.$slots,"insertFooter"),e.unref(s).hideCancel?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(w.Button),e.mergeProps({key:0},e.unref(s).cancelButtonProps,{onClick:e.unref(y)}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s).cancelText||"取消"),1)]),_:1},16,["onClick"])),e.renderSlot(f.$slots,"centerFooter"),e.createVNode(e.unref(w.Button),e.mergeProps({type:"primary",loading:a.value||e.unref(s).okLoading||e.unref(s).confirmLoading},e.unref(s).okButtonProps,{onClick:c}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s).okText||"确定"),1)]),_:1},16,["loading"]),e.renderSlot(f.$slots,"appendFooter")]))]),default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},16,["visible","title","width","top","z-index","mask-closable","esc-to-close","fullscreen"]))}});class Bt{state;constructor(o={}){this.state=e.reactive({modelValue:!1,...o})}open=()=>{this.setState({modelValue:!0}),this.state.onVisibleChange?.(!0)};close=()=>{this.setState({modelValue:!1}),this.state.onVisibleChange?.(!1)};setState(o){if(typeof o=="function"){const n=o(this.state);Object.assign(this.state,n)}else Object.assign(this.state,o);return this}}function $t(t={}){const o=new Bt(t);return[e.defineComponent({name:"SunnyConnectedModal",inheritAttrs:!1,setup(r,{attrs:s,slots:a}){return()=>e.h(he,{...o.state,...s,"onUpdate:modelValue":l=>{o.setState({modelValue:l}),o.state.onVisibleChange?.(l),typeof s["onUpdate:modelValue"]=="function"&&s["onUpdate:modelValue"](l)}},a)}}),o]}const Vt=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),Pt=["src"],re=e.defineComponent({__name:"icon",props:{fallback:{type:Boolean},icon:{type:[Function,String]}},setup(t){const o=t,n=e.computed(()=>B.isString(o.icon)&&B.isHttpUrl(o.icon)),r=e.computed(()=>{const{icon:s}=o;return!B.isString(s)&&(B.isObject(s)||B.isFunction(s))});return(s,a)=>r.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon),e.normalizeProps(e.mergeProps({key:0},s.$attrs)),null,16)):n.value?(e.openBlock(),e.createElementBlock("img",e.mergeProps({key:1,src:t.icon},s.$attrs),null,16,Pt)):t.icon?(e.openBlock(),e.createBlock(e.unref(D.IconifyIcon),e.mergeProps({key:2},s.$attrs,{icon:t.icon}),null,16,["icon"])):t.fallback?(e.openBlock(),e.createBlock(e.unref(D.IconDefault),e.normalizeProps(e.mergeProps({key:3},s.$attrs)),null,16)):e.createCommentVNode("",!0)}}),ye=e.defineComponent({__name:"ScrollBar",props:{orientation:{default:"vertical"},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(t){const o=t,n=e.computed(()=>{const{class:r,...s}=o;return s});return(r,s)=>(e.openBlock(),e.createBlock(e.unref(L.ScrollAreaScrollbar),e.mergeProps(n.value,{class:e.unref(B.cn)("flex touch-none select-none transition-colors",t.orientation==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",t.orientation==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-px",o.class)}),{default:e.withCtx(()=>[e.createVNode(e.unref(L.ScrollAreaThumb),{class:"relative flex-1 rounded-full bg-border"})]),_:1},16,["class"]))}}),Ft=e.defineComponent({__name:"ScrollArea",props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{},onScroll:{type:Function,default:()=>{}},viewportProps:{}},setup(t){const o=t,n=e.computed(()=>{const{class:r,...s}=o;return s});return(r,s)=>(e.openBlock(),e.createBlock(e.unref(L.ScrollAreaRoot),e.mergeProps(n.value,{class:e.unref(B.cn)("relative overflow-hidden",o.class)}),{default:e.withCtx(()=>[e.createVNode(e.unref(L.ScrollAreaViewport),{"as-child":"",class:"h-full w-full rounded-[inherit] focus:outline-none",onScroll:t.onScroll},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},8,["onScroll"]),e.createVNode(ye),e.createVNode(e.unref(L.ScrollAreaCorner))]),_:3},16,["class"]))}}),ge=1,Et=e.defineComponent({__name:"scrollbar",props:{class:{default:""},horizontal:{type:Boolean,default:!1},scrollBarClass:{},shadow:{type:Boolean,default:!1},shadowBorder:{type:Boolean,default:!1},shadowBottom:{type:Boolean,default:!0},shadowLeft:{type:Boolean,default:!1},shadowRight:{type:Boolean,default:!1},shadowTop:{type:Boolean,default:!0}},emits:["scrollAt"],setup(t,{emit:o}){const n=t,r=o,s=e.ref(!0),a=e.ref(!1),l=e.ref(!1),i=e.ref(!0),m=e.computed(()=>n.shadow&&n.shadowTop),g=e.computed(()=>n.shadow&&n.shadowBottom),y=e.computed(()=>n.shadow&&n.shadowLeft),c=e.computed(()=>n.shadow&&n.shadowRight),f=e.computed(()=>({"both-shadow":!i.value&&!a.value&&y.value&&c.value,"left-shadow":!i.value&&y.value,"right-shadow":!a.value&&c.value}));function d(h){const b=h.target,k=b?.scrollTop??0,V=b?.scrollLeft??0,x=b?.clientHeight??0,C=b?.clientWidth??0,F=b?.scrollHeight??0,p=b?.scrollWidth??0;s.value=k<=0,i.value=V<=0,l.value=Math.abs(k)+x>=F-ge,a.value=Math.abs(V)+C>=p-ge,r("scrollAt",{bottom:l.value,left:i.value,right:a.value,top:s.value})}return(h,b)=>(e.openBlock(),e.createBlock(e.unref(Ft),{class:e.normalizeClass([[e.unref(B.cn)(n.class),f.value],"sunny-scrollbar relative"]),"on-scroll":d},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([{"opacity-100":!s.value,"border-t border-border":t.shadowBorder&&!s.value},"scrollbar-top-shadow pointer-events-none absolute top-0 z-10 h-12 w-full opacity-0 transition-opacity duration-300 ease-in-out will-change-[opacity]"])},null,2)):e.createCommentVNode("",!0),e.renderSlot(h.$slots,"default",{},void 0,!0),g.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([{"opacity-100":!s.value&&!l.value,"border-b border-border":t.shadowBorder&&!s.value&&!l.value},"scrollbar-bottom-shadow pointer-events-none absolute bottom-0 z-10 h-12 w-full opacity-0 transition-opacity duration-300 ease-in-out will-change-[opacity]"])},null,2)):e.createCommentVNode("",!0),t.horizontal?(e.openBlock(),e.createBlock(e.unref(ye),{key:2,class:e.normalizeClass(t.scrollBarClass),orientation:"horizontal"},null,8,["class"])):e.createCommentVNode("",!0)]),_:3},8,["class"]))}}),be=(t,o)=>{const n=t.__vccOpts||t;for(const[r,s]of o)n[r]=s;return n},_t=be(Et,[["__scopeId","data-v-913bc4ec"]]),Nt={class:"sunny-file-upload"},Ot={class:"font-bold text-gray-700 mb-2"},zt={class:"flex flex-wrap items-center text-sm mb-3 select-none"},Tt={class:"cursor-pointer text-blue-600 hover:text-blue-700 flex items-center mr-4 transition-colors"},Rt={class:"text-xs text-blue-600"},Mt={class:"text-xs text-gray-400"},jt={class:"border border-dashed border-gray-300 rounded-lg p-4 transition-all duration-300"},At={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},Dt={class:"flex-1 min-w-0 pr-8"},Lt=["title"],It={class:"flex items-center text-xs text-gray-500"},vt={class:"mr-3 min-w-[3em]"},qt={class:"ml-2 w-8 text-right"},ke=1024,Ut=e.defineComponent({__name:"index",props:{modelValue:{default:""},action:{default:""},delAction:{default:""},accept:{default:".csv,.pdf,.xls,.xlsx"},limit:{default:10},maxSize:{default:10},storeType:{default:"amazon"},s3FileDir:{default:""},preSigned:{default:""},preSignedExpire:{default:""},readonly:{type:Boolean,default:!1},showEncrypt:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:o}){const n=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],r=t,s=o,a=e.ref(!0),l=e.ref(!1),i=e.ref([]),m=e.ref(!1),g=e.computed(()=>i.value.every(p=>!!p.url)),y=e.computed(()=>i.value.filter(p=>p.checked).length);e.watch(()=>r.modelValue,p=>{try{i.value=JSON.parse(p||"[]")}catch(u){console.warn("Failed to parse modelValue:",u),i.value=[]}},{immediate:!0,deep:!0});const c=p=>p,f=p=>{if(p===0)return"0 B";const u=Math.floor(Math.log(p)/Math.log(ke));return(p/Math.pow(ke,u)).toPrecision(3)+" "+n[u]},d=p=>{const u=p.type||"",P=(p.name||"").split(".").pop()?.toLowerCase()||"",E={"vscode-icons:file-type-excel":["xls","xlsx","csv"],"vscode-icons:file-type-powerpoint":["ppt","pptx"],"vscode-icons:file-type-text":["txt"],"vscode-icons:file-type-word":["doc","docx"],"vscode-icons:file-type-zip":["zip","rar","7z","tar","gz"],"vscode-icons:file-type-pdf":["pdf"]};for(const[U,K]of Object.entries(E))if(K.includes(P)||K.some(tr=>u.includes(tr)))return U;return u.includes("excel")||u.includes("spreadsheet")?"vscode-icons:file-type-excel":u.includes("powerpoint")||u.includes("presentation")?"vscode-icons:file-type-powerpoint":u.includes("text/plain")?"vscode-icons:file-type-text":u.includes("word")||u.includes("document")?"vscode-icons:file-type-word":u.includes("zip")||u.includes("compressed")?"vscode-icons:file-type-zip":u.includes("pdf")?"vscode-icons:file-type-pdf":"vscode-icons:default-file"},h=()=>{const p=JSON.stringify(i.value);s("update:modelValue",p),s("change",p)},b=(p,u)=>{if(u.status!=="init")return;if(i.value.length>=r.limit){w.Message.error(`最多上传${r.limit}个文件`);return}const S=r.maxSize*1024*1024;if(u.file.size>S){w.Message.error(`文件最大限制${f(S)}`);return}i.value.push({uid:u.uid,name:u.name,size:u.file?.size,type:u.file?.type,file:u.file,percentage:0,checked:!1})},k=async()=>{if(i.value.length===0)return;const p=i.value.filter(u=>!u.url);for(const u of p){const S=new FormData;S.append("fileName",u.file),S.append("encryptFile",l.value?"1":"0"),r.storeType&&S.append("storeType",r.storeType),r.s3FileDir&&S.append("s3FileDir",r.s3FileDir),r.preSigned&&S.append("preSigned",r.preSigned),r.preSignedExpire&&S.append("preSignedExpire",r.preSignedExpire);try{const P=await X.post(r.action,S,{onUploadProgress:U=>{if(U.total){const K=Math.floor(U.loaded/U.total*100);u.percentage=K}}}),{data:E}=P;E.code===200?(Object.assign(u,E.result),w.Message.success(E.message||"上传成功")):(w.Message.error(E.message||"上传失败"),V(u.uid))}catch{w.Message.error("上传失败"),V(u.uid)}}h()},V=p=>{const u=i.value.findIndex(S=>S.uid===p);u>-1&&i.value.splice(u,1)},x=(p,u)=>{p.url?w.Modal.confirm({title:c("提示"),content:c("是否删除该文件?"),onOk:()=>{X.post(r.delAction,{filePathList:[p.url],storeType:r.storeType}).then(S=>{const{data:P}=S;w.Message[P.success?"success":"error"](P.message),P.code===200&&(i.value.splice(u,1),h())})}}):(i.value.splice(u,1),h())},C=()=>{const p=i.value.every(u=>u.checked);i.value.forEach(u=>u.checked=!p)},F=()=>{const p=i.value.filter(u=>u.checked);p.length!==0&&w.Modal.confirm({title:c("提示"),content:c("是否删除选中的文件?"),onOk:()=>{m.value=!0;const u=p.map(S=>S.url).filter(Boolean);u.length>0?X.post(r.delAction,{filePathList:u,storeType:r.storeType}).then(S=>{const{data:P}=S;w.Message[P.success?"success":"error"](P.message),P.code===200&&(i.value=i.value.filter(E=>!E.checked),h())}).finally(()=>{m.value=!1}):(i.value=i.value.filter(S=>!S.checked),h(),m.value=!1)}})};return(p,u)=>(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",Ot,e.toDisplayString(c("附件")),1),e.withDirectives(e.createElementVNode("div",zt,[e.createVNode(e.unref(w.Upload),{"show-file-list":!1,"auto-upload":!1,multiple:"",accept:t.accept,onChange:b},{"upload-button":e.withCtx(()=>[e.createElementVNode("span",Tt,[e.createVNode(e.unref(D.Paperclip),{class:"mr-1 w-4 h-4"}),e.createTextVNode(" "+e.toDisplayString(c("选择附件")),1)])]),_:1},8,["accept"]),e.createElementVNode("span",{class:e.normalizeClass(["flex items-center mr-4 transition-colors",g.value?"text-gray-300 cursor-not-allowed":"cursor-pointer text-gray-600 hover:text-gray-800"]),onClick:u[0]||(u[0]=S=>!g.value&&k())},[e.createVNode(e.unref(re),{icon:e.unref(D.CloudUpload),class:"mr-1 w-4 h-4"},null,8,["icon"]),e.createTextVNode(" "+e.toDisplayString(c("上传附件")),1)],2),e.createElementVNode("span",{class:"cursor-pointer text-blue-600 hover:text-blue-700 mr-4 transition-colors",onClick:C},e.toDisplayString(c("全选")),1),e.createElementVNode("span",{class:e.normalizeClass(["mr-4 transition-colors",y.value===0?"text-gray-300 cursor-not-allowed":"cursor-pointer text-gray-500 hover:text-red-500"]),onClick:F},e.toDisplayString(c("删除")),3),t.showEncrypt?(e.openBlock(),e.createBlock(e.unref(w.Checkbox),{key:0,modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=S=>l.value=S),class:"mr-4"},{default:e.withCtx(()=>[e.createElementVNode("span",Rt,e.toDisplayString(c("是否加密")),1)]),_:1},8,["modelValue"])):e.createCommentVNode("",!0),e.createElementVNode("span",Mt," ("+e.toDisplayString(c("单个文件最大"))+e.toDisplayString(t.maxSize)+"MB,"+e.toDisplayString(c("最多上传"))+e.toDisplayString(t.limit)+e.toDisplayString(c("个"))+") ",1),e.createElementVNode("span",{class:"ml-auto cursor-pointer text-blue-600 text-xs hover:text-blue-700 transition-colors",onClick:u[2]||(u[2]=S=>a.value=!a.value)},e.toDisplayString(a.value?c("隐藏"):c("展开")),1)],512),[[e.vShow,!t.readonly]]),e.withDirectives(e.createElementVNode("div",jt,[e.createElementVNode("div",At,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(S,P)=>(e.openBlock(),e.createElementBlock("div",{key:S.uid||P,class:"bg-gray-50 hover:bg-gray-100 rounded p-3 relative flex items-center border border-transparent hover:border-gray-200 transition-colors group"},[e.createVNode(e.unref(re),{icon:d(S),class:"w-10 h-10 mr-3 flex-shrink-0"},null,8,["icon"]),e.createElementVNode("div",Dt,[e.createElementVNode("div",{class:"text-sm truncate font-medium text-gray-700 mb-1",title:S.name},e.toDisplayString(S.name),9,Lt),e.createElementVNode("div",It,[e.createElementVNode("span",vt,e.toDisplayString(f(S.size)),1),e.createVNode(e.unref(w.Progress),{percent:S.percentage/100,size:"small","show-text":!1,color:S.percentage===100?"#00b42a":"#165dff",class:"flex-1"},null,8,["percent","color"]),e.createElementVNode("span",qt,e.toDisplayString(S.percentage)+"%",1)])]),t.readonly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(w.Checkbox),{key:0,modelValue:S.checked,"onUpdate:modelValue":E=>S.checked=E,class:"absolute top-3 right-3"},null,8,["modelValue","onUpdate:modelValue"])),t.readonly?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(D.Trash2),{key:1,class:"absolute bottom-3 right-3 w-4 h-4 cursor-pointer text-gray-400 hover:text-red-500 transition-colors",onClick:E=>x(S,P)},null,8,["onClick"]))]))),128))])],512),[[e.vShow,i.value.length>0&&a.value]])]))}}),Se=e.defineComponent({name:"SunnySelect",inheritAttrs:!1,props:{modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},options:{type:Array,default:()=>[]},filterModel:{type:Object,default:void 0}},emits:["update:modelValue"],setup(t,{emit:o,slots:n,attrs:r}){const s=i=>{const m=i.cMeta;return!m||Object.keys(m).length===0?!0:!t.filterModel||Object.keys(t.filterModel).length===0?!1:Object.entries(m).every(([g,y])=>{const c=t.filterModel[g];return c==null?!1:String(c)===String(y)})},a=e.computed(()=>{const i=t.modelValue;if(i==null||i===""||r["allow-create"]===!0||r["allow-create"]==="")return i;const m=g=>t.options.some(y=>s(y)?y.value==g||typeof g=="object"&&g!==null&&"value"in g&&y.value==g.value:!1);if(Array.isArray(i)){const g=i.filter(y=>m(y));return g.length===i.length?i:g}else return m(i)?i:void 0});e.watch(a,i=>{i!==t.modelValue&&o("update:modelValue",i)});const l=i=>{o("update:modelValue",i)};return()=>React.createElement(w.Select,{...r,modelValue:a.value,"onUpdate:modelValue":l},{default:()=>t.options.map(i=>s(i)?React.createElement(w.Option,{key:i.value,...i},{default:()=>n.option?n.option({data:i}):i.label}):null),...Object.fromEntries(Object.entries(n).filter(([i])=>i!=="option"&&i!=="default"))})}}),Ht={class:"flex items-center justify-between px-3 py-2 border-b border-[var(--color-neutral-3)] bg-[var(--color-bg-popup)] select-none"},Gt={class:"flex items-center gap-1"},Wt={class:"w-6 h-6 flex items-center justify-center rounded cursor-help text-[var(--color-text-3)] hover:text-[var(--color-text-1)] hover:bg-[var(--color-fill-3)] transition-all"},Yt=e.defineComponent({name:"SunnyBatchSelect",inheritAttrs:!1,__name:"BatchSelect",props:{modelValue:{default:()=>[]},options:{default:()=>[]},matchStrategy:{default:"both"},filterModel:{default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:o}){const n=t,r=o,s=e.computed(()=>n.options.filter(c=>!c.disabled)),a=e.computed(()=>s.value.length===0?!1:s.value.every(c=>n.modelValue.includes(c.value))),l=e.computed(()=>{if(s.value.length===0)return!1;const c=s.value.filter(f=>n.modelValue.includes(f.value)).length;return c>0&&c<s.value.length}),i=c=>{r("update:modelValue",c),r("change",c)},m=c=>{if(c===!0){const d=s.value.map(k=>k.value),h=n.modelValue.filter(k=>{const V=n.options.find(x=>x.value===k);return V&&V.disabled}),b=Array.from(new Set([...h,...d]));r("update:modelValue",b),r("change",b)}else{const d=n.modelValue.filter(h=>{const b=n.options.find(k=>k.value===h);return b&&b.disabled});r("update:modelValue",d),r("change",d)}},g=()=>{const c=n.modelValue.filter(f=>{const d=n.options.find(h=>h.value===f);return d&&d.disabled});r("update:modelValue",c),r("change",c)},y=c=>{const f=c.clipboardData||window.clipboardData;if(!f)return;const d=f.getData("text");if(!d)return;const h=d.split(/\r?\n/).map(x=>x.trim()).filter(x=>x);if(h.length===0)return;const b=[];let k=0;const V=x=>{const C=x.cMeta;return!C||Object.keys(C).length===0?!0:!n.filterModel||Object.keys(n.filterModel).length===0?!1:Object.entries(C).every(([F,p])=>{const u=n.filterModel[F];return u==null?!1:String(u)===String(p)})};if(h.forEach(x=>{if(n.matchStrategy==="value"||n.matchStrategy==="both"){const C=n.options.find(F=>String(F.value)===x);if(C&&!C.disabled&&V(C)){b.push(C.value),k++;return}}if(n.matchStrategy==="label"||n.matchStrategy==="both"){const C=n.options.find(F=>F.label===x);C&&!C.disabled&&V(C)&&(b.push(C.value),k++)}}),b.length>0){c.preventDefault();const x=Array.from(new Set([...n.modelValue,...b]));r("update:modelValue",x),r("change",x),w.Message.success(`成功识别并选中 ${k} 项 (Matched ${k} items)`)}};return(c,f)=>{const d=e.resolveComponent("a-checkbox"),h=e.resolveComponent("a-tooltip");return e.openBlock(),e.createBlock(e.unref(Se),e.mergeProps(c.$attrs,{"model-value":t.modelValue,options:t.options,"filter-model":t.filterModel,multiple:"","allow-search":"","onUpdate:modelValue":i,onPaste:y}),e.createSlots({header:e.withCtx(()=>[e.createElementVNode("div",Ht,[e.createVNode(d,{"model-value":a.value,indeterminate:l.value,onChange:m,class:"pl-1"},{default:e.withCtx(()=>[...f[0]||(f[0]=[e.createElementVNode("span",{class:"text-[var(--color-text-1)]"},"全选",-1)])]),_:1},8,["model-value","indeterminate"]),e.createElementVNode("div",Gt,[e.createVNode(h,{content:"清除所有选中项"},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"w-6 h-6 flex items-center justify-center rounded cursor-pointer text-[var(--color-text-3)] hover:bg-[var(--color-fill-3)] transition-all",onClick:g},[e.createVNode(e.unref(ft))])]),_:1}),f[1]||(f[1]=e.createElementVNode("div",{class:"w-[1px] h-3 bg-[var(--color-neutral-3)] mx-1"},null,-1)),e.createVNode(h,{content:"支持从 Excel 或文本编辑器(↓列数据)复制多行数据,粘贴至搜索框即可自动匹配并选中。",position:"left"},{default:e.withCtx(()=>[e.createElementVNode("div",Wt,[e.createVNode(e.unref(me))])]),_:1})])])]),_:2},[e.renderList(c.$slots,(b,k)=>({name:k,fn:e.withCtx(V=>[e.renderSlot(c.$slots,k,e.normalizeProps(e.guardReactiveProps(V||{})))])}))]),1040,["model-value","options","filter-model"])}}}),Kt=e.defineComponent({name:"SunnySearchInputTag",inheritAttrs:!1,__name:"SearchInputTag",props:{modelValue:{default:()=>[]},fieldNames:{default:()=>({label:"label",value:"value"})},placeholder:{default:"请选择..."},disabled:{type:Boolean,default:!1},maxTagCount:{}},emits:["update:modelValue","search","change","clear"],setup(t,{emit:o}){const n=t,r=o,s=e.computed(()=>n.fieldNames?.label||"label"),a=e.computed(()=>n.fieldNames?.value||"value"),l=e.computed(()=>n.modelValue.map(c=>({label:c[s.value],value:c[a.value],closable:!n.disabled,tagProps:c.tagProps}))),i=c=>{n.disabled||["Backspace","Delete","Tab","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(c.key)||c.preventDefault()},m=(c,f)=>{const d=[...n.modelValue];d.splice(f,1),r("update:modelValue",d),r("change",d)},g=()=>{r("update:modelValue",[]),r("change",[]),r("clear")},y=()=>{n.disabled||r("search")};return(c,f)=>{const d=e.resolveComponent("a-input-tag");return e.openBlock(),e.createBlock(d,e.mergeProps(c.$attrs,{"model-value":l.value,"input-value":"",disabled:t.disabled,placeholder:t.placeholder,"max-tag-count":t.maxTagCount,"allow-create":!1,class:"w-full group",onRemove:m,onClear:g,onKeydown:i}),e.createSlots({suffix:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center h-full px-2 border-l border-[var(--color-neutral-3)] group-hover:border-[var(--color-neutral-4)] -mr-3",[t.disabled?"cursor-not-allowed text-[var(--color-text-4)]":"cursor-pointer text-[var(--color-text-2)] group"]]),onClick:e.withModifiers(y,["stop"])},[e.createVNode(e.unref(lt),{class:"transition-colors group-hover:text-[var(--color-primary-6)]"})],2)]),_:2},[e.renderList(c.$slots,(h,b)=>({name:b,fn:e.withCtx(k=>[e.renderSlot(c.$slots,b,e.normalizeProps(e.guardReactiveProps(k||{})))])}))]),1040,["model-value","disabled","placeholder","max-tag-count"])}}});class Xt{store;constructor(o,n){this.store=new ve.Store(o),n?.onUpdate&&this.store.subscribe(()=>{n.onUpdate?.()})}setState(o){this.store.setState(n=>{const r=typeof o=="function"?o(n):o;return{...n,...r}})}getState(){return this.store.state}}function we(t,o="YYYY-MM-DD"){if(!t)return t;if(B.isFunction(t.format))return t.format(o);if(t instanceof Date){const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0"),a=String(t.getHours()).padStart(2,"0"),l=String(t.getMinutes()).padStart(2,"0"),i=String(t.getSeconds()).padStart(2,"0");return o.replace("YYYY",String(n)).replace("MM",r).replace("DD",s).replace("HH",a).replace("mm",l).replace("ss",i)}return String(t)}function Ce(t){return is(t,"Date")}function xe(t){return B.isObject(t)&&"$d"in t&&"$y"in t&&"$M"in t}function H(t,o){if(!B.isObject(t)||!B.isObject(o)||Array.isArray(o))return o;const n={...t};return Object.keys(o).forEach(r=>{const s=n[r],a=o[r];B.isObject(s)&&B.isObject(a)?n[r]=H(s,a):n[r]=a}),n}class Zt{condition=!1;resolveFn=null;promise=null;setConditionTrue(){this.condition=!0,this.resolveFn&&(this.resolveFn(),this.resolveFn=null)}reset(){this.condition=!1,this.promise=null,this.resolveFn=null}async waitForCondition(){this.condition||(this.promise||(this.promise=new Promise(o=>{this.resolveFn=o})),await this.promise)}}function Qt(t){const o=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(o);for(const r of n){const s=t[r];r!=="constructor"&&typeof s=="function"&&(t[r]=s.bind(t))}}function Jt(){return{actionWrapperClass:"",collapsed:!1,collapsedRows:1,collapseTriggerResize:!1,commonConfig:{},handleReset:void 0,handleSubmit:void 0,handleValuesChange:void 0,handleCollapsedChange:void 0,layout:"horizontal",resetButtonOptions:{},schema:[],scrollToFirstError:!1,showCollapseButton:!1,showDefaultActions:!0,submitButtonOptions:{},submitOnChange:!1,submitOnEnter:!1,wrapperClass:"grid-cols-1",values:{}}}class Be{form={};isMounted=!1;state=null;stateHandler;store;componentRefMap=new Map;latestSubmissionValues=null;prevState=null;constructor(o={}){const{...n}=o,r=Jt();this.store=new Xt({...r,...n},{onUpdate:()=>{this.prevState=this.state,this.state=this.store.getState(),this.updateState()}}),this.state=this.store.getState(),this.stateHandler=new Zt,Qt(this)}getFieldComponentRef(o){let n=this.componentRefMap.has(o)?this.componentRefMap.get(o):void 0;if(n&&n.$&&n.$.type&&n.$.type.name==="AsyncComponentWrapper"&&n.$.subTree&&n.$.subTree.ref){const r=n.$.subTree.ref;Array.isArray(r)?r.length>0&&r[0]&&e.isRef(r[0].r)&&(n=r[0].r.value):e.isRef(r.r)&&(n=r.r.value)}return n}getFocusedField(){for(const o of this.componentRefMap.keys()){const n=this.getFieldComponentRef(o);if(n){let r=null;if(n instanceof HTMLElement?r=n:n.$el instanceof HTMLElement&&(r=n.$el),!r)continue;if(r===document.activeElement||r.contains(document.activeElement))return o}}}getLatestSubmissionValues(){return this.latestSubmissionValues||{}}getState(){return this.state}async getValues(){const o=await this.getForm();return o.values?this.handleRangeTimeValue(o.values):{}}async isFieldValid(o){return(await this.getForm()).isFieldValid(o)}merge(o){const n=[this,o],r=new Proxy(o,{get(s,a){return a==="merge"?l=>(n.push(l),r):a==="submitAllForm"?async(l=!0)=>{try{const i=await Promise.all(n.map(async m=>(await m.validate()).valid?e.toRaw(await m.getValues()||{}):void 0));return i.some(m=>!m)?void 0:l?Object.assign({},...i):i}catch(i){console.error("Validation error:",i)}}:s[a]}});return r}mount(o,n){this.isMounted||(Object.assign(this.form,o),this.stateHandler.setConditionTrue(),this.setLatestSubmissionValues({...e.toRaw(this.handleRangeTimeValue(this.form.values))}),n&&(this.componentRefMap=n),this.isMounted=!0)}async removeSchemaByFields(o){const n=new Set(o),s=(this.state?.schema??[]).filter(a=>!n.has(a.fieldName));this.setState({schema:s})}async resetForm(o,n){return(await this.getForm()).resetForm(o,n)}async resetValidate(){const o=await this.getForm();Object.keys(o.errors.value).forEach(r=>{o.setFieldError(r,void 0)})}scrollToFirstError(o){const n=typeof o=="string"?o:Object.keys(o)[0];if(!n)return;let r=document.querySelector(`[name="${n}"]`);if(!r){const s=this.getFieldComponentRef(n);s&&s.$el instanceof HTMLElement?r=s.$el:s instanceof HTMLElement&&(r=s)}r&&r.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}async setFieldValue(o,n,r){(await this.getForm()).setFieldValue(o,n,r)}setLatestSubmissionValues(o){this.latestSubmissionValues={...e.toRaw(o)}}setState(o){B.isFunction(o)?this.store.setState(n=>H(n,o(n))):this.store.setState(n=>H(n,o))}async setValues(o,n=!0,r=!1){const s=await this.getForm();if(!n){s.setValues(o,r);return}const a=s.values||{},l=(m,g)=>{const y={};for(const c in m)if(Object.prototype.hasOwnProperty.call(m,c)&&c in g){const f=m[c],d=g[c];B.isObject(f)&&!Array.isArray(f)&&!Ce(f)&&!xe(f)&&B.isObject(d)&&!Array.isArray(d)&&!Ce(d)&&!xe(d)?y[c]=l(f,d):y[c]=f}return y},i=l(o,a);s.setValues(i,r)}async submitForm(o){o?.preventDefault(),o?.stopPropagation();const n=await this.getForm(),{valid:r,errors:s}=await n.validate(),a=e.toRaw(await this.getValues());return r?await this.state?.handleSubmit?.(a):this.state?.scrollToFirstError&&this.scrollToFirstError(s),{valid:r,values:a,errors:s}}unmount(){this.form?.resetForm?.(),this.latestSubmissionValues=null,this.isMounted=!1,this.stateHandler.reset()}updateSchema(o){const n=[...o];if(!n.every(l=>Reflect.has(l,"fieldName")&&l.fieldName)){console.error("All items in the schema array must have a valid `fieldName` property to be updated");return}const s=B.cloneDeep(this.state?.schema??[]),a={};n.forEach(l=>{l.fieldName&&(a[l.fieldName]=l)}),s.forEach((l,i)=>{const m=a[l.fieldName];m&&(s[i]=H(l,m))}),this.setState({schema:s})}async validate(o){const r=await(await this.getForm()).validate(o);return Object.keys(r?.errors??{}).length>0&&(console.error("validate error",r?.errors),this.state?.scrollToFirstError&&this.scrollToFirstError(r.errors)),r}async validateAndSubmitForm(){const o=await this.getForm(),{valid:n,errors:r}=await o.validate();if(!n){this.state?.scrollToFirstError&&this.scrollToFirstError(r);return}return await this.submitForm()}async validateField(o,n){const s=await(await this.getForm()).validateField(o,n);return Object.keys(s?.errors??{}).length>0&&(console.error("validate error",s?.errors),this.state?.scrollToFirstError&&this.scrollToFirstError(o)),s}async getForm(){if(this.isMounted||await this.stateHandler.waitForCondition(),!this.form?.meta)throw new Error("<SunnyUseForm /> is not mounted");return this.form}handleMultiFields=o=>{const n=this.state?.arrayToStringFields;if(!n||!Array.isArray(n))return;const r=(s,a=",")=>{this.processFields(s,a,o,(l,i)=>{if(Array.isArray(l))return l.join(i);if(typeof l=="string"){if(l==="")return[];const m=i.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`);return l.split(new RegExp(m))}else return l})};if(n.every(s=>typeof s=="string")){const s=n[n.length-1]||"",a=s.length===1?n.slice(0,-1):n,l=s.length===1?s:",";r(a,l);return}n.forEach(s=>{if(Array.isArray(s)){const[a,l=","]=s;if(!Array.isArray(a)){console.warn(`Invalid field configuration: fields should be an array of strings, got ${typeof a}`);return}r(a,l)}})};handleRangeTimeValue=o=>{const n={...o},r=this.state?.fieldMappingTime;return this.handleMultiFields(n),!r||!Array.isArray(r)||r.forEach(([s,[a,l],i="YYYY-MM-DD"])=>{if(a&&l&&n[s]===null&&(Reflect.deleteProperty(n,a),Reflect.deleteProperty(n,l)),!n[s]){Reflect.deleteProperty(n,s);return}const[m,g]=n[s];if(i===null)n[a]=m,n[l]=g;else if(B.isFunction(i))n[a]=i(m),n[l]=i(g);else{const[y,c]=Array.isArray(i)?i:[i,i];n[a]=m?we(m,y):void 0,n[l]=g?we(g,c):void 0}Reflect.deleteProperty(n,s)}),n};processFields=(o,n,r,s)=>{o.forEach(a=>{const l=r[a];l!=null&&(r[a]=s(l,n))})};updateState(){const o=this.state?.schema??[],n=this.prevState?.schema??[];if(o.length<n.length){const r=new Set(o.map(a=>a.fieldName)),s=n.filter(a=>!r.has(a.fieldName));for(const a of s)this.form?.setFieldValue?.(a.fieldName,void 0)}}useStore}const $e=Symbol("FormRenderProps"),eo=Symbol("ComponentRefMap"),to=t=>{e.provide($e,t)},se=()=>{const t=e.inject($e);if(!t)throw new Error("injectRenderFormProps must be used within provideFormRenderProps");return t},oo=t=>{e.provide(eo,t)},Ve=()=>{const t=se(),o=e.computed(()=>t.layout==="vertical");return{props:t,isVertical:o,componentBindEventMap:e.computed(()=>t.config?.modelPropNameMap)}},Pe=Symbol("FormPropsKey");function Fe(t){e.provide(Pe,t)}function no(){const t=e.inject(Pe);if(!t)throw new Error("Form context not found (表单上下文未找到,请确保在 SunnyForm 或 SunnyUseForm 内部使用)");return t}function ro(t){const o=e.useSlots(),n=e.computed(()=>{const a=e.unref(t),l={};return(a.schema||[]).forEach(i=>{i.defaultValue!==void 0&&(l[i.fieldName]=i.defaultValue)}),a.values&&Object.assign(l,a.values),l}),r=_.useForm({initialValues:n.value}),s=e.computed(()=>{const a=[];for(const l of Object.keys(o))l!=="default"&&a.push(l);return a});return{form:r,delegatedSlots:s}}const so={Input:w.Input,InputPassword:w.InputPassword,InputNumber:w.InputNumber,Textarea:w.Textarea,Select:w.Select,Checkbox:w.Checkbox,CheckboxGroup:w.CheckboxGroup,Radio:w.Radio,RadioGroup:w.RadioGroup,Switch:w.Switch,DatePicker:w.DatePicker,RangePicker:w.RangePicker,TimePicker:w.TimePicker,Upload:w.Upload,Rate:w.Rate,Slider:w.Slider,Cascader:w.Cascader,TreeSelect:w.TreeSelect,SunnySelect:w.Select,SunnyCheckbox:w.Checkbox,SunnyRadio:w.Radio,SunnySwitch:w.Switch,SunnyDatePicker:w.DatePicker,SunnyTimePicker:w.TimePicker,SunnyUpload:w.Upload},ao={};function lo(t){const{config:o,defineRules:n}=t,{disabledOnChangeListener:r=!0,disabledOnInputListener:s=!0,emptyStateValue:a=void 0}=o||{};if(Object.assign(ao,{disabledOnChangeListener:r,disabledOnInputListener:s,emptyStateValue:a}),n)for(const l of Object.keys(n))_.defineRule(l,n[l])}function io(t){const o=_.useFormValues(),r=se().form;if(!o)throw new Error("useDependencies should be used within <SunnyForm> (VeeValidate Form)");const s=e.ref(!0),a=e.ref(!1),l=e.ref(!0),i=e.ref(!1),m=e.ref({}),g=e.ref(),y=e.computed(()=>(t()?.triggerFields??[]).map(d=>o.value[d])),c=()=>{a.value=!1,s.value=!0,l.value=!0,i.value=!1,g.value=void 0,m.value={}};return e.watch([y,t],async([f,d])=>{if(!d||!d?.triggerFields?.length)return;c();const{componentProps:h,disabled:b,if:k,required:V,rules:x,show:C,trigger:F}=d,p=o.value;if(B.isFunction(k)){if(s.value=!!await k(p,r),!s.value)return}else if(B.isBoolean(k)&&(s.value=k,!s.value))return;if(B.isFunction(C)){if(l.value=!!await C(p,r),!l.value)return}else if(B.isBoolean(C)&&(l.value=C,!l.value))return;B.isFunction(h)&&(m.value=await h(p,r)),B.isFunction(x)&&(g.value=await x(p,r)),B.isFunction(b)?a.value=!!await b(p,r):B.isBoolean(b)&&(a.value=b),B.isFunction(V)&&(i.value=!!await V(p,r)),B.isFunction(F)&&await F(p,r)},{deep:!0,immediate:!0}),{dynamicComponentProps:m,dynamicRules:g,isDisabled:a,isIf:s,isRequired:i,isShow:l}}const co=e.defineComponent({__name:"FormField",props:{schema:{}},setup(t){const o=t,n=_.useFormValues(),r=se(),{isVertical:s}=Ve(),a=r.form,{dynamicComponentProps:l,dynamicRules:i,isDisabled:m,isIf:g,isRequired:y,isShow:c}=io(()=>o.schema.dependencies),f=e.computed(()=>{const{component:p}=o.schema;return B.isString(p)&&so[p]||p}),d=e.computed(()=>o.schema.hidden?!1:g.value&&c.value),h=e.computed(()=>i.value||o.schema.rules),b=e.computed(()=>{if(!d.value)return!1;if(!h.value)return y.value;if(y.value)return!0;if(B.isString(h.value))return h.value.split("|").some(P=>["required","selectRequired"].includes(P));const p=e.toRaw(h.value);let u=p?.isOptional?.();if(p?._def?.typeName==="ZodDefault"){const P=p?._def.innerType;P&&(u=P.isOptional?.())}return!u}),k=e.computed(()=>{if(!d.value)return null;let p=e.toRaw(h.value);if(!p)return y.value?"required":null;if(B.isString(p))return p;if(!!b.value){const S=p?.unwrap?.();S&&(p=S)}return qe.toTypedSchema(p)}),V=e.computed(()=>{const{componentProps:p,commonComponentProps:u}=o.schema,S=B.isFunction(p)?p(n.value,a):p;return{...u,...S,...l.value}});e.watch(()=>V.value?.autofocus,p=>{p===!0&&e.nextTick(()=>{})},{immediate:!0});const x=e.computed(()=>m.value||o.schema.disabled||V.value?.disabled),C=e.computed(()=>{if(!(s.value||!o.schema.labelWidth))return{style:{flex:1}}}),F=e.computed(()=>{if(s.value||!o.schema.labelWidth)return;const p=o.schema.labelWidth,u=typeof p=="number"?`${p}px`:p;return{style:{width:u,minWidth:u,maxWidth:u,flex:`0 0 ${u}`}}});return(p,u)=>{const S=e.resolveComponent("a-form-item");return d.value?(e.openBlock(),e.createBlock(e.unref(_.Field),{key:0,name:t.schema.fieldName,rules:k.value,label:t.schema.label},{default:e.withCtx(({field:P,errorMessage:E})=>[e.createVNode(S,e.mergeProps({label:t.schema.label,help:E||t.schema.help,"validate-status":E?"error":void 0,required:b.value,"label-col-props":F.value,"wrapper-col-props":C.value},t.schema.formFieldProps),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.value),e.mergeProps({...V.value,...P},{disabled:x.value,"model-value":P.value,"onUpdate:modelValue":P.onInput}),null,16,["disabled","model-value","onUpdate:modelValue"]))]),_:2},1040,["label","help","validate-status","required","label-col-props","wrapper-col-props"])]),_:1},8,["name","rules","label"])):e.createCommentVNode("",!0)}}}),ae=e.defineComponent({__name:"form-actions",props:{modelValue:{type:Boolean},formApi:{}},emits:["update:modelValue"],setup(t,{expose:o,emit:n}){const r=t,s=n,{props:a}=Ve(),l=_.useFormContext(),i=e.computed({get:()=>r.modelValue??!1,set:d=>s("update:modelValue",d)}),m=e.computed(()=>({content:"重置",show:!0,type:"outline",...e.unref(a).resetButtonOptions})),g=e.computed(()=>({content:"查询",show:!0,htmlType:r.formApi?"button":"submit",...e.unref(a).submitButtonOptions}));async function y(d){if(r.formApi){d?.preventDefault(),d?.stopPropagation();const h=e.unref(a),{valid:b}=await r.formApi.validate();if(!b)return;const k=e.toRaw(await r.formApi.getValues())??{};await h.handleSubmit?.(k)}}async function c(d){d?.preventDefault(),d?.stopPropagation();const h=e.unref(a);if(r.formApi){const b=e.toRaw(await r.formApi.getValues())??{};h.handleReset?await h.handleReset(b):r.formApi.resetForm()}else if(l)if(h.handleReset){const b=l.values;await h.handleReset(b)}else l.resetForm()}e.watch(()=>i.value,()=>{e.unref(a).collapseTriggerResize&&window.dispatchEvent(new Event("resize"))});const f=e.computed(()=>{const d=e.unref(a),h=d.actionPosition||"right",b=["flex","items-center","gap-3",d.layout==="vertical"?"self-end":"self-start",d.layout==="inline"?"":"w-full",d.actionWrapperClass];switch(h){case"center":{b.push("justify-center");break}case"left":{b.push("justify-start");break}default:{b.push("justify-end");break}}return b.join(" ")});return o({handleReset:c,handleSubmit:y}),(d,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(f.value)},[e.unref(e.unref(a)).actionButtonsReverse?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(d.$slots,"submit-before"),g.value.show?(e.openBlock(),e.createBlock(e.unref(w.Button),e.mergeProps({key:0,type:"primary",size:e.unref(e.unref(a)).size,onClick:y},g.value),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.value.content),1)]),_:1},16,["size"])):e.createCommentVNode("",!0)],64)),e.renderSlot(d.$slots,"reset-before"),m.value.show?(e.openBlock(),e.createBlock(e.unref(w.Button),e.mergeProps({key:1,size:e.unref(e.unref(a)).size,onClick:c},m.value),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value.content),1)]),_:1},16,["size"])):e.createCommentVNode("",!0),e.unref(e.unref(a)).actionButtonsReverse?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.renderSlot(d.$slots,"submit-before"),g.value.show?(e.openBlock(),e.createBlock(e.unref(w.Button),e.mergeProps({key:0,type:"primary",size:e.unref(e.unref(a)).size,onClick:y},g.value),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.value.content),1)]),_:1},16,["size"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"expand-before"),e.unref(e.unref(a)).showCollapseButton?(e.openBlock(),e.createElementBlock("div",{key:3,class:"cursor-pointer ml-2 text-primary hover:opacity-80 transition-opacity select-none",onClick:h[0]||(h[0]=b=>i.value=!i.value)},[e.createElementVNode("span",null,e.toDisplayString(i.value?"展开":"收起"),1)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"expand-after")],2))}});function fo(t){const o={xs:576,sm:576,md:768,lg:992,xl:1200,xxl:1600},n=ue.useBreakpoints(o),r=e.computed(()=>{const i={},m=t.schema||[],g=a(),y=t.commonConfig?.colProps;return m.forEach(c=>{if(!c.fieldName)return;const f=c.colProps||y;i[c.fieldName]=l(f,c.colSpan,g)}),i}),s=e.computed(()=>{const i=a();if(t.layout!=="inline"){if(t.actionColProps)return l(t.actionColProps,void 0,i);if(t.showCollapseButton){const m=t.commonConfig?.colProps;return l(m||{xs:12,sm:12,md:8,lg:6},void 0,i)}return 24}});function a(){return n.greaterOrEqual("xxl").value?"xxl":n.greaterOrEqual("xl").value?"xl":n.greaterOrEqual("lg").value?"lg":n.greaterOrEqual("md").value?"md":n.greaterOrEqual("sm").value?"sm":"xs"}function l(i,m,g){if(i){const y=["xxl","xl","lg","md","sm","xs"],c=y.indexOf(g);for(let f=c;f<y.length;f++){const d=y[f],h=i[d];if(h!==void 0)return typeof h=="object"?h.span??24:h}if(i.span!==void 0)return i.span}return m!==void 0?m:24}return{spans:r,actionSpan:s}}const Ee=e.defineComponent({__name:"Form",props:{formApi:{},form:{}},setup(t){const o=t,n=no(),r=e.reactive({...n.value});e.watch(()=>n.value,x=>{Object.assign(r,x)},{deep:!0}),to(r);const{spans:s,actionSpan:a}=fo(r),l=e.computed(()=>{const{commonConfig:x={},labelWidth:C,schema:F=[]}=r,{componentProps:p={},formFieldProps:u={},...S}=x,P={...S};return C!==void 0&&Object.assign(P,{labelWidth:C}),F.map(E=>({...P,...E,hidden:E.hide,commonComponentProps:p,formFieldProps:{...u,...E.formFieldProps||{}},componentProps:E.componentProps}))}),i=e.computed(()=>r.layout==="inline"),{handleSubmit:m,resetForm:g,setValues:y,values:c,validate:f,errors:d,meta:h}=o.form||_.useForm({initialValues:l.value.reduce((x,C)=>({...x,[C.fieldName]:C.defaultValue}),{})});e.onMounted(()=>{o.formApi&&o.formApi.mount({handleSubmit:m,resetForm:g,setValues:y,values:c,validate:f,errors:d,meta:h})});const b=m(x=>{r.handleSubmit?r.handleSubmit(x):console.log("Form submitted:",x)}),k=x=>{r.collapsed=x,r.handleCollapsedChange?.(x),o.formApi&&o.formApi.setState({collapsed:x})},V=e.computed(()=>{const{compact:x,gridProps:C}=r,F=x?8:16,p=C?.xGap??C?.["x-gap"]??F,u=C?.yGap??C?.["y-gap"]??F;return{x:p,y:u}});return(x,C)=>{const F=e.resolveComponent("a-col"),p=e.resolveComponent("a-form-item"),u=e.resolveComponent("a-row"),S=e.resolveComponent("a-form");return e.openBlock(),e.createBlock(S,{model:{},layout:e.unref(n).layout||"horizontal",size:e.unref(n).size,class:"arco-form",onSubmit:C[0]||(C[0]=(P,E)=>e.unref(b)(E))},{default:e.withCtx(()=>[e.createVNode(u,{gutter:[V.value.x,V.value.y],class:e.normalizeClass(r.wrapperClass)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(P,E)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:P.fieldName},[!P.hidden&&(!r.collapsed||E<24/(e.unref(s)[P.fieldName]??24)*(r.collapsedRows??1)-1)?(e.openBlock(),e.createBlock(F,{key:0,span:e.unref(s)[P.fieldName]??(i.value?void 0:24)},{default:e.withCtx(()=>[e.createVNode(co,{schema:P},null,8,["schema"])]),_:2},1032,["span"])):e.createCommentVNode("",!0)],64))),128)),r.showDefaultActions?(e.openBlock(),e.createBlock(F,{key:0,span:e.unref(a),style:e.normalizeStyle(i.value?{marginLeft:"16px"}:{flex:1,textAlign:"right",marginBottom:V.value.y+"px"})},{default:e.withCtx(()=>[(r.layout||"horizontal")==="vertical"?(e.openBlock(),e.createBlock(p,{key:0,class:"mb-0","hide-asterisk":!0},{label:e.withCtx(()=>[...C[1]||(C[1]=[e.createElementVNode("span",{style:{display:"inline-block",width:"100%"}}," ",-1)])]),default:e.withCtx(()=>[e.createVNode(ae,{"model-value":r.collapsed,"onUpdate:modelValue":k,"form-api":o.formApi},null,8,["model-value","form-api"])]),_:1})):(e.openBlock(),e.createBlock(ae,{key:1,"model-value":r.collapsed,"onUpdate:modelValue":k,"form-api":o.formApi},null,8,["model-value","form-api"]))]),_:1},8,["span","style"])):e.createCommentVNode("",!0)]),_:1},8,["gutter","class"])]),_:1},8,["layout","size"])}}}),po=e.defineComponent({__name:"SunnyUseForm",props:{layout:{},size:{},schema:{},labelWidth:{},wrapperClass:{},gridProps:{},actionWrapperClass:{},commonConfig:{},showDefaultActions:{type:Boolean,default:void 0},submitButtonOptions:{},resetButtonOptions:{},submitOnEnter:{type:Boolean,default:void 0},submitOnChange:{type:Boolean,default:void 0},handleValuesChange:{},handleCollapsedChange:{},handleSubmit:{},scrollToFirstError:{type:Boolean},handleReset:{},collapsed:{type:Boolean,default:void 0},showCollapseButton:{type:Boolean,default:void 0},collapsedRows:{},collapseTriggerResize:{type:Boolean,default:void 0},compact:{type:Boolean,default:void 0},actionLayout:{},actionPosition:{},actionColProps:{},values:{},fieldMappingTime:{},arrayToStringFields:{},formApi:{}},setup(t){const o=t,n=o.formApi.useStore?.()||e.computed(()=>({})),r=e.computed(()=>{const y=Object.entries(o).reduce((c,[f,d])=>(d!==void 0&&(c[f]=d),c),{});return{...n.value,...y}}),s=new Map,{delegatedSlots:a,form:l}=ro(r);Fe(r),oo(s),e.onBeforeUnmount(()=>{o.formApi.unmount()});const i={};e.onMounted(async()=>{o.formApi.mount(l,s),o.formApi.setState({values:B.cloneDeep(l.values)}),await e.nextTick(),e.watch(()=>l.values,async y=>{if(o.formApi.setState({values:B.cloneDeep(y)}),m(),!r.value.handleValuesChange)return;const c=r.value.schema?.map(d=>d.fieldName)||[];if(c.length===0)return;const f=[];for(const d of c){const h=B.get(y,d),b=B.get(i,d);B.isEqual(h,b)||(f.push(d),B.set(i,d,h))}if(f.length>0){const d=await o.formApi.getValues();r.value.handleValuesChange(B.cloneDeep(d??{}),f)}},{deep:!0})});const m=ue.useDebounceFn(async()=>{n.value.submitOnChange&&await o.formApi.submitForm()},300);function g(y){n.value.submitOnEnter&&(y.target instanceof HTMLTextAreaElement||(y.preventDefault(),o.formApi.submitForm()))}return(y,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(r.value.wrapperClass)},[e.createVNode(Ee,e.mergeProps(r.value,{form:e.unref(l),"form-api":o.formApi,onKeydown:e.withKeys(g,["enter"])}),e.createSlots({default:e.withCtx(()=>[]),_:2},[e.renderList(e.unref(a),f=>({name:f,fn:e.withCtx(d=>[e.renderSlot(y.$slots,f,e.normalizeProps(e.guardReactiveProps(d)))])}))]),1040,["form","form-api"])],2))}});function uo(t={}){const o=new Be(t);return o.useStore=r=>Ie.useStore(o.store.store,r),e.isReactive(t)&&e.watch(()=>t.schema,()=>{t.schema&&o.setState({schema:t.schema})},{immediate:!0}),[e.defineComponent({name:"useSunnyFormWrapper",setup(r,{attrs:s,slots:a}){return o.setState({...r,...s}),()=>e.h(po,{...r,...s,formApi:o},a)}}),o]}const mo=e.defineComponent({__name:"SunnyForm",props:{layout:{},size:{},schema:{},labelWidth:{},wrapperClass:{},gridProps:{},actionWrapperClass:{},commonConfig:{},showDefaultActions:{type:Boolean},submitButtonOptions:{},resetButtonOptions:{},submitOnEnter:{type:Boolean},submitOnChange:{type:Boolean},handleValuesChange:{type:Function},handleCollapsedChange:{type:Function},handleSubmit:{type:Function},scrollToFirstError:{type:Boolean},handleReset:{type:Function},collapsed:{type:Boolean},showCollapseButton:{type:Boolean},collapsedRows:{},collapseTriggerResize:{type:Boolean},compact:{type:Boolean},actionLayout:{},actionPosition:{},actionColProps:{},values:{},fieldMappingTime:{},arrayToStringFields:{}},emits:["submit","reset","update:collapsed"],setup(t,{emit:o}){const n=t,r=o,s=e.computed(()=>n);Fe(s);const a=i=>{r("update:collapsed",i),n.handleCollapsedChange?.(i)},l=i=>{r("submit",i),n.handleSubmit?.(i)};return(i,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(n.wrapperClass)},[e.createVNode(Ee,{onSubmit:l},{default:e.withCtx(()=>[n.showDefaultActions?(e.openBlock(),e.createBlock(ae,{key:0,"model-value":n.collapsed,"onUpdate:modelValue":a},{"reset-before":e.withCtx(()=>[e.renderSlot(i.$slots,"reset-before")]),"submit-before":e.withCtx(()=>[e.renderSlot(i.$slots,"submit-before")]),"expand-before":e.withCtx(()=>[e.renderSlot(i.$slots,"expand-before")]),"expand-after":e.withCtx(()=>[e.renderSlot(i.$slots,"expand-after")]),_:3},8,["model-value"])):e.createCommentVNode("",!0)]),_:3})],2))}});let ho=class{gridRef;options;constructor(o,n){this.gridRef=o,this.options=n}get grid(){return this.gridRef.value?.getGrid?.()||this.gridRef.value}async addEvent(o={}){const n=this.grid;if(n){const{record:r={},index:s=-1}=o,{row:a}=await n.insertAt(r,s);await e.nextTick(),n.setEditRow(a)}}async deleteSelection(){const o=this.grid;if(o){const n=o.getCheckboxRecords();n.length>0&&await o.remove(n)}}};const yo=e.defineComponent({__name:"use-vxe-grid",setup(t,{expose:o}){const n=e.ref();return o({getGrid:()=>n.value}),(r,s)=>(e.openBlock(),e.createBlock(e.unref(Z.VxeGrid),e.mergeProps({ref_key:"gridRef",ref:n},r.$attrs),e.createSlots({_:2},[e.renderList(r.$slots,(a,l)=>({name:l,fn:e.withCtx(i=>[e.renderSlot(r.$slots,l,e.normalizeProps(e.guardReactiveProps(i||{})))])}))]),1040))}});function go(t){const o=e.ref(),n=new ho(o,t);return[e.defineComponent((s,{attrs:a,slots:l})=>{const{gridEvents:i,gridOptions:m}=t,g=Object.entries(i||{}).reduce((y,[c,f])=>{const d=`on${c.charAt(0).toUpperCase()+c.slice(1)}`;return y[d]=f,y},{});return()=>e.h(yo,{ref:o,...s,...a,...m,...g},l)}),n]}class bo{gridRef;options;constructor(o,n){this.gridRef=o,this.options=n}get grid(){return this.gridRef.value?.getGrid?.()||this.gridRef.value}async addEvent(o={}){const n=this.grid;if(n){const{record:r={},index:s=-1}=o,{row:a}=await n.insertAt(r,s);await e.nextTick(),n.setEditRow(a)}}async deleteSelection(){const o=this.grid;if(o){const n=o.getCheckboxRecords();n.length>0&&await o.remove(n)}}}function ko(t,o){let n=null,r=null,s=null,a=null,l=null,i=!1,m=!1;const g=b=>{if(!b)return window;let k=b.parentElement;for(;k;){const V=window.getComputedStyle(k);if(/(auto|scroll)/.test(V.overflow+V.overflowY+V.overflowX))return k;k=k.parentElement}return window},y=()=>{n&&n.classList.contains("is-sticky")&&(n.style.position="",n.style.top="",n.style.left="",n.style.zIndex="",n.style.width="",n.classList.remove("is-sticky"),r&&r.parentNode&&(r.parentNode.removeChild(r),r=null)),a&&(a.style.display="none")},c=b=>{m||a&&s&&(i=!0,a.scrollLeft=s.scrollLeft,requestAnimationFrame(()=>{i=!1}))},f=b=>{i||a&&s&&(m=!0,s.scrollLeft=a.scrollLeft,requestAnimationFrame(()=>{m=!1}))},d=()=>{!t.value||a||(a=document.createElement("div"),a.className="vxe-table--sticky-scrollbar",a.style.position="fixed",a.style.bottom="0",a.style.overflowX="auto",a.style.overflowY="hidden",a.style.zIndex="101",a.style.display="none",l=document.createElement("div"),a.appendChild(l),a.addEventListener("scroll",f),document.body.appendChild(a),s=t.value.$el.querySelector(".vxe-table--body-wrapper"),s&&s.addEventListener("scroll",c))},h=()=>{if(!t.value||!n)return;if(!o.sticky){y();return}const b=t.value.$el,k=b.getBoundingClientRect(),V=n.getBoundingClientRect(),x=g(b);let C={top:0,bottom:window.innerHeight};if(x!==window&&x instanceof HTMLElement&&(C=x.getBoundingClientRect()),C.bottom>0&&C.top<window.innerHeight&&k.top<C.top&&k.bottom>V.height){const p=Math.max(0,C.top);k.bottom-V.height>p?(!n.classList.contains("is-sticky")||n.style.top!==`${p}px`||n.style.left!==`${k.left}px`)&&(n.style.position="fixed",n.style.top=`${p}px`,n.style.left=`${k.left}px`,n.style.width=`${k.width}px`,n.style.zIndex="100",n.classList.add("is-sticky"),r||(r=document.createElement("div"),n.parentNode?.insertBefore(r,n)),r.style.height=`${V.height}px`):y()}else n.classList.contains("is-sticky")&&(n.style.position="",n.style.top="",n.style.left="",n.style.width="",n.classList.remove("is-sticky"),r&&r.parentNode&&(r.parentNode.removeChild(r),r=null));if((!a||!s)&&d(),a&&s&&l){const p=s.scrollWidth,u=s.clientWidth;if(p>u){const S=window.innerHeight;k.bottom>S&&k.top<S?(a.style.display="block",a.style.width=`${k.width}px`,a.style.left=`${k.left}px`,l.style.width=`${p}px`,Math.abs(a.scrollLeft-s.scrollLeft)>1&&(a.scrollLeft=s.scrollLeft)):a.style.display="none"}else a.style.display="none"}};e.watch(()=>o.sticky,()=>{h()}),e.onMounted(()=>{setTimeout(()=>{t.value&&(n=t.value.$el.querySelector(".vxe-table--header-wrapper"),n&&(window.addEventListener("scroll",h,!0),window.addEventListener("resize",h)),d())},100)}),e.onBeforeUnmount(()=>{window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h),r&&r.parentNode&&r.parentNode.removeChild(r),a&&a.parentNode&&a.parentNode.removeChild(a),s&&s.removeEventListener("scroll",c)})}var So=typeof global=="object"&&global&&global.Object===Object&&global,wo=typeof self=="object"&&self&&self.Object===Object&&self,le=So||wo||Function("return this")(),j=le.Symbol,_e=Object.prototype,Co=_e.hasOwnProperty,xo=_e.toString,I=j?j.toStringTag:void 0;function Bo(t){var o=Co.call(t,I),n=t[I];try{t[I]=void 0;var r=!0}catch{}var s=xo.call(t);return r&&(o?t[I]=n:delete t[I]),s}var $o=Object.prototype,Vo=$o.toString;function Po(t){return Vo.call(t)}var Fo="[object Null]",Eo="[object Undefined]",Ne=j?j.toStringTag:void 0;function ie(t){return t==null?t===void 0?Eo:Fo:Ne&&Ne in Object(t)?Bo(t):Po(t)}function ce(t){return t!=null&&typeof t=="object"}var _o="[object Symbol]";function de(t){return typeof t=="symbol"||ce(t)&&ie(t)==_o}function No(t,o){for(var n=-1,r=t==null?0:t.length,s=Array(r);++n<r;)s[n]=o(t[n],n,t);return s}var G=Array.isArray,Oe=j?j.prototype:void 0,ze=Oe?Oe.toString:void 0;function Te(t){if(typeof t=="string")return t;if(G(t))return No(t,Te)+"";if(de(t))return ze?ze.call(t):"";var o=t+"";return o=="0"&&1/t==-1/0?"-0":o}function Re(t){var o=typeof t;return t!=null&&(o=="object"||o=="function")}var Oo="[object AsyncFunction]",zo="[object Function]",To="[object GeneratorFunction]",Ro="[object Proxy]";function Mo(t){if(!Re(t))return!1;var o=ie(t);return o==zo||o==To||o==Oo||o==Ro}var fe=le["__core-js_shared__"],Me=(function(){var t=/[^.]+$/.exec(fe&&fe.keys&&fe.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""})();function jo(t){return!!Me&&Me in t}var Ao=Function.prototype,Do=Ao.toString;function Lo(t){if(t!=null){try{return Do.call(t)}catch{}try{return t+""}catch{}}return""}var Io=/[\\^$.*+?()[\]{}|]/g,vo=/^\[object .+?Constructor\]$/,qo=Function.prototype,Uo=Object.prototype,Ho=qo.toString,Go=Uo.hasOwnProperty,Wo=RegExp("^"+Ho.call(Go).replace(Io,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yo(t){if(!Re(t)||jo(t))return!1;var o=Mo(t)?Wo:vo;return o.test(Lo(t))}function Ko(t,o){return t?.[o]}function je(t,o){var n=Ko(t,o);return Yo(n)?n:void 0}var Xo=9007199254740991,Zo=/^(?:0|[1-9]\d*)$/;function Qo(t,o){var n=typeof t;return o=o??Xo,!!o&&(n=="number"||n!="symbol"&&Zo.test(t))&&t>-1&&t%1==0&&t<o}function Jo(t,o){return t===o||t!==t&&o!==o}var en=9007199254740991;function tn(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=en}var on="[object Arguments]";function Ae(t){return ce(t)&&ie(t)==on}var De=Object.prototype,nn=De.hasOwnProperty,rn=De.propertyIsEnumerable,sn=Ae((function(){return arguments})())?Ae:function(t){return ce(t)&&nn.call(t,"callee")&&!rn.call(t,"callee")},an=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ln=/^\w*$/;function cn(t,o){if(G(t))return!1;var n=typeof t;return n=="number"||n=="symbol"||n=="boolean"||t==null||de(t)?!0:ln.test(t)||!an.test(t)||o!=null&&t in Object(o)}var v=je(Object,"create");function dn(){this.__data__=v?v(null):{},this.size=0}function fn(t){var o=this.has(t)&&delete this.__data__[t];return this.size-=o?1:0,o}var pn="__lodash_hash_undefined__",un=Object.prototype,mn=un.hasOwnProperty;function hn(t){var o=this.__data__;if(v){var n=o[t];return n===pn?void 0:n}return mn.call(o,t)?o[t]:void 0}var yn=Object.prototype,gn=yn.hasOwnProperty;function bn(t){var o=this.__data__;return v?o[t]!==void 0:gn.call(o,t)}var kn="__lodash_hash_undefined__";function Sn(t,o){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=v&&o===void 0?kn:o,this}function N(t){var o=-1,n=t==null?0:t.length;for(this.clear();++o<n;){var r=t[o];this.set(r[0],r[1])}}N.prototype.clear=dn,N.prototype.delete=fn,N.prototype.get=hn,N.prototype.has=bn,N.prototype.set=Sn;function wn(){this.__data__=[],this.size=0}function W(t,o){for(var n=t.length;n--;)if(Jo(t[n][0],o))return n;return-1}var Cn=Array.prototype,xn=Cn.splice;function Bn(t){var o=this.__data__,n=W(o,t);if(n<0)return!1;var r=o.length-1;return n==r?o.pop():xn.call(o,n,1),--this.size,!0}function $n(t){var o=this.__data__,n=W(o,t);return n<0?void 0:o[n][1]}function Vn(t){return W(this.__data__,t)>-1}function Pn(t,o){var n=this.__data__,r=W(n,t);return r<0?(++this.size,n.push([t,o])):n[r][1]=o,this}function A(t){var o=-1,n=t==null?0:t.length;for(this.clear();++o<n;){var r=t[o];this.set(r[0],r[1])}}A.prototype.clear=wn,A.prototype.delete=Bn,A.prototype.get=$n,A.prototype.has=Vn,A.prototype.set=Pn;var Fn=je(le,"Map");function En(){this.size=0,this.__data__={hash:new N,map:new(Fn||A),string:new N}}function _n(t){var o=typeof t;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?t!=="__proto__":t===null}function Y(t,o){var n=t.__data__;return _n(o)?n[typeof o=="string"?"string":"hash"]:n.map}function Nn(t){var o=Y(this,t).delete(t);return this.size-=o?1:0,o}function On(t){return Y(this,t).get(t)}function zn(t){return Y(this,t).has(t)}function Tn(t,o){var n=Y(this,t),r=n.size;return n.set(t,o),this.size+=n.size==r?0:1,this}function O(t){var o=-1,n=t==null?0:t.length;for(this.clear();++o<n;){var r=t[o];this.set(r[0],r[1])}}O.prototype.clear=En,O.prototype.delete=Nn,O.prototype.get=On,O.prototype.has=zn,O.prototype.set=Tn;var Rn="Expected a function";function pe(t,o){if(typeof t!="function"||o!=null&&typeof o!="function")throw new TypeError(Rn);var n=function(){var r=arguments,s=o?o.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var l=t.apply(this,r);return n.cache=a.set(s,l)||a,l};return n.cache=new(pe.Cache||O),n}pe.Cache=O;var Mn=500;function jn(t){var o=pe(t,function(r){return n.size===Mn&&n.clear(),r}),n=o.cache;return o}var An=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dn=/\\(\\)?/g,Ln=jn(function(t){var o=[];return t.charCodeAt(0)===46&&o.push(""),t.replace(An,function(n,r,s,a){o.push(s?a.replace(Dn,"$1"):r||n)}),o});function In(t){return t==null?"":Te(t)}function vn(t,o){return G(t)?t:cn(t,o)?[t]:Ln(In(t))}function qn(t){if(typeof t=="string"||de(t))return t;var o=t+"";return o=="0"&&1/t==-1/0?"-0":o}function Un(t,o){return t!=null&&o in Object(t)}function Hn(t,o,n){o=vn(o,t);for(var r=-1,s=o.length,a=!1;++r<s;){var l=qn(o[r]);if(!(a=t!=null&&n(t,l)))break;t=t[l]}return a||++r!=s?a:(s=t==null?0:t.length,!!s&&tn(s)&&Qo(l,s)&&(G(t)||sn(t)))}function Gn(t,o){return t!=null&&Hn(t,o,Un)}const Wn={class:"my-filter-complex"},Yn={key:0,class:"my-filter-input"},Kn={class:"my-fc-footer"},Xn=be(e.defineComponent({__name:"FilterComplex",props:{renderOpts:Object,renderParams:Object},setup(t){const o=t,n=e.ref(),r=e.computed(()=>{const{column:c}=o.renderParams||{};return c?c.field:""}),s=()=>{const{renderParams:c}=o;if(c){const{column:f}=c,d=f.filters[0];n.value=d}};e.watch(r,()=>{s()}),s();const a=e.computed(()=>o.renderParams.column),l=e.computed(()=>Gn(a.value.params,"optionlist")?"select":"input"),i=()=>{const{renderParams:c}=o,f=n.value;if(c&&f){const{$table:d}=c,h=!!f.data;d.updateFilterOptionStatus(f,h)}},m=()=>{const{renderParams:c}=o,f={};if(c){const{$table:d}=c;d.getColumns().forEach(b=>{const{field:k,filters:V}=b;if(k&&V&&V.length){const x=V[0];x.data&&(f[k]=x.data)}})}return f},g=()=>{const{renderParams:c}=o;if(c){const{$table:f,$grid:d}=c,h=n.value;h&&f.updateFilterOptionStatus(h,!!h.data);const b=m();d.commitProxy("query",b),d.closeFilter()}},y=()=>{const{renderParams:c}=o,f=n.value;if(c&&f){const{$table:d,$grid:h}=c;f.data="",d.updateFilterOptionStatus(f,!1);const b=m();h.commitProxy("query",b),h.closeFilter()}};return(c,f)=>(e.openBlock(),e.createElementBlock("div",Wn,[n.value?(e.openBlock(),e.createElementBlock("div",Yn,[l.value==="select"?(e.openBlock(),e.createBlock(e.unref(z.VxeSelect),{key:0,modelValue:n.value.data,"onUpdate:modelValue":f[0]||(f[0]=d=>n.value.data=d),options:a.value.params.optionlist,clearable:"",onChange:i},null,8,["modelValue","options"])):(e.openBlock(),e.createBlock(e.unref(z.VxeInput),{key:1,modelValue:n.value.data,"onUpdate:modelValue":f[1]||(f[1]=d=>n.value.data=d),clearable:"",onKeyup:e.withKeys(g,["enter"]),onInput:i},null,8,["modelValue"]))])):e.createCommentVNode("",!0),e.createElementVNode("div",Kn,[e.createVNode(e.unref(z.VxeButton),{onClick:y},{default:e.withCtx(()=>[...f[2]||(f[2]=[e.createTextVNode("重置",-1)])]),_:1}),e.createVNode(e.unref(z.VxeButton),{status:"primary",onClick:g},{default:e.withCtx(()=>[...f[3]||(f[3]=[e.createTextVNode("确认",-1)])]),_:1})])]))}}),[["__scopeId","data-v-98a6f5eb"]]);Z.VxeUI.renderer.add("MyFilterComplex",{showTableFilterFooter:!1,renderTableFilter(t,o){return React.createElement(Xn,{renderOpts:t,renderParams:o})}});const Zn=e.defineComponent({components:{VxePager:z.VxePager,VxeButton:z.VxeButton},__name:"use-query-grid",setup(t,{expose:o}){const n=e.ref(),r=e.useAttrs();return ko(n,r),o({getGrid:()=>n.value}),(s,a)=>(e.openBlock(),e.createBlock(e.unref(Z.VxeGrid),e.mergeProps({ref_key:"gridRef",ref:n},s.$attrs),e.createSlots({_:2},[e.renderList(s.$slots,(l,i)=>({name:i,fn:e.withCtx(m=>[e.renderSlot(s.$slots,i,e.normalizeProps(e.guardReactiveProps(m||{})))])}))]),1040))}});function Qn(t){const o=e.ref(),n=new bo(o,t);return[e.defineComponent((s,{attrs:a,slots:l})=>{const{gridEvents:i,gridOptions:m}=t,g=Object.entries(i||{}).reduce((y,[c,f])=>{const d=`on${c.charAt(0).toUpperCase()+c.slice(1)}`;return y[d]=f,y},{});return()=>e.h(Zn,{ref:o,...s,...a,...m,...g},l)}),n]}let q=null;async function Le(){return q||(q=await import("nprogress"),q.configure({showSpinner:!0,speed:300}),q)}async function Jn(){(await Le())?.start()}async function er(){(await Le())?.done()}Object.defineProperty($,"patterns",{enumerable:!0,get:()=>B.patterns}),$.z=Ge,$.FormApi=Be,$.Modal=he,$.ModalTypes=Vt,$.SunnyBatchSelect=Yt,$.SunnyForm=mo,$.SunnyIcon=re,$.SunnyScrollbar=_t,$.SunnySearchInputTag=Kt,$.SunnySelect=Se,$.SunnyUpload=Ut,$.setupSunnyForm=lo,$.startProgress=Jn,$.stopProgress=er,$.useSunnyEditGrid=go,$.useSunnyForm=uo,$.useSunnyModal=$t,$.useSunnyQueryGrid=Qn,Object.defineProperty($,Symbol.toStringTag,{value:"Module"})}));