@haoyulong1112/jh-ui 0.1.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 (213) hide show
  1. package/dist/components/alert/index.d.ts +125 -0
  2. package/dist/components/alert/src/alert.vue.d.ts +73 -0
  3. package/dist/components/alert/src/props.d.ts +32 -0
  4. package/dist/components/alert/src/types.d.ts +2 -0
  5. package/dist/components/backtop/index.d.ts +102 -0
  6. package/dist/components/backtop/src/backtop.vue.d.ts +57 -0
  7. package/dist/components/backtop/src/props.d.ts +22 -0
  8. package/dist/components/backtop/src/types.d.ts +3 -0
  9. package/dist/components/badge/index.d.ts +101 -0
  10. package/dist/components/badge/src/badge.vue.d.ts +59 -0
  11. package/dist/components/badge/src/props.d.ts +24 -0
  12. package/dist/components/badge/src/types.d.ts +2 -0
  13. package/dist/components/button/index.d.ts +123 -0
  14. package/dist/components/button/src/button.vue.d.ts +69 -0
  15. package/dist/components/button/src/props.d.ts +33 -0
  16. package/dist/components/button/src/types.d.ts +3 -0
  17. package/dist/components/carousel/index.d.ts +187 -0
  18. package/dist/components/carousel/src/carousel-item.vue.d.ts +24 -0
  19. package/dist/components/carousel/src/carousel.vue.d.ts +86 -0
  20. package/dist/components/carousel/src/props.d.ts +44 -0
  21. package/dist/components/carousel/src/types.d.ts +11 -0
  22. package/dist/components/cascader/index.d.ts +68 -0
  23. package/dist/components/cascader/src/cascader.vue.d.ts +67 -0
  24. package/dist/components/cascader/src/props.d.ts +33 -0
  25. package/dist/components/cascader/src/types.d.ts +13 -0
  26. package/dist/components/checkbox/index.d.ts +139 -0
  27. package/dist/components/checkbox/src/checkbox-group.vue.d.ts +34 -0
  28. package/dist/components/checkbox/src/checkbox.vue.d.ts +44 -0
  29. package/dist/components/checkbox/src/props.d.ts +31 -0
  30. package/dist/components/checkbox/src/types.d.ts +8 -0
  31. package/dist/components/collapse/index.d.ts +120 -0
  32. package/dist/components/collapse/src/collapse-item.vue.d.ts +37 -0
  33. package/dist/components/collapse/src/collapse.vue.d.ts +33 -0
  34. package/dist/components/collapse/src/props.d.ts +24 -0
  35. package/dist/components/collapse/src/types.d.ts +8 -0
  36. package/dist/components/date-picker/index.d.ts +32 -0
  37. package/dist/components/date-picker/src/date-picker.vue.d.ts +30 -0
  38. package/dist/components/date-picker/src/props.d.ts +16 -0
  39. package/dist/components/date-picker/src/types.d.ts +1 -0
  40. package/dist/components/date-time-picker/index.d.ts +32 -0
  41. package/dist/components/date-time-picker/src/date-time-picker.vue.d.ts +30 -0
  42. package/dist/components/date-time-picker/src/props.d.ts +16 -0
  43. package/dist/components/date-time-picker/src/types.d.ts +1 -0
  44. package/dist/components/dialog/index.d.ts +97 -0
  45. package/dist/components/dialog/src/dialog.vue.d.ts +54 -0
  46. package/dist/components/dialog/src/props.d.ts +22 -0
  47. package/dist/components/dialog/src/types.d.ts +1 -0
  48. package/dist/components/drawer/index.d.ts +139 -0
  49. package/dist/components/drawer/src/drawer.vue.d.ts +79 -0
  50. package/dist/components/drawer/src/props.d.ts +33 -0
  51. package/dist/components/drawer/src/types.d.ts +2 -0
  52. package/dist/components/dropdown/index.d.ts +115 -0
  53. package/dist/components/dropdown/src/dropdown.vue.d.ts +67 -0
  54. package/dist/components/dropdown/src/props.d.ts +30 -0
  55. package/dist/components/dropdown/src/types.d.ts +9 -0
  56. package/dist/components/form/index.d.ts +127 -0
  57. package/dist/components/form/src/form-item.vue.d.ts +27 -0
  58. package/dist/components/form/src/form.vue.d.ts +45 -0
  59. package/dist/components/form/src/props.d.ts +24 -0
  60. package/dist/components/form/src/types.d.ts +19 -0
  61. package/dist/components/icon/index.d.ts +53 -0
  62. package/dist/components/icon/src/icon.vue.d.ts +31 -0
  63. package/dist/components/icon/src/props.d.ts +13 -0
  64. package/dist/components/icon/src/types.d.ts +1 -0
  65. package/dist/components/index.d.ts +6387 -0
  66. package/dist/components/infinite-scroll/index.d.ts +107 -0
  67. package/dist/components/infinite-scroll/src/infinite-scroll.vue.d.ts +59 -0
  68. package/dist/components/infinite-scroll/src/props.d.ts +21 -0
  69. package/dist/components/infinite-scroll/src/types.d.ts +5 -0
  70. package/dist/components/input/index.d.ts +110 -0
  71. package/dist/components/input/src/input.vue.d.ts +58 -0
  72. package/dist/components/input/src/props.d.ts +26 -0
  73. package/dist/components/input/src/types.d.ts +1 -0
  74. package/dist/components/link/index.d.ts +84 -0
  75. package/dist/components/link/src/link.vue.d.ts +48 -0
  76. package/dist/components/link/src/props.d.ts +23 -0
  77. package/dist/components/link/src/types.d.ts +2 -0
  78. package/dist/components/message/index.d.ts +7 -0
  79. package/dist/components/message/src/message.vue.d.ts +79 -0
  80. package/dist/components/message/src/props.d.ts +33 -0
  81. package/dist/components/message/src/types.d.ts +32 -0
  82. package/dist/components/message-box/index.d.ts +7 -0
  83. package/dist/components/message-box/src/message-box.vue.d.ts +101 -0
  84. package/dist/components/message-box/src/props.d.ts +42 -0
  85. package/dist/components/message-box/src/types.d.ts +27 -0
  86. package/dist/components/notification/index.d.ts +7 -0
  87. package/dist/components/notification/src/notification.vue.d.ts +95 -0
  88. package/dist/components/notification/src/props.d.ts +46 -0
  89. package/dist/components/notification/src/types.d.ts +36 -0
  90. package/dist/components/pagination/index.d.ts +45 -0
  91. package/dist/components/pagination/src/pagination.vue.d.ts +43 -0
  92. package/dist/components/pagination/src/props.d.ts +23 -0
  93. package/dist/components/pagination/src/types.d.ts +4 -0
  94. package/dist/components/radio/index.d.ts +112 -0
  95. package/dist/components/radio/src/props.d.ts +25 -0
  96. package/dist/components/radio/src/radio-group.vue.d.ts +27 -0
  97. package/dist/components/radio/src/radio.vue.d.ts +36 -0
  98. package/dist/components/radio/src/types.d.ts +8 -0
  99. package/dist/components/scrollbar/index.d.ts +60 -0
  100. package/dist/components/scrollbar/src/props.d.ts +14 -0
  101. package/dist/components/scrollbar/src/scrollbar.vue.d.ts +33 -0
  102. package/dist/components/scrollbar/src/types.d.ts +4 -0
  103. package/dist/components/select/index.d.ts +43 -0
  104. package/dist/components/select/src/props.d.ts +22 -0
  105. package/dist/components/select/src/select.vue.d.ts +42 -0
  106. package/dist/components/select/src/types.d.ts +6 -0
  107. package/dist/components/table/index.d.ts +147 -0
  108. package/dist/components/table/src/props.d.ts +31 -0
  109. package/dist/components/table/src/table.vue.d.ts +88 -0
  110. package/dist/components/table/src/types.d.ts +11 -0
  111. package/dist/components/tabs/index.d.ts +112 -0
  112. package/dist/components/tabs/src/props.d.ts +23 -0
  113. package/dist/components/tabs/src/tab-pane.vue.d.ts +35 -0
  114. package/dist/components/tabs/src/tabs.vue.d.ts +31 -0
  115. package/dist/components/tabs/src/types.d.ts +14 -0
  116. package/dist/components/text/index.d.ts +86 -0
  117. package/dist/components/text/src/props.d.ts +23 -0
  118. package/dist/components/text/src/text.vue.d.ts +51 -0
  119. package/dist/components/text/src/types.d.ts +3 -0
  120. package/dist/components/time-select/index.d.ts +64 -0
  121. package/dist/components/time-select/src/props.d.ts +29 -0
  122. package/dist/components/time-select/src/time-select.vue.d.ts +63 -0
  123. package/dist/components/time-select/src/types.d.ts +4 -0
  124. package/dist/components/tree/index.d.ts +167 -0
  125. package/dist/components/tree/src/props.d.ts +39 -0
  126. package/dist/components/tree/src/tree.vue.d.ts +97 -0
  127. package/dist/components/tree/src/types.d.ts +21 -0
  128. package/dist/components/upload/index.d.ts +89 -0
  129. package/dist/components/upload/src/props.d.ts +41 -0
  130. package/dist/components/upload/src/types.d.ts +11 -0
  131. package/dist/components/upload/src/upload.vue.d.ts +88 -0
  132. package/dist/components/waterfall/index.d.ts +195 -0
  133. package/dist/components/waterfall/src/props.d.ts +42 -0
  134. package/dist/components/waterfall/src/types.d.ts +17 -0
  135. package/dist/components/waterfall/src/waterfall.vue.d.ts +122 -0
  136. package/dist/es/components/alert/style/css.js +1 -0
  137. package/dist/es/components/alert/style/style.css +128 -0
  138. package/dist/es/components/backtop/style/css.js +1 -0
  139. package/dist/es/components/backtop/style/style.css +67 -0
  140. package/dist/es/components/badge/style/css.js +1 -0
  141. package/dist/es/components/badge/style/style.css +88 -0
  142. package/dist/es/components/button/style/css.js +1 -0
  143. package/dist/es/components/button/style/style.css +207 -0
  144. package/dist/es/components/carousel/style/css.js +1 -0
  145. package/dist/es/components/carousel/style/style.css +118 -0
  146. package/dist/es/components/cascader/style/css.js +1 -0
  147. package/dist/es/components/cascader/style/style.css +172 -0
  148. package/dist/es/components/checkbox/style/css.js +1 -0
  149. package/dist/es/components/checkbox/style/style.css +95 -0
  150. package/dist/es/components/collapse/style/css.js +1 -0
  151. package/dist/es/components/collapse/style/style.css +91 -0
  152. package/dist/es/components/date-picker/style/css.js +1 -0
  153. package/dist/es/components/date-picker/style/style.css +78 -0
  154. package/dist/es/components/date-time-picker/style/css.js +1 -0
  155. package/dist/es/components/date-time-picker/style/style.css +78 -0
  156. package/dist/es/components/dialog/style/css.js +1 -0
  157. package/dist/es/components/dialog/style/style.css +129 -0
  158. package/dist/es/components/drawer/style/css.js +1 -0
  159. package/dist/es/components/drawer/style/style.css +162 -0
  160. package/dist/es/components/dropdown/style/css.js +1 -0
  161. package/dist/es/components/dropdown/style/style.css +138 -0
  162. package/dist/es/components/form/style/css.js +1 -0
  163. package/dist/es/components/form/style/style.css +73 -0
  164. package/dist/es/components/icon/style/css.js +1 -0
  165. package/dist/es/components/icon/style/style.css +61 -0
  166. package/dist/es/components/infinite-scroll/style/css.js +1 -0
  167. package/dist/es/components/infinite-scroll/style/style.css +54 -0
  168. package/dist/es/components/input/style/css.js +1 -0
  169. package/dist/es/components/input/style/style.css +152 -0
  170. package/dist/es/components/link/style/css.js +1 -0
  171. package/dist/es/components/link/style/style.css +82 -0
  172. package/dist/es/components/message/style/css.js +1 -0
  173. package/dist/es/components/message/style/style.css +111 -0
  174. package/dist/es/components/message-box/style/css.js +1 -0
  175. package/dist/es/components/message-box/style/style.css +156 -0
  176. package/dist/es/components/notification/style/css.js +1 -0
  177. package/dist/es/components/notification/style/style.css +128 -0
  178. package/dist/es/components/pagination/style/css.js +1 -0
  179. package/dist/es/components/pagination/style/style.css +89 -0
  180. package/dist/es/components/radio/style/css.js +1 -0
  181. package/dist/es/components/radio/style/style.css +91 -0
  182. package/dist/es/components/scrollbar/style/css.js +1 -0
  183. package/dist/es/components/scrollbar/style/style.css +75 -0
  184. package/dist/es/components/select/style/css.js +1 -0
  185. package/dist/es/components/select/style/style.css +140 -0
  186. package/dist/es/components/table/style/css.js +1 -0
  187. package/dist/es/components/table/style/style.css +177 -0
  188. package/dist/es/components/tabs/style/css.js +1 -0
  189. package/dist/es/components/tabs/style/style.css +85 -0
  190. package/dist/es/components/text/style/css.js +1 -0
  191. package/dist/es/components/text/style/style.css +84 -0
  192. package/dist/es/components/time-select/style/css.js +1 -0
  193. package/dist/es/components/time-select/style/style.css +153 -0
  194. package/dist/es/components/tree/style/css.js +1 -0
  195. package/dist/es/components/tree/style/style.css +113 -0
  196. package/dist/es/components/upload/style/css.js +1 -0
  197. package/dist/es/components/upload/style/style.css +148 -0
  198. package/dist/es/components/waterfall/style/css.js +1 -0
  199. package/dist/es/components/waterfall/style/style.css +85 -0
  200. package/dist/index.cjs +2 -0
  201. package/dist/index.cjs.map +1 -0
  202. package/dist/index.css +1 -0
  203. package/dist/index.d.ts +63 -0
  204. package/dist/index.mjs +3341 -0
  205. package/dist/index.mjs.map +1 -0
  206. package/dist/resolver.cjs +2 -0
  207. package/dist/resolver.cjs.map +1 -0
  208. package/dist/resolver.d.ts +14 -0
  209. package/dist/resolver.mjs +59 -0
  210. package/dist/resolver.mjs.map +1 -0
  211. package/dist/utils/src/index.d.ts +1 -0
  212. package/dist/utils/src/install.d.ts +3 -0
  213. package/package.json +70 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),V=o=>(o.install=a=>{const t=o.name;t&&a.component(t,o)},o),ho=["plus","close","search","eye","eye-off","loading","arrow-left","arrow-right"],X={name:String,size:{type:[Number,String],default:void 0},color:String,spin:Boolean},fo={key:0,class:"jh-icon__svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},go={key:5,d:"M21 12a9 9 0 1 1-6.2-8.6"},bo={key:6,d:"m15 18-6-6 6-6"},vo={key:7,d:"m9 18 6-6-6-6"},ko=e.defineComponent({name:"JhIcon",__name:"icon",props:X,setup(o){const a=o,t=e.computed(()=>({color:a.color,fontSize:typeof a.size=="number"?`${a.size}px`:a.size}));return(l,n)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["jh-icon",{"is-spin":l.spin||l.name==="loading"}]),style:e.normalizeStyle(t.value)},[l.name?(e.openBlock(),e.createElementBlock("svg",fo,[l.name==="plus"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[0]||(n[0]=e.createElementVNode("path",{d:"M12 5v14"},null,-1)),n[1]||(n[1]=e.createElementVNode("path",{d:"M5 12h14"},null,-1))],64)):l.name==="close"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[n[2]||(n[2]=e.createElementVNode("path",{d:"M18 6 6 18"},null,-1)),n[3]||(n[3]=e.createElementVNode("path",{d:"m6 6 12 12"},null,-1))],64)):l.name==="search"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[n[4]||(n[4]=e.createElementVNode("circle",{cx:"11",cy:"11",r:"7"},null,-1)),n[5]||(n[5]=e.createElementVNode("path",{d:"m20 20-3.5-3.5"},null,-1))],64)):l.name==="eye"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[n[6]||(n[6]=e.createElementVNode("path",{d:"M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z"},null,-1)),n[7]||(n[7]=e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"},null,-1))],64)):l.name==="eye-off"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[n[8]||(n[8]=e.createElementVNode("path",{d:"M3 3l18 18"},null,-1)),n[9]||(n[9]=e.createElementVNode("path",{d:"M10.6 10.6a3 3 0 0 0 4.2 4.2"},null,-1)),n[10]||(n[10]=e.createElementVNode("path",{d:"M9.9 5.3A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a17.2 17.2 0 0 1-3.2 4.2"},null,-1)),n[11]||(n[11]=e.createElementVNode("path",{d:"M6.6 6.6C3.6 8.6 2 12 2 12s3.5 7 10 7c1 0 1.9-.2 2.8-.5"},null,-1))],64)):l.name==="loading"?(e.openBlock(),e.createElementBlock("path",go)):l.name==="arrow-left"?(e.openBlock(),e.createElementBlock("path",bo)):l.name==="arrow-right"?(e.openBlock(),e.createElementBlock("path",vo)):e.createCommentVNode("",!0)])):e.renderSlot(l.$slots,"default",{key:1})],6))}}),w=V(ko),ee=["success","warning","info","danger"],te=["light","dark"],oe={title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info",validator:o=>ee.includes(o)},effect:{type:String,default:"light",validator:o=>te.includes(o)},closable:{type:Boolean,default:!0},showIcon:Boolean},le={close:()=>!0},yo={key:0,class:"jh-alert__icon","aria-hidden":"true"},_o={class:"jh-alert__content"},Bo={key:0,class:"jh-alert__title"},Co={key:1,class:"jh-alert__description"},Eo=e.defineComponent({name:"JhAlert",__name:"alert",props:oe,emits:le,setup(o,{emit:a}){const t=a,l=e.ref(!0),n=()=>{l.value=!1,t("close")};return(r,i)=>l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["jh-alert",[`jh-alert--${r.type}`,`jh-alert--${r.effect}`]]),role:"alert"},[r.showIcon?(e.openBlock(),e.createElementBlock("span",yo)):e.createCommentVNode("",!0),e.createElementVNode("div",_o,[r.title||r.$slots.title?(e.openBlock(),e.createElementBlock("div",Bo,[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(r.title),1)])])):e.createCommentVNode("",!0),r.description||r.$slots.default?(e.openBlock(),e.createElementBlock("div",Co,[e.renderSlot(r.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.description),1)])])):e.createCommentVNode("",!0)]),r.closable?(e.openBlock(),e.createElementBlock("button",{key:1,class:"jh-alert__close",type:"button","aria-label":"Close alert",onClick:n},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),ne=V(Eo),ae={target:{type:String,default:""},visibilityHeight:{type:Number,default:200},right:{type:Number,default:40},bottom:{type:Number,default:40}},se={click:o=>!!o.target},So=e.defineComponent({name:"JhBacktop",__name:"backtop",props:ae,emits:se,setup(o,{expose:a,emit:t}){const l=o,n=t,r=e.ref(!1),i=e.ref(),m=e.computed(()=>({right:`${l.right}px`,bottom:`${l.bottom}px`})),s=()=>{const b=i.value;return b?typeof window<"u"&&b===window?window.scrollY||document.documentElement.scrollTop:b.scrollTop:0},c=()=>{r.value=s()>=l.visibilityHeight},p=()=>l.target&&document.querySelector(l.target)||window,u=()=>{typeof window>"u"||(i.value=p(),i.value.addEventListener("scroll",c),c())},f=()=>{var b;(b=i.value)==null||b.removeEventListener("scroll",c)},g=()=>{const b=i.value;b&&(typeof window<"u"&&b===window?window.scrollTo({top:0,behavior:"smooth"}):b.scrollTo({top:0,behavior:"smooth"}),n("click",{target:b}))};return e.onMounted(()=>{e.nextTick(u)}),e.onBeforeUnmount(()=>{f()}),a({handleScroll:c}),(b,C)=>(e.openBlock(),e.createBlock(e.Transition,{name:"jh-backtop-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("button",{class:"jh-backtop",type:"button",style:e.normalizeStyle(m.value),"aria-label":"Back to top",onClick:g},[e.renderSlot(b.$slots,"default",{},()=>[e.createVNode(e.unref(w),{name:"arrow-left"})])],4),[[e.vShow,r.value]])]),_:3}))}}),re=V(So),ie=["primary","success","warning","danger","info"],ce={value:{type:[String,Number],default:""},max:{type:Number,default:0},type:{type:String,default:"danger",validator:o=>ie.includes(o)},color:{type:String,default:""},hidden:Boolean,isDot:Boolean},Vo={class:"jh-badge"},wo=e.defineComponent({name:"JhBadge",__name:"badge",props:ce,setup(o){const a=o,t=e.computed(()=>a.isDot?"":typeof a.value=="number"&&a.max>0&&a.value>a.max?`${a.max}+`:a.value),l=e.computed(()=>a.color?{backgroundColor:a.color}:void 0);return(n,r)=>(e.openBlock(),e.createElementBlock("span",Vo,[e.renderSlot(n.$slots,"default"),!n.hidden&&(n.isDot||t.value!=="")?(e.openBlock(),e.createElementBlock("sup",{key:0,class:e.normalizeClass(["jh-badge__content",[`jh-badge__content--${n.type}`,{"is-dot":n.isDot,"is-custom-color":n.color}]]),style:e.normalizeStyle(l.value)},[n.isDot?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.value),1)],64))],6)):e.createCommentVNode("",!0)]))}}),de=V(wo),ue=["default","primary","success","warning","danger","info"],me=["small","default","large"],pe=["button","submit","reset"],he={type:{type:String,default:"default",validator:o=>ue.includes(o)},size:{type:String,default:"default",validator:o=>me.includes(o)},disabled:Boolean,loading:Boolean,plain:Boolean,round:Boolean,circle:Boolean,icon:String,nativeType:{type:String,default:"button",validator:o=>pe.includes(o)}},fe={click:o=>o instanceof MouseEvent},No=["type","disabled","aria-disabled"],$o={key:2,class:"jh-button__content"},jo=e.defineComponent({name:"JhButton",__name:"button",props:he,emits:fe,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>[`jh-button--${t.type}`,t.size!=="default"?`jh-button--${t.size}`:"",{"is-disabled":t.disabled,"is-loading":t.loading,"is-plain":t.plain,"is-round":t.round,"is-circle":t.circle}]),r=i=>{t.disabled||t.loading||l("click",i)};return(i,m)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(["jh-button",n.value]),type:i.nativeType,disabled:i.disabled||i.loading,"aria-disabled":i.disabled||i.loading,onClick:r},[i.loading?(e.openBlock(),e.createBlock(e.unref(w),{key:0,class:"jh-button__loading",name:"loading"})):i.icon?(e.openBlock(),e.createBlock(e.unref(w),{key:1,class:"jh-button__icon",name:i.icon},null,8,["name"])):e.createCommentVNode("",!0),i.$slots.default?(e.openBlock(),e.createElementBlock("span",$o,[e.renderSlot(i.$slots,"default")])):e.createCommentVNode("",!0)],10,No))}}),R=V(jo),ge={modelValue:{type:Array,default:()=>[]},options:{type:Array,default:()=>[]},placeholder:{type:String,default:"Please select"},disabled:Boolean,clearable:Boolean,separator:{type:String,default:" / "},fieldNames:{type:Object,default:()=>({})}},be={"update:modelValue":o=>!0,change:(o,a)=>!0,"visible-change":o=>!0,clear:()=>!0},Po=["disabled","aria-expanded"],To={key:0,class:"jh-cascader__panel"},zo=["disabled","onClick"],Jo=e.defineComponent({name:"JhCascader",__name:"cascader",props:ge,emits:be,setup(o,{emit:a}){const t=o,l=a,n=e.ref(!1),r=e.ref([]),i=e.ref(),m=e.computed(()=>({"is-disabled":t.disabled,"is-visible":n.value})),s=e.computed(()=>t.fieldNames.label||"label"),c=e.computed(()=>t.fieldNames.value||"value"),p=e.computed(()=>t.fieldNames.children||"children"),u=e.computed(()=>t.fieldNames.disabled||"disabled"),f=B=>String(B[s.value]??""),g=B=>B[c.value],b=B=>B[p.value]||[],C=B=>!!B[u.value],h=B=>b(B).length>0,y=B=>{const $=[];let J=t.options;for(const M of B){const D=J.find(K=>g(K)===M);if(!D)break;$.push(D),J=b(D)}return $},k=e.computed(()=>y(t.modelValue)),N=e.computed(()=>k.value.length?k.value.map(B=>f(B)).join(t.separator):""),d=e.computed(()=>{const B=[];let $=t.options;B.push($);for(const J of r.value){const M=$.find(K=>g(K)===J);if(!M)break;const D=b(M);if(!D.length)break;B.push(D),$=D}return B.filter(J=>J.length)}),_=e.computed(()=>t.clearable&&!t.disabled&&t.modelValue.length>0),v=B=>{t.disabled||n.value!==B&&(n.value=B,l("visible-change",B))},j=()=>{v(!n.value)},E=()=>{v(!1)},z=(B,$)=>r.value[$]===g(B),S=(B,$)=>{if(C(B))return;const J=r.value.slice(0,$);if(J.push(g(B)),r.value=J,h(B))return;const M=y(J);l("update:modelValue",[...J]),l("change",[...J],M),E()},P=()=>{r.value=[],l("update:modelValue",[]),l("change",[],[]),l("clear"),E()},T=B=>{var $;n.value&&(($=i.value)!=null&&$.contains(B.target)||E())};return e.watch(()=>n.value,B=>{B?(r.value=[...t.modelValue],document.addEventListener("click",T)):document.removeEventListener("click",T)}),e.watch(()=>t.modelValue,B=>{r.value=[...B]},{immediate:!0}),e.onBeforeUnmount(()=>{document.removeEventListener("click",T)}),(B,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"cascaderRef",ref:i,class:e.normalizeClass(["jh-cascader",m.value])},[e.createElementVNode("button",{class:"jh-cascader__trigger",type:"button",disabled:B.disabled,"aria-expanded":n.value,onClick:j},[e.createElementVNode("span",{class:e.normalizeClass(["jh-cascader__label",{"is-placeholder":!N.value}])},e.toDisplayString(N.value||B.placeholder),3),_.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-cascader__clear",type:"button","aria-label":"Clear cascader",onClick:e.withModifiers(P,["stop"])},[e.createVNode(e.unref(w),{name:"close"})])):(e.openBlock(),e.createBlock(e.unref(w),{key:1,class:"jh-cascader__arrow",name:"arrow-right"}))],8,Po),e.createVNode(e.Transition,{name:"jh-cascader-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",To,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(J,M)=>(e.openBlock(),e.createElementBlock("ul",{key:M,class:"jh-cascader__menu"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(J,D=>(e.openBlock(),e.createElementBlock("li",{key:String(g(D)),class:"jh-cascader__menu-item"},[e.createElementVNode("button",{class:e.normalizeClass(["jh-cascader__option",{"is-active":z(D,M),"is-disabled":C(D)}]),type:"button",disabled:C(D),onClick:K=>S(D,M)},[e.createElementVNode("span",null,e.toDisplayString(f(D)),1),h(D)?(e.openBlock(),e.createBlock(e.unref(w),{key:0,name:"arrow-right",class:"jh-cascader__option-arrow"})):e.createCommentVNode("",!0)],10,zo)]))),128))]))),128))])):e.createCommentVNode("",!0)]),_:1})],2))}}),ve=V(Jo),U=Symbol("carouselContextKey"),ke=["always","hover","never"],ye={modelValue:{type:Number,default:void 0},height:{type:String,default:"200px"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},loop:{type:Boolean,default:!0},arrow:{type:String,default:"hover",validator:o=>ke.includes(o)},indicator:{type:Boolean,default:!0}},_e={"update:modelValue":o=>Number.isInteger(o),change:(o,a)=>Number.isInteger(o)&&Number.isInteger(a)},Be={name:{type:String,default:""}},Do={key:0,class:"jh-carousel__indicators"},Mo=["aria-label","onClick"],Ao=e.defineComponent({name:"JhCarousel",__name:"carousel",props:ye,emits:_e,setup(o,{emit:a}){const t=o,l=a,n=e.ref([]),r=e.ref(t.modelValue??0),i=e.computed(()=>{var k;return(k=n.value[s.value])==null?void 0:k.uid});let m;const s=e.computed(()=>n.value.length===0?0:Math.min(Math.max(r.value,0),n.value.length-1)),c=(k,N)=>{r.value=k,l("update:modelValue",k),k!==N&&l("change",k,N)},p=k=>{if(n.value.length===0)return;const N=s.value,d=n.value.length-1;let _=k;_<0&&(_=t.loop?d:0),_>d&&(_=t.loop?0:d),c(_,N)},u=()=>p(s.value-1),f=()=>p(s.value+1),g=()=>{m&&(window.clearInterval(m),m=void 0)},b=()=>{g(),!(!t.autoplay||t.interval<=0||n.value.length<=1)&&(m=window.setInterval(f,t.interval))},C=()=>g(),h=k=>{n.value.push(k),b()},y=k=>{n.value=n.value.filter(N=>N.uid!==k.uid),r.value>n.value.length-1&&(r.value=Math.max(n.value.length-1,0)),b()};return e.provide(U,{activeUid:i,registerItem:h,unregisterItem:y}),e.watch(()=>t.modelValue,k=>{typeof k=="number"&&(r.value=k)}),e.watch(()=>[t.autoplay,t.interval,n.value.length],()=>b()),e.onBeforeUnmount(()=>{g()}),(k,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-carousel",[`jh-carousel--arrow-${k.arrow}`]]),onMouseenter:C,onMouseleave:b},[e.createElementVNode("div",{class:"jh-carousel__container",style:e.normalizeStyle({height:k.height})},[e.renderSlot(k.$slots,"default"),k.arrow!=="never"&&n.value.length>1?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-carousel__arrow jh-carousel__arrow--left",type:"button","aria-label":"Previous",onClick:u},[e.createVNode(e.unref(w),{name:"arrow-left"})])):e.createCommentVNode("",!0),k.arrow!=="never"&&n.value.length>1?(e.openBlock(),e.createElementBlock("button",{key:1,class:"jh-carousel__arrow jh-carousel__arrow--right",type:"button","aria-label":"Next",onClick:f},[e.createVNode(e.unref(w),{name:"arrow-right"})])):e.createCommentVNode("",!0)],4),k.indicator&&n.value.length>1?(e.openBlock(),e.createElementBlock("div",Do,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(d,_)=>(e.openBlock(),e.createElementBlock("button",{key:_,class:e.normalizeClass(["jh-carousel__indicator",{"is-active":_===s.value}]),type:"button","aria-label":`Go to slide ${_+1}`,onClick:v=>p(_)},null,10,Mo))),128))])):e.createCommentVNode("",!0)],34))}}),Fo=e.defineComponent({name:"JhCarouselItem",__name:"carousel-item",props:Be,setup(o){const a=e.inject(U,void 0),t=Symbol("carouselItem"),l=e.computed(()=>(a==null?void 0:a.activeUid.value)===t),n={uid:t};return e.onMounted(()=>{a==null||a.registerItem(n)}),e.onBeforeUnmount(()=>{a==null||a.unregisterItem(n)}),(r,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-carousel__item",{"is-active":l.value}])},[e.renderSlot(r.$slots,"default")],2)),[[e.vShow,l.value]])}}),Ce=V(Ao),Ee=V(Fo),Se={modelValue:{type:[Boolean,Array],default:!1},value:{type:[String,Number,Boolean],default:!0},label:String,disabled:Boolean},Ve={modelValue:{type:Array,default:()=>[]},disabled:Boolean},we={"update:modelValue":o=>!0,change:o=>!0},Ne={"update:modelValue":o=>!0,change:o=>!0},q=Symbol("JhCheckboxGroup"),Io={class:"jh-checkbox__input"},xo=["checked","disabled"],Lo={key:0,class:"jh-checkbox__label"},Ko=e.defineComponent({name:"JhCheckbox",__name:"checkbox",props:Se,emits:we,setup(o,{emit:a}){const t=o,l=a,n=e.inject(q,void 0),r=e.computed(()=>t.disabled||!!(n!=null&&n.disabled())),i=e.computed(()=>n?n.modelValue().includes(t.value):Array.isArray(t.modelValue)?t.modelValue.includes(t.value):!!t.modelValue),m=s=>{const c=s.target.checked;if(n){n.changeValue(t.value,c);return}if(Array.isArray(t.modelValue)){const p=c?[...t.modelValue,t.value]:t.modelValue.filter(u=>u!==t.value);l("update:modelValue",p),l("change",p);return}l("update:modelValue",c),l("change",c)};return(s,c)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["jh-checkbox",{"is-checked":i.value,"is-disabled":r.value}])},[e.createElementVNode("span",Io,[e.createElementVNode("input",{class:"jh-checkbox__original",type:"checkbox",checked:i.value,disabled:r.value,onChange:m},null,40,xo),c[0]||(c[0]=e.createElementVNode("span",{class:"jh-checkbox__inner"},null,-1))]),s.$slots.default||s.label?(e.openBlock(),e.createElementBlock("span",Lo,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(s.label),1)])])):e.createCommentVNode("",!0)],2))}}),Ro=e.defineComponent({name:"JhCheckboxGroup",__name:"checkbox-group",props:Ve,emits:Ne,setup(o,{emit:a}){const t=o,l=a,n=(r,i)=>{const m=i?[...t.modelValue,r]:t.modelValue.filter(s=>s!==r);l("update:modelValue",m),l("change",m)};return e.provide(q,{modelValue:()=>t.modelValue,disabled:()=>t.disabled,changeValue:n}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-checkbox-group",{"is-disabled":r.disabled}]),role:"group"},[e.renderSlot(r.$slots,"default")],2))}}),$e=V(Ko),je=V(Ro),G=Symbol("collapseContextKey"),Pe={modelValue:{type:[String,Number,Array],default:()=>[]},accordion:Boolean},Te={"update:modelValue":o=>typeof o=="string"||typeof o=="number"||Array.isArray(o),change:o=>typeof o=="string"||typeof o=="number"||Array.isArray(o)},ze={name:{type:[String,Number],required:!0},title:{type:String,default:""},disabled:Boolean},Oo={class:"jh-collapse"},Ho=e.defineComponent({name:"JhCollapse",__name:"collapse",props:Pe,emits:Te,setup(o,{emit:a}){const t=o,l=a,n=()=>Array.isArray(t.modelValue)?t.modelValue:[t.modelValue],r=m=>n().includes(m),i=m=>{if(t.accordion){const p=r(m)?"":m;l("update:modelValue",p),l("change",p);return}const s=n().filter(p=>p!==""),c=r(m)?s.filter(p=>p!==m):[...s,m];l("update:modelValue",c),l("change",c)};return e.provide(G,{isActive:r,toggle:i}),(m,s)=>(e.openBlock(),e.createElementBlock("div",Oo,[e.renderSlot(m.$slots,"default")]))}}),Uo=["disabled"],qo={class:"jh-collapse-item__wrap"},Go={class:"jh-collapse-item__content"},Wo=e.defineComponent({name:"JhCollapseItem",__name:"collapse-item",props:ze,setup(o){const a=o,t=e.inject(G,void 0),l=e.computed(()=>(t==null?void 0:t.isActive(a.name))??!1),n=()=>{a.disabled||t==null||t.toggle(a.name)};return(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-collapse-item",{"is-active":l.value,"is-disabled":r.disabled}])},[e.createElementVNode("button",{class:"jh-collapse-item__header",type:"button",disabled:r.disabled,onClick:n},[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(r.title),1)]),e.createVNode(e.unref(w),{class:"jh-collapse-item__arrow",name:"arrow-right"})],8,Uo),e.withDirectives(e.createElementVNode("div",qo,[e.createElementVNode("div",Go,[e.renderSlot(r.$slots,"default")])],512),[[e.vShow,l.value]])],2))}}),Je=V(Ho),De=V(Wo),Me={modelValue:{type:String,default:""},placeholder:String,disabled:Boolean,clearable:Boolean},Ae={"update:modelValue":o=>!0,change:o=>!0,clear:()=>!0},Yo=["value","placeholder","disabled"],Zo=e.defineComponent({name:"JhDatePicker",__name:"date-picker",props:Me,emits:Ae,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>t.clearable&&!t.disabled&&!!t.modelValue),r=s=>{l("update:modelValue",s.target.value)},i=s=>{l("change",s.target.value)},m=()=>{l("update:modelValue",""),l("change",""),l("clear")};return(s,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-date-picker",{"is-disabled":s.disabled}])},[e.createElementVNode("input",{class:"jh-date-picker__inner",type:"date",value:s.modelValue,placeholder:s.placeholder,disabled:s.disabled,onInput:r,onChange:i},null,40,Yo),n.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-date-picker__clear",type:"button",onClick:m},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)],2))}}),Fe=V(Zo),Ie={modelValue:{type:String,default:""},placeholder:String,disabled:Boolean,clearable:Boolean},xe={"update:modelValue":o=>!0,change:o=>!0,clear:()=>!0},Qo=["value","placeholder","disabled"],Xo=e.defineComponent({name:"JhDateTimePicker",__name:"date-time-picker",props:Ie,emits:xe,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>t.clearable&&!t.disabled&&!!t.modelValue),r=s=>{l("update:modelValue",s.target.value)},i=s=>{l("change",s.target.value)},m=()=>{l("update:modelValue",""),l("change",""),l("clear")};return(s,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-date-picker",{"is-disabled":s.disabled}])},[e.createElementVNode("input",{class:"jh-date-picker__inner",type:"datetime-local",value:s.modelValue,placeholder:s.placeholder,disabled:s.disabled,onInput:r,onChange:i},null,40,Qo),n.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-date-picker__clear",type:"button",onClick:m},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)],2))}}),Le=V(Xo),Ke={modelValue:Boolean,title:String,width:{type:String,default:"50%"},closeOnClickModal:{type:Boolean,default:!0},beforeClose:Function},Re={"update:modelValue":o=>!0,open:()=>!0,close:()=>!0,closed:()=>!0},el=["aria-label"],tl={class:"jh-dialog__header"},ol={class:"jh-dialog__title"},ll={class:"jh-dialog__body"},nl={key:0,class:"jh-dialog__footer"},al=e.defineComponent({name:"JhDialog",__name:"dialog",props:Ke,emits:Re,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>({width:t.width})),r=()=>{l("update:modelValue",!1),l("close")},i=()=>{if(t.beforeClose){t.beforeClose(r);return}r()},m=()=>{t.closeOnClickModal&&i()};return e.watch(()=>t.modelValue,s=>{s&&l("open")}),(s,c)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"jh-dialog-fade",onAfterLeave:c[1]||(c[1]=p=>l("closed"))},{default:e.withCtx(()=>[s.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:"jh-overlay",onClick:m},[e.createElementVNode("div",{class:"jh-dialog",role:"dialog","aria-modal":"true","aria-label":s.title||"Dialog",style:e.normalizeStyle(n.value),onClick:c[0]||(c[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("header",tl,[e.renderSlot(s.$slots,"header",{},()=>[e.createElementVNode("span",ol,e.toDisplayString(s.title),1)]),e.createElementVNode("button",{class:"jh-dialog__close",type:"button","aria-label":"Close dialog",onClick:i}," x ")]),e.createElementVNode("section",ll,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("footer",nl,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("",!0)],12,el)])):e.createCommentVNode("",!0)]),_:3})]))}}),Oe=V(al),He=["rtl","ltr","ttb","btt"],Ue={modelValue:Boolean,title:{type:String,default:""},size:{type:String,default:"30%"},direction:{type:String,default:"rtl",validator:o=>He.includes(o)},closeOnClickModal:{type:Boolean,default:!0},beforeClose:{type:Function,default:void 0}},qe={"update:modelValue":o=>!0,open:()=>!0,close:()=>!0,closed:()=>!0},sl=["aria-label"],rl={class:"jh-drawer__header"},il={class:"jh-drawer__title"},cl={class:"jh-drawer__body"},dl={key:0,class:"jh-drawer__footer"},ul=e.defineComponent({name:"JhDrawer",__name:"drawer",props:Ue,emits:qe,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>t.direction==="ttb"||t.direction==="btt"?{height:t.size}:{width:t.size}),r=()=>{l("update:modelValue",!1),l("close")},i=()=>{if(t.beforeClose){t.beforeClose(r);return}r()},m=()=>{t.closeOnClickModal&&i()};return e.watch(()=>t.modelValue,s=>{s&&l("open")}),(s,c)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"jh-drawer-fade",onAfterLeave:c[1]||(c[1]=p=>l("closed"))},{default:e.withCtx(()=>[s.modelValue?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["jh-drawer-overlay",`jh-drawer-overlay--${s.direction}`]),onClick:m},[e.createElementVNode("aside",{class:e.normalizeClass(["jh-drawer",`jh-drawer--${s.direction}`]),role:"dialog","aria-modal":"true","aria-label":s.title||"Drawer",style:e.normalizeStyle(n.value),onClick:c[0]||(c[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("header",rl,[e.renderSlot(s.$slots,"header",{},()=>[e.createElementVNode("span",il,e.toDisplayString(s.title),1)]),e.createElementVNode("button",{class:"jh-drawer__close",type:"button","aria-label":"Close drawer",onClick:i},[e.createVNode(e.unref(w),{name:"close"})])]),e.createElementVNode("section",cl,[e.renderSlot(s.$slots,"default")]),s.$slots.footer?(e.openBlock(),e.createElementBlock("footer",dl,[e.renderSlot(s.$slots,"footer")])):e.createCommentVNode("",!0)],14,sl)],2)):e.createCommentVNode("",!0)]),_:3})]))}}),Ge=V(ul),We=["click","hover"],Ye=["bottom-start","bottom-end"],Ze={options:{type:Array,default:()=>[]},trigger:{type:String,default:"click",validator:o=>We.includes(o)},placement:{type:String,default:"bottom-start",validator:o=>Ye.includes(o)},disabled:Boolean,hideOnClick:{type:Boolean,default:!0}},Qe={command:(o,a)=>!0,"visible-change":o=>!0},ml=["disabled","aria-expanded"],pl=["aria-expanded"],hl={key:0,class:"jh-dropdown__menu",role:"menu"},fl=["disabled","onClick"],gl=e.defineComponent({name:"JhDropdown",__name:"dropdown",props:Ze,emits:Qe,setup(o,{emit:a}){const t=o,l=a,n=e.ref(!1),r=e.ref(),i=e.computed(()=>({"is-disabled":t.disabled,"is-visible":n.value,[`jh-dropdown--${t.placement}`]:!0})),m=C=>{t.disabled||n.value!==C&&(n.value=C,l("visible-change",C))},s=()=>m(!1),c=()=>m(!n.value),p=()=>{t.trigger==="click"&&c()},u=()=>{t.trigger==="hover"&&m(!0)},f=()=>{t.trigger==="hover"&&s()},g=C=>{C.disabled||(l("command",C.command,C),t.hideOnClick&&s())},b=C=>{var h;n.value&&((h=r.value)!=null&&h.contains(C.target)||s())};return e.watch(()=>n.value,C=>{t.trigger==="click"&&(C?document.addEventListener("click",b):document.removeEventListener("click",b))}),e.onBeforeUnmount(()=>{document.removeEventListener("click",b)}),(C,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:r,class:e.normalizeClass(["jh-dropdown",i.value]),onMouseenter:u,onMouseleave:f},[C.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:1,class:"jh-dropdown__trigger","aria-expanded":n.value,"aria-haspopup":"menu",onClick:p},[e.renderSlot(C.$slots,"default")],8,pl)):(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-dropdown__trigger",type:"button",disabled:C.disabled,"aria-expanded":n.value,"aria-haspopup":"menu",onClick:p},[h[0]||(h[0]=e.createTextVNode(" Dropdown ",-1)),e.createVNode(e.unref(w),{name:"arrow-right",class:"jh-dropdown__arrow"})],8,ml)),e.createVNode(e.Transition,{name:"jh-dropdown-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",hl,[e.renderSlot(C.$slots,"dropdown",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.options,y=>(e.openBlock(),e.createElementBlock("button",{key:y.command,class:e.normalizeClass(["jh-dropdown__item",{"is-disabled":y.disabled,"is-divided":y.divided}]),type:"button",role:"menuitem",disabled:y.disabled,onClick:k=>g(y)},e.toDisplayString(y.label),11,fl))),128))])])):e.createCommentVNode("",!0)]),_:3})],34))}}),Xe=V(gl),et={model:{type:Object,default:()=>({})},rules:{type:Object,default:()=>({})},labelWidth:{type:String,default:"100px"}},tt={label:String,prop:String,rules:[Object,Array],required:Boolean},W=Symbol("JhForm"),bl=e.defineComponent({name:"JhForm",__name:"form",props:et,setup(o,{expose:a}){const t=o,l=e.ref([]),n=s=>{l.value.push(s)},r=s=>{l.value=l.value.filter(c=>c!==s)},i=async()=>(await Promise.all(l.value.map(c=>c.validate()))).every(Boolean),m=()=>{l.value.forEach(s=>s.resetField())};return e.provide(W,{model:t.model,rules:t.rules,registerItem:n,unregisterItem:r}),a({validate:i,resetFields:m}),(s,c)=>(e.openBlock(),e.createElementBlock("form",{class:"jh-form",style:e.normalizeStyle({"--jh-form-label-width":s.labelWidth}),onSubmit:c[0]||(c[0]=e.withModifiers(()=>{},["prevent"]))},[e.renderSlot(s.$slots,"default")],36))}}),vl={key:0,class:"jh-form-item__label"},kl={class:"jh-form-item__content"},yl={key:0,class:"jh-form-item__error"},_l=e.defineComponent({name:"JhFormItem",__name:"form-item",props:tt,setup(o,{expose:a}){const t=o,l=e.inject(W,void 0),n=e.ref(""),r=e.computed(()=>{const u=t.prop?l==null?void 0:l.rules[t.prop]:void 0,f=t.rules||u||[];return Array.isArray(f)?f:[f]}),i=e.computed(()=>t.required||r.value.some(u=>u.required)),m=()=>t.prop?l==null?void 0:l.model[t.prop]:void 0,s=async()=>{n.value="";for(const u of r.value){const f=m();if((t.required||u.required)&&(f===""||f===void 0||f===null))return n.value=u.message||`${t.label||t.prop||"Field"} is required`,!1;if(u.validator){const g=await u.validator(f,(l==null?void 0:l.model)||{});if(g!==!0)return n.value=typeof g=="string"?g:u.message||"Validation failed",!1}}return!0},c=()=>{t.prop&&(l!=null&&l.model)&&(l.model[t.prop]=""),n.value=""},p={prop:t.prop,validate:s,resetField:c};return e.onMounted(()=>{l==null||l.registerItem(p)}),e.onBeforeUnmount(()=>{l==null||l.unregisterItem(p)}),a({validate:s,resetField:c}),(u,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-form-item",{"is-error":!!n.value,"is-required":i.value}])},[u.label?(e.openBlock(),e.createElementBlock("label",vl,e.toDisplayString(u.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",kl,[e.renderSlot(u.$slots,"default"),n.value?(e.openBlock(),e.createElementBlock("div",yl,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)])],2))}}),ot=V(bl),lt=V(_l),nt={height:{type:String,default:"240px"},distance:{type:Number,default:0},delay:{type:Number,default:200},disabled:Boolean,loading:Boolean,immediate:Boolean},at={load:o=>Number.isFinite(o.scrollTop)&&Number.isFinite(o.clientHeight)&&Number.isFinite(o.scrollHeight)},Bl={key:0,class:"jh-infinite-scroll__loading"},Cl=e.defineComponent({name:"JhInfiniteScroll",__name:"infinite-scroll",props:nt,emits:at,setup(o,{expose:a,emit:t}){const l=o,n=t,r=e.ref();let i;const m=()=>{i&&(window.clearTimeout(i),i=void 0)},s=f=>f.scrollHeight-f.scrollTop-f.clientHeight<=l.distance,c=f=>{l.disabled||l.loading||n("load",{scrollTop:f.scrollTop,clientHeight:f.clientHeight,scrollHeight:f.scrollHeight})},p=()=>{const f=r.value;!f||!s(f)||c(f)},u=()=>{m(),i=window.setTimeout(p,l.delay)};return e.onMounted(()=>{l.immediate&&e.nextTick(p)}),a({check:p}),(f,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:r,class:e.normalizeClass(["jh-infinite-scroll",{"is-disabled":f.disabled,"is-loading":f.loading}]),style:e.normalizeStyle({height:f.height}),onScroll:u},[e.renderSlot(f.$slots,"default"),f.$slots.loading||f.loading?(e.openBlock(),e.createElementBlock("div",Bl,[e.renderSlot(f.$slots,"loading",{},()=>[g[0]||(g[0]=e.createTextVNode("Loading...",-1))])])):e.createCommentVNode("",!0)],38))}}),st=V(Cl),rt={modelValue:{type:[String,Number],default:""},placeholder:String,disabled:Boolean,clearable:Boolean,password:Boolean,prefixIcon:String,suffixIcon:String,name:String,autocomplete:String},it={"update:modelValue":o=>!0,input:o=>!0,change:o=>!0,clear:()=>!0,focus:o=>o instanceof FocusEvent,blur:o=>o instanceof FocusEvent},El={key:0,class:"jh-input__prefix"},Sl=["value","type","name","placeholder","disabled","autocomplete"],Vl={key:1,class:"jh-input__suffix"},wl=["disabled"],Nl=["disabled","aria-label"],$l=e.defineComponent({name:"JhInput",__name:"input",props:rt,emits:it,setup(o,{emit:a}){const t=o,l=a,n=e.ref(),r=e.ref(!1),i=e.ref(!1),m=e.useSlots(),s=e.computed(()=>t.password&&!r.value?"password":"text"),c=e.computed(()=>t.modelValue!==""&&t.modelValue!==void 0),p=e.computed(()=>t.clearable&&!t.disabled&&c.value),u=e.computed(()=>p.value||t.password||!!t.suffixIcon||!!m.suffix),f=e.computed(()=>({"is-disabled":t.disabled,"is-focus":i.value,"jh-input--prefix":!!m.prefix||!!t.prefixIcon,"jh-input--suffix":u.value})),g=d=>{l("update:modelValue",d),l("input",d)},b=d=>{g(d.target.value)},C=d=>{l("change",d.target.value)},h=()=>{var d;t.disabled||(g(""),l("clear"),(d=n.value)==null||d.focus())},y=()=>{var d;t.disabled||(r.value=!r.value,(d=n.value)==null||d.focus())},k=d=>{i.value=!0,l("focus",d)},N=d=>{i.value=!1,l("blur",d)};return(d,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-input",f.value])},[d.$slots.prefix||d.prefixIcon?(e.openBlock(),e.createElementBlock("span",El,[e.renderSlot(d.$slots,"prefix",{},()=>[d.prefixIcon?(e.openBlock(),e.createBlock(e.unref(w),{key:0,class:"jh-input__icon",name:d.prefixIcon},null,8,["name"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("input",{ref_key:"inputRef",ref:n,class:"jh-input__inner",value:d.modelValue,type:s.value,name:d.name,placeholder:d.placeholder,disabled:d.disabled,autocomplete:d.autocomplete,onInput:b,onChange:C,onFocus:k,onBlur:N},null,40,Sl),u.value?(e.openBlock(),e.createElementBlock("span",Vl,[p.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-input__action",type:"button",disabled:d.disabled,"aria-label":"Clear input",onMousedown:_[0]||(_[0]=e.withModifiers(()=>{},["prevent"])),onClick:h},[e.createVNode(e.unref(w),{name:"close"})],40,wl)):d.password?(e.openBlock(),e.createElementBlock("button",{key:1,class:"jh-input__action",type:"button",disabled:d.disabled,"aria-label":r.value?"Hide password":"Show password",onMousedown:_[1]||(_[1]=e.withModifiers(()=>{},["prevent"])),onClick:y},[e.createVNode(e.unref(w),{name:r.value?"eye-off":"eye"},null,8,["name"])],40,Nl)):e.renderSlot(d.$slots,"suffix",{key:2},()=>[d.suffixIcon?(e.openBlock(),e.createBlock(e.unref(w),{key:0,class:"jh-input__icon",name:d.suffixIcon},null,8,["name"])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)],2))}}),ct=V($l),dt=["default","primary","success","warning","danger","info"],ut={type:{type:String,default:"default",validator:o=>dt.includes(o)},href:String,target:String,disabled:Boolean,underline:{type:Boolean,default:!0},icon:String},mt={click:o=>o instanceof MouseEvent},jl=["href","target","aria-disabled"],Pl={key:1,class:"jh-link__inner"},Tl=e.defineComponent({name:"JhLink",__name:"link",props:ut,emits:mt,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>[`jh-link--${t.type}`,{"is-disabled":t.disabled,"is-underline":t.underline}]),r=i=>{if(t.disabled){i.preventDefault();return}l("click",i)};return(i,m)=>(e.openBlock(),e.createElementBlock("a",{class:e.normalizeClass(["jh-link",n.value]),href:i.disabled?void 0:i.href,target:i.disabled?void 0:i.target,"aria-disabled":i.disabled,onClick:r},[i.icon?(e.openBlock(),e.createBlock(e.unref(w),{key:0,class:"jh-link__icon",name:i.icon},null,8,["name"])):e.createCommentVNode("",!0),i.$slots.default?(e.openBlock(),e.createElementBlock("span",Pl,[e.renderSlot(i.$slots,"default")])):e.createCommentVNode("",!0)],10,jl))}}),pt=V(Tl),ht=["success","warning","info","danger"],ft={id:{type:String,required:!0},message:{type:String,default:""},type:{type:String,default:"info",validator:o=>ht.includes(o)},duration:{type:Number,default:3e3},showClose:Boolean,offset:{type:Number,default:20},zIndex:{type:Number,default:3e3},onClose:Function,onDestroy:Function},zl={class:"jh-message__content"},gt=e.defineComponent({name:"JhMessage",__name:"message",props:ft,setup(o,{expose:a}){const t=o,l=e.ref(!1);let n;const r=e.computed(()=>({top:`${t.offset}px`,zIndex:t.zIndex})),i=()=>{n&&(clearTimeout(n),n=void 0)},m=()=>{var p;l.value&&(l.value=!1,(p=t.onClose)==null||p.call(t))},s=()=>{t.duration<=0||(i(),n=setTimeout(m,t.duration))},c=()=>{var p;(p=t.onDestroy)==null||p.call(t)};return e.onMounted(()=>{l.value=!0,s()}),e.onBeforeUnmount(()=>{i()}),a({close:m}),(p,u)=>(e.openBlock(),e.createBlock(e.Transition,{name:"jh-message-fade",onAfterLeave:c},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["jh-message",`jh-message--${p.type}`]),role:"alert",style:e.normalizeStyle(r.value),onMouseenter:i,onMouseleave:s},[u[0]||(u[0]=e.createElementVNode("span",{class:"jh-message__icon","aria-hidden":"true"},null,-1)),e.createElementVNode("span",zl,[e.renderSlot(p.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(p.message),1)])]),p.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-message__close",type:"button","aria-label":"Close message",onClick:m},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)],38),[[e.vShow,l.value]])]),_:3}))}}),I=[];let Jl=1;const bt=(o={})=>typeof o=="string"?{message:o}:o,Dl=o=>o+I.length*56,vt=(o={})=>{if(typeof document>"u")return{close:()=>{}};const a=bt(o),t=document.createElement("div"),l=`jh-message-${Jl++}`,n=()=>{const m=I.find(s=>s.id===l);m==null||m.close()},r={id:l,message:a.message??"",type:a.type??"info",duration:a.duration??3e3,showClose:a.showClose??!1,offset:Dl(a.offset??20),zIndex:a.zIndex??3e3,onClose:a.onClose,onDestroy:()=>{const m=I.findIndex(s=>s.id===l);m>-1&&I.splice(m,1),e.render(null,t),t.remove()}},i=e.createVNode(gt,r);return e.render(i,t),document.body.appendChild(t),I.push({id:l,close:()=>{var s,c;const m=(s=i.component)==null?void 0:s.exposed;(c=m==null?void 0:m.close)==null||c.call(m)}}),{close:n}},O=o=>(a={})=>vt({...bt(a),type:o}),A=vt;A.success=O("success");A.warning=O("warning");A.info=O("info");A.danger=O("danger");A.closeAll=()=>{[...I].forEach(o=>o.close())};A.install=o=>{o.config.globalProperties.$message=A};const kt=["success","warning","info","danger"],yt={title:{type:String,default:"Message"},message:{type:String,default:""},type:{type:String,default:"info",validator:o=>kt.includes(o)},confirmButtonText:{type:String,default:"OK"},cancelButtonText:{type:String,default:"Cancel"},showCancelButton:Boolean,showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},zIndex:{type:Number,default:3e3},beforeClose:Function,onAction:Function,onDestroy:Function},Ml=["aria-label"],Al={class:"jh-message-box__header"},Fl={class:"jh-message-box__title"},Il={class:"jh-message-box__body"},xl={class:"jh-message-box__message"},Ll={class:"jh-message-box__footer"},_t=e.defineComponent({name:"JhMessageBox",__name:"message-box",props:yt,setup(o,{expose:a}){const t=o,l=e.ref(!1);let n=!1;const r=()=>{l.value=!1},i=c=>{if(n)return;const p=()=>{var u;n=!0,(u=t.onAction)==null||u.call(t,c),r()};if(t.beforeClose){t.beforeClose(c,p);return}p()},m=()=>{t.closeOnClickModal&&i("close")},s=()=>{var c;(c=t.onDestroy)==null||c.call(t)};return e.onMounted(()=>{l.value=!0}),a({close:()=>i("close")}),(c,p)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"jh-message-box-fade",onAfterLeave:s},{default:e.withCtx(()=>[l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"jh-message-box-overlay",style:e.normalizeStyle({zIndex:c.zIndex}),onClick:m},[e.createElementVNode("section",{class:e.normalizeClass(["jh-message-box",`jh-message-box--${c.type}`]),role:"dialog","aria-modal":"true","aria-label":c.title,onClick:p[3]||(p[3]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("header",Al,[e.createElementVNode("div",Fl,e.toDisplayString(c.title),1),c.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-message-box__close",type:"button","aria-label":"Close message box",onClick:p[0]||(p[0]=u=>i("close"))},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Il,[p[4]||(p[4]=e.createElementVNode("span",{class:"jh-message-box__status","aria-hidden":"true"},null,-1)),e.createElementVNode("div",xl,[e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(c.message),1)])])]),e.createElementVNode("footer",Ll,[c.showCancelButton?(e.openBlock(),e.createBlock(e.unref(R),{key:0,onClick:p[1]||(p[1]=u=>i("cancel"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.cancelButtonText),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(R),{type:"primary",onClick:p[2]||(p[2]=u=>i("confirm"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.confirmButtonText),1)]),_:1})])],10,Ml)],4)):e.createCommentVNode("",!0)]),_:3})]))}}),Kl=(o={})=>typeof o=="string"?{message:o}:o,Y=(o={})=>{if(typeof document>"u")return Promise.resolve("close");const a=Kl(o),t=document.createElement("div");return new Promise(l=>{const n={title:a.title??"Message",message:a.message??"",type:a.type??"info",confirmButtonText:a.confirmButtonText??"OK",cancelButtonText:a.cancelButtonText??"Cancel",showCancelButton:a.showCancelButton??!1,showClose:a.showClose??!0,closeOnClickModal:a.closeOnClickModal??!0,zIndex:a.zIndex??3e3,beforeClose:a.beforeClose,onAction:i=>{l(i)},onDestroy:()=>{e.render(null,t),t.remove()}},r=e.createVNode(_t,n);e.render(r,t),document.body.appendChild(t)})},L=Y;L.alert=(o,a="Message",t={})=>Y({...t,title:a,message:o,showCancelButton:!1});L.confirm=(o,a="Message",t={})=>Y({...t,title:a,message:o,showCancelButton:!0});L.install=o=>{o.config.globalProperties.$messageBox=L};const Bt=["success","warning","info","danger"],Ct=["top-right","top-left","bottom-right","bottom-left"],Et={id:{type:String,required:!0},title:{type:String,default:""},message:{type:String,default:""},type:{type:String,default:"info",validator:o=>Bt.includes(o)},duration:{type:Number,default:4500},showClose:{type:Boolean,default:!0},position:{type:String,default:"top-right",validator:o=>Ct.includes(o)},offset:{type:Number,default:20},zIndex:{type:Number,default:3e3},onClose:Function,onDestroy:Function},Rl={class:"jh-notification__content"},Ol={key:0,class:"jh-notification__title"},Hl={key:1,class:"jh-notification__message"},St=e.defineComponent({name:"JhNotification",__name:"notification",props:Et,setup(o,{expose:a}){const t=o,l=e.ref(!1);let n;const r=e.computed(()=>t.position.endsWith("right")),i=e.computed(()=>t.position.startsWith("bottom")),m=e.computed(()=>r.value?"jh-notification-slide-right":"jh-notification-slide-left"),s=e.computed(()=>({zIndex:t.zIndex,[r.value?"right":"left"]:"20px",[i.value?"bottom":"top"]:`${t.offset}px`})),c=()=>{n&&(clearTimeout(n),n=void 0)},p=()=>{var g;l.value&&(l.value=!1,(g=t.onClose)==null||g.call(t))},u=()=>{t.duration<=0||(c(),n=setTimeout(p,t.duration))},f=()=>{var g;(g=t.onDestroy)==null||g.call(t)};return e.onMounted(()=>{l.value=!0,u()}),e.onBeforeUnmount(()=>{c()}),a({close:p}),(g,b)=>(e.openBlock(),e.createBlock(e.Transition,{name:m.value,onAfterLeave:f},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("section",{class:e.normalizeClass(["jh-notification",[`jh-notification--${g.type}`,`jh-notification--${g.position}`]]),role:"alert",style:e.normalizeStyle(s.value),onMouseenter:c,onMouseleave:u},[b[0]||(b[0]=e.createElementVNode("span",{class:"jh-notification__status","aria-hidden":"true"},null,-1)),e.createElementVNode("div",Rl,[g.title?(e.openBlock(),e.createElementBlock("div",Ol,e.toDisplayString(g.title),1)):e.createCommentVNode("",!0),g.message?(e.openBlock(),e.createElementBlock("div",Hl,e.toDisplayString(g.message),1)):e.createCommentVNode("",!0)]),g.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-notification__close",type:"button","aria-label":"Close notification",onClick:p},[e.createVNode(e.unref(w),{name:"close"})])):e.createCommentVNode("",!0)],38),[[e.vShow,l.value]])]),_:1},8,["name"]))}}),x=[];let Ul=1;const Vt=(o={})=>typeof o=="string"?{message:o}:o,ql=(o,a)=>a+x.filter(t=>t.position===o).length*92,wt=(o={})=>{if(typeof document>"u")return{close:()=>{}};const a=Vt(o),t=a.position??"top-right",l=`jh-notification-${Ul++}`,n=document.createElement("div"),r=()=>{var s;(s=x.find(c=>c.id===l))==null||s.close()},i={id:l,title:a.title??"",message:a.message??"",type:a.type??"info",duration:a.duration??4500,showClose:a.showClose??!0,position:t,offset:ql(t,a.offset??20),zIndex:a.zIndex??3e3,onClose:a.onClose,onDestroy:()=>{const s=x.findIndex(c=>c.id===l);s>-1&&x.splice(s,1),e.render(null,n),n.remove()}},m=e.createVNode(St,i);return e.render(m,n),document.body.appendChild(n),x.push({id:l,position:t,close:()=>{var c,p;const s=(c=m.component)==null?void 0:c.exposed;(p=s==null?void 0:s.close)==null||p.call(s)}}),{close:r}},H=o=>(a={})=>wt({...Vt(a),type:o}),F=wt;F.success=H("success");F.warning=H("warning");F.info=H("info");F.danger=H("danger");F.closeAll=()=>{[...x].forEach(o=>o.close())};F.install=o=>{o.config.globalProperties.$notify=F};const Nt={currentPage:{type:Number,default:1},pageSize:{type:Number,default:10},total:{type:Number,default:0},disabled:Boolean},$t={"update:currentPage":o=>!0,"update:pageSize":o=>!0,"page-change":o=>!0},Gl=["disabled"],Wl=["disabled","aria-current","onClick"],Yl=["disabled"],Zl={class:"jh-pagination__total"},Ql=e.defineComponent({name:"JhPagination",__name:"pagination",props:Nt,emits:$t,setup(o,{emit:a}){const t=o,l=a,n=e.computed(()=>Math.max(1,t.pageSize||1)),r=e.computed(()=>Math.max(1,Math.ceil(t.total/n.value))),i=e.computed(()=>s(t.currentPage)),m=e.computed(()=>{const u=r.value,f=i.value,g=7;if(u<=g)return Array.from({length:u},(h,y)=>y+1);let b=Math.max(1,f-3);const C=Math.min(u,b+g-1);return b=Math.max(1,C-g+1),Array.from({length:C-b+1},(h,y)=>b+y)});function s(u){return Number.isFinite(u)?Math.min(Math.max(1,Math.trunc(u)),r.value):1}function c(u,f=n.value){l("update:currentPage",u),l("page-change",{currentPage:u,pageSize:f})}function p(u){if(t.disabled)return;const f=s(u);f!==i.value&&c(f)}return e.watch(()=>t.pageSize,(u,f)=>{const g=Math.max(1,u||1);if(g!==u&&l("update:pageSize",g),f===void 0)return;const b=s(t.currentPage);b!==t.currentPage&&c(b,g)},{immediate:!0}),e.watch(()=>t.currentPage,u=>{const f=s(u);f!==u&&c(f)},{immediate:!0}),(u,f)=>(e.openBlock(),e.createElementBlock("nav",{class:e.normalizeClass(["jh-pagination",{"is-disabled":u.disabled}]),"aria-label":"Pagination"},[e.createElementVNode("button",{class:"jh-pagination__button",type:"button",disabled:u.disabled||i.value<=1,"aria-label":"Previous page",onClick:f[0]||(f[0]=g=>p(i.value-1))},[e.createVNode(e.unref(w),{name:"arrow-left"})],8,Gl),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g,class:e.normalizeClass(["jh-pagination__pager",{"is-active":g===i.value}]),type:"button",disabled:u.disabled,"aria-current":g===i.value?"page":void 0,onClick:b=>p(g)},e.toDisplayString(g),11,Wl))),128)),e.createElementVNode("button",{class:"jh-pagination__button",type:"button",disabled:u.disabled||i.value>=r.value,"aria-label":"Next page",onClick:f[1]||(f[1]=g=>p(i.value+1))},[e.createVNode(e.unref(w),{name:"arrow-right"})],8,Yl),e.createElementVNode("span",Zl,"Total "+e.toDisplayString(u.total),1)],2))}}),jt=V(Ql),Pt={modelValue:[String,Number,Boolean],value:{type:[String,Number,Boolean],required:!0},label:String,disabled:Boolean},Tt={modelValue:[String,Number,Boolean],disabled:Boolean},zt={"update:modelValue":o=>!0,change:o=>!0},Jt={"update:modelValue":o=>!0,change:o=>!0},Z=Symbol("JhRadioGroup"),Xl={class:"jh-radio__input"},en=["checked","disabled"],tn={key:0,class:"jh-radio__label"},on=e.defineComponent({name:"JhRadio",__name:"radio",props:Pt,emits:zt,setup(o,{emit:a}){const t=o,l=a,n=e.inject(Z,void 0),r=e.computed(()=>t.disabled||!!(n!=null&&n.disabled())),i=e.computed(()=>n?n.modelValue()===t.value:t.modelValue===t.value),m=()=>{if(!r.value){if(n){n.changeValue(t.value);return}l("update:modelValue",t.value),l("change",t.value)}};return(s,c)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["jh-radio",{"is-checked":i.value,"is-disabled":r.value}])},[e.createElementVNode("span",Xl,[e.createElementVNode("input",{class:"jh-radio__original",type:"radio",checked:i.value,disabled:r.value,onChange:m},null,40,en),c[0]||(c[0]=e.createElementVNode("span",{class:"jh-radio__inner"},null,-1))]),s.$slots.default||s.label?(e.openBlock(),e.createElementBlock("span",tn,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(s.label),1)])])):e.createCommentVNode("",!0)],2))}}),ln=e.defineComponent({name:"JhRadioGroup",__name:"radio-group",props:Tt,emits:Jt,setup(o,{emit:a}){const t=o,l=a,n=r=>{l("update:modelValue",r),l("change",r)};return e.provide(Z,{modelValue:()=>t.modelValue,disabled:()=>t.disabled,changeValue:n}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-radio-group",{"is-disabled":r.disabled}]),role:"radiogroup"},[e.renderSlot(r.$slots,"default")],2))}}),Dt=V(on),Mt=V(ln),At={height:[String,Number],maxHeight:[String,Number],always:Boolean,native:Boolean,wrapClass:String,viewClass:String},Ft={scroll:o=>!0},nn=e.defineComponent({name:"JhScrollbar",__name:"scrollbar",props:At,emits:Ft,setup(o,{emit:a}){const t=o,l=a,n=e.ref(),r=s=>typeof s=="number"?`${s}px`:s,i=e.computed(()=>({height:r(t.height),maxHeight:r(t.maxHeight)})),m=()=>{n.value&&l("scroll",{scrollTop:n.value.scrollTop,scrollLeft:n.value.scrollLeft})};return(s,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-scrollbar",{"is-always":s.always,"is-native":s.native}])},[e.createElementVNode("div",{ref_key:"wrapRef",ref:n,class:e.normalizeClass(["jh-scrollbar__wrap",s.wrapClass]),style:e.normalizeStyle(i.value),onScroll:m},[e.createElementVNode("div",{class:e.normalizeClass(["jh-scrollbar__view",s.viewClass])},[e.renderSlot(s.$slots,"default")],2)],38)],2))}}),It=V(nn),xt={modelValue:[String,Number],options:{type:Array,default:()=>[]},placeholder:{type:String,default:"Please select"},disabled:Boolean,clearable:Boolean},Lt={"update:modelValue":o=>!0,change:(o,a)=>!0,"visible-change":o=>!0,clear:()=>!0},an=["disabled","aria-expanded"],sn={key:0,class:"jh-select__menu"},rn=["disabled","onClick"],cn=e.defineComponent({name:"JhSelect",__name:"select",props:xt,emits:Lt,setup(o,{emit:a}){const t=o,l=a,n=e.ref(!1),r=e.ref(),i=e.computed(()=>t.options.find(b=>b.value===t.modelValue)),m=e.computed(()=>t.clearable&&!t.disabled&&t.modelValue!==void 0),s=b=>{t.disabled||n.value!==b&&(n.value=b,l("visible-change",b))},c=()=>s(!n.value),p=()=>s(!1),u=b=>{b.disabled||(l("update:modelValue",b.value),l("change",b.value,b),p())},f=()=>{l("update:modelValue",void 0),l("change",void 0),l("clear"),p()},g=b=>{var C;n.value&&((C=r.value)!=null&&C.contains(b.target)||p())};return e.watch(()=>n.value,b=>{b?document.addEventListener("click",g):document.removeEventListener("click",g)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",g)}),(b,C)=>{var h;return e.openBlock(),e.createElementBlock("div",{ref_key:"selectRef",ref:r,class:e.normalizeClass(["jh-select",{"is-disabled":b.disabled,"is-visible":n.value}])},[e.createElementVNode("button",{class:"jh-select__trigger",type:"button",disabled:b.disabled,"aria-expanded":n.value,onClick:c},[e.createElementVNode("span",{class:e.normalizeClass(["jh-select__label",{"is-placeholder":!i.value}])},e.toDisplayString(((h=i.value)==null?void 0:h.label)||b.placeholder),3),m.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-select__clear",type:"button",onClick:e.withModifiers(f,["stop"])},[e.createVNode(e.unref(w),{name:"close"})])):(e.openBlock(),e.createBlock(e.unref(w),{key:1,class:"jh-select__arrow",name:"arrow-right"}))],8,an),e.createVNode(e.Transition,{name:"jh-select-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",sn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.options,y=>(e.openBlock(),e.createElementBlock("button",{key:y.value,class:e.normalizeClass(["jh-select__option",{"is-active":y.value===b.modelValue,"is-disabled":y.disabled}]),type:"button",disabled:y.disabled,onClick:k=>u(y)},e.toDisplayString(y.label),11,rn))),128))])):e.createCommentVNode("",!0)]),_:1})],2)}}}),Kt=V(cn),Rt={data:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},loading:Boolean,border:Boolean,stripe:Boolean,selection:Boolean,rowKey:{type:[String,Function],default:void 0},selectable:Function,emptyText:{type:String,default:"No Data"}},Ot={select:(o,a)=>!0,"select-all":o=>!0,"selection-change":o=>!0},dn={class:"jh-table__wrapper"},un={class:"jh-table__table"},mn={key:0,class:"jh-table__selection-col"},pn={class:"jh-table__header"},hn={key:0,class:"jh-table__cell jh-table__selection-cell"},fn=["checked","aria-checked","disabled"],gn={class:"jh-table__body"},bn={key:0,class:"jh-table__cell jh-table__selection-cell"},vn=["checked","disabled","onChange"],kn={key:2},yn={key:0,class:"jh-table__empty"},_n={key:1,class:"jh-table__loading","aria-live":"polite"},Bn=e.defineComponent({name:"JhTable",__name:"table",props:Rt,emits:Ot,setup(o,{emit:a}){const t=o,l=a,n=e.ref(new Set),r=e.ref(),i=e.computed(()=>({"is-border":t.border,"is-stripe":t.stripe,"is-loading":t.loading,"is-selection":t.selection})),m=(d,_)=>{if(typeof t.rowKey=="function")return t.rowKey(d);if(typeof t.rowKey=="string"){const v=d[t.rowKey];if(typeof v=="string"||typeof v=="number")return v}return _},s=(d,_)=>t.selectable?t.selectable(d,_):!0,c=e.computed(()=>t.data.map((d,_)=>({row:d,index:_,key:m(d,_)})).filter(({row:d,index:_})=>s(d,_))),p=e.computed(()=>t.data.filter((d,_)=>n.value.has(m(d,_)))),u=e.computed(()=>!!c.value.length&&c.value.every(({key:d})=>n.value.has(d))),f=e.computed(()=>c.value.some(({key:d})=>n.value.has(d))&&!u.value);e.watchEffect(()=>{r.value&&(r.value.indeterminate=f.value)}),e.watch(()=>[t.data,t.rowKey],()=>{const d=new Set(t.data.map((_,v)=>m(_,v)));n.value=new Set([...n.value].filter(_=>d.has(_)))},{deep:!0});const g=d=>d.align&&d.align!=="left"?`is-${d.align}`:"",b=d=>d.width?{width:typeof d.width=="number"?`${d.width}px`:d.width}:void 0,C=d=>d==null?"":String(d),h=()=>{l("selection-change",p.value)},y=d=>{const _=t.data.indexOf(d);return n.value.has(m(d,_))},k=(d,_)=>{if(!s(d,_))return;const v=new Set(n.value),j=m(d,_);v.has(j)?v.delete(j):v.add(j),n.value=v,l("select",p.value,d),h()},N=()=>{const d=new Set(n.value);u.value?c.value.forEach(({key:_})=>d.delete(_)):c.value.forEach(({key:_})=>d.add(_)),n.value=d,l("select-all",p.value),h()};return(d,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-table",i.value])},[e.createElementVNode("div",dn,[e.createElementVNode("table",un,[e.createElementVNode("colgroup",null,[d.selection?(e.openBlock(),e.createElementBlock("col",mn)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.columns,v=>(e.openBlock(),e.createElementBlock("col",{key:v.prop,style:e.normalizeStyle(b(v))},null,4))),128))]),e.createElementVNode("thead",pn,[e.createElementVNode("tr",null,[d.selection?(e.openBlock(),e.createElementBlock("th",hn,[e.createElementVNode("input",{ref_key:"selectAllRef",ref:r,class:"jh-table__selection",type:"checkbox","aria-label":"Select all rows",checked:u.value,"aria-checked":f.value?"mixed":u.value,disabled:!c.value.length,onChange:N},null,40,fn)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.columns,v=>(e.openBlock(),e.createElementBlock("th",{key:v.prop,class:e.normalizeClass(["jh-table__cell",g(v)])},e.toDisplayString(v.label),3))),128))])]),e.createElementVNode("tbody",gn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.data,(v,j)=>(e.openBlock(),e.createElementBlock("tr",{key:j,class:"jh-table__row"},[d.selection?(e.openBlock(),e.createElementBlock("td",bn,[e.createElementVNode("input",{class:"jh-table__selection",type:"checkbox","aria-label":"Select row",checked:y(v),disabled:!s(v,j),onChange:E=>k(v,j)},null,40,vn)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.columns,E=>(e.openBlock(),e.createElementBlock("td",{key:E.prop,class:e.normalizeClass(["jh-table__cell",g(E)])},[E.slot&&d.$slots[E.slot]?e.renderSlot(d.$slots,E.slot,{key:0,row:v,column:E,index:j,value:v[E.prop]}):d.$slots.cell?e.renderSlot(d.$slots,"cell",{key:1,row:v,column:E,index:j,value:v[E.prop]}):(e.openBlock(),e.createElementBlock("span",kn,e.toDisplayString(C(v[E.prop])),1))],2))),128))]))),128))])]),!d.data.length&&!d.loading?(e.openBlock(),e.createElementBlock("div",yn,[e.renderSlot(d.$slots,"empty",{},()=>[e.createTextVNode(e.toDisplayString(d.emptyText),1)])])):e.createCommentVNode("",!0),d.loading?(e.openBlock(),e.createElementBlock("div",_n,[..._[0]||(_[0]=[e.createElementVNode("span",{class:"jh-table__spinner","aria-hidden":"true"},null,-1),e.createElementVNode("span",null,"Loading",-1)])])):e.createCommentVNode("",!0)])],2))}}),Ht=V(Bn),Q=Symbol("tabsContextKey"),Ut={modelValue:{type:[String,Number],default:""}},qt={"update:modelValue":o=>typeof o=="string"||typeof o=="number",change:o=>typeof o=="string"||typeof o=="number"},Gt={label:{type:String,default:""},name:{type:[String,Number],required:!0},disabled:Boolean},Cn={class:"jh-tabs"},En={class:"jh-tabs__nav",role:"tablist"},Sn=["disabled","aria-selected","onClick"],Vn={class:"jh-tabs__content"},wn=e.defineComponent({name:"JhTabs",__name:"tabs",props:Ut,emits:qt,setup(o,{emit:a}){const t=o,l=a,n=e.ref([]),r=e.ref(t.modelValue),i=e.computed(()=>{var u;return r.value||((u=n.value[0])==null?void 0:u.name)||""}),m=u=>{r.value=u,l("update:modelValue",u),l("change",u)},s=u=>{u.disabled||u.name!==i.value&&m(u.name)},c=u=>{n.value.push(u),r.value||(r.value=u.name)},p=u=>{n.value=n.value.filter(f=>f.uid!==u.uid)};return e.provide(Q,{activeName:i,registerPane:c,unregisterPane:p}),e.watch(()=>t.modelValue,u=>{r.value=u}),(u,f)=>(e.openBlock(),e.createElementBlock("div",Cn,[e.createElementVNode("div",En,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g.name,class:e.normalizeClass(["jh-tabs__tab",{"is-active":g.name===i.value,"is-disabled":g.disabled}]),type:"button",role:"tab",disabled:g.disabled,"aria-selected":g.name===i.value,onClick:b=>s(g)},e.toDisplayString(g.label),11,Sn))),128))]),e.createElementVNode("div",Vn,[e.renderSlot(u.$slots,"default")])]))}}),Nn={class:"jh-tab-pane",role:"tabpanel"},$n=e.defineComponent({name:"JhTabPane",__name:"tab-pane",props:Gt,setup(o){const a=o,t=e.inject(Q,void 0),l=Symbol("tabPane"),n=e.computed(()=>({uid:l,name:a.name,label:a.label||String(a.name),disabled:a.disabled})),r=e.computed(()=>(t==null?void 0:t.activeName.value)===a.name);return e.onMounted(()=>{t==null||t.registerPane(n.value)}),e.onBeforeUnmount(()=>{t==null||t.unregisterPane(n.value)}),e.watch(()=>[a.label,a.name,a.disabled],()=>{t==null||t.unregisterPane(n.value),t==null||t.registerPane(n.value)}),(i,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",Nn,[e.renderSlot(i.$slots,"default")],512)),[[e.vShow,r.value]])}}),Wt=V(wn),Yt=V($n),Zt=["default","primary","success","warning","danger","info"],Qt=["small","default","large"],Xt={type:{type:String,default:"default",validator:o=>Zt.includes(o)},size:{type:String,default:"default",validator:o=>Qt.includes(o)},tag:{type:String,default:"span"},truncated:Boolean,lineClamp:Number},jn=e.defineComponent({name:"JhText",__name:"text",props:Xt,setup(o){const a=o,t=e.computed(()=>[`jh-text--${a.type}`,a.size!=="default"?`jh-text--${a.size}`:"",{"is-truncated":a.truncated,"is-line-clamp":!!a.lineClamp}]),l=e.computed(()=>a.lineClamp?{"--jh-text-line-clamp":a.lineClamp}:void 0);return(n,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.tag),{class:e.normalizeClass(["jh-text",t.value]),style:e.normalizeStyle(l.value)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["class","style"]))}}),eo=V(jn),to={modelValue:{type:String,default:""},start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},placeholder:{type:String,default:"Select time"},disabled:Boolean,clearable:Boolean},oo={"update:modelValue":o=>typeof o=="string",change:(o,a)=>typeof o=="string"&&(!a||!!a)},Pn=["disabled","aria-expanded"],Tn={key:0,class:"jh-time-select__menu"},zn=["onClick"],Jn={key:0,class:"jh-time-select__empty"},Dn=e.defineComponent({name:"JhTimeSelect",__name:"time-select",props:to,emits:oo,setup(o,{emit:a}){const t=o,l=a,n=e.ref(!1),r=e.ref(),i=h=>{const y=/^(\d{1,2}):(\d{2})$/.exec(h);if(!y)return Number.NaN;const k=Number(y[1]),N=Number(y[2]);return k>23||N>59?Number.NaN:k*60+N},m=h=>{const y=Math.floor(h/60),k=h%60;return`${String(y).padStart(2,"0")}:${String(k).padStart(2,"0")}`},s=e.computed(()=>{const h=i(t.start),y=i(t.end),k=i(t.step);if(!Number.isFinite(h)||!Number.isFinite(y)||!Number.isFinite(k))return[];if(k<=0||h>y)return[];const N=[];for(let d=h;d<=y;d+=k){const _=m(d);N.push({label:_,value:_})}return N}),c=e.computed(()=>t.clearable&&!t.disabled&&!!t.modelValue),p=h=>{t.disabled||(n.value=h)},u=()=>p(!n.value),f=()=>p(!1),g=h=>{l("update:modelValue",h.value),l("change",h.value,h),f()},b=()=>{l("update:modelValue",""),l("change",""),f()},C=h=>{var y;n.value&&((y=r.value)!=null&&y.contains(h.target)||f())};return e.watch(()=>n.value,h=>{h?document.addEventListener("click",C):document.removeEventListener("click",C)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",C)}),(h,y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"timeSelectRef",ref:r,class:e.normalizeClass(["jh-time-select",{"is-disabled":h.disabled,"is-visible":n.value}])},[e.createElementVNode("button",{class:"jh-time-select__trigger",type:"button",disabled:h.disabled,"aria-expanded":n.value,onClick:u},[e.createElementVNode("span",{class:e.normalizeClass(["jh-time-select__label",{"is-placeholder":!h.modelValue}])},e.toDisplayString(h.modelValue||h.placeholder),3),c.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"jh-time-select__clear",type:"button",onClick:e.withModifiers(b,["stop"])},[e.createVNode(e.unref(w),{name:"close"})])):(e.openBlock(),e.createBlock(e.unref(w),{key:1,class:"jh-time-select__arrow",name:"arrow-right"}))],8,Pn),e.createVNode(e.Transition,{name:"jh-time-select-fade"},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",Tn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,k=>(e.openBlock(),e.createElementBlock("button",{key:k.value,class:e.normalizeClass(["jh-time-select__option",{"is-active":k.value===h.modelValue}]),type:"button",onClick:N=>g(k)},e.toDisplayString(k.label),11,zn))),128)),s.value.length===0?(e.openBlock(),e.createElementBlock("div",Jn,"No data")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),_:1})],2))}}),lo=V(Dn),no={data:{type:Array,default:()=>[]},nodeKey:{type:String,default:"value"},fieldNames:{type:Object,default:()=>({})},defaultExpandedKeys:{type:Array,default:()=>[]},checkedKeys:{type:Array,default:()=>[]},showCheckbox:Boolean,checkStrictly:Boolean,expandOnClickNode:{type:Boolean,default:!0},emptyText:{type:String,default:"No data"}},ao={"update:checkedKeys":o=>Array.isArray(o),"node-click":(o,a)=>!!o&&a!==void 0,check:(o,a)=>Array.isArray(o)&&!!a},Mn={class:"jh-tree"},An={key:0,class:"jh-tree__empty"},Fn=["disabled","aria-label","onClick"],In=["checked","disabled","onChange"],xn=["disabled","onClick"],Ln=e.defineComponent({name:"JhTree",__name:"tree",props:no,emits:ao,setup(o,{emit:a}){const t=o,l=a,n=e.ref([...t.defaultExpandedKeys]),r=e.computed(()=>t.fieldNames.label||"label"),i=e.computed(()=>t.fieldNames.value||t.nodeKey),m=e.computed(()=>t.fieldNames.children||"children"),s=e.computed(()=>t.fieldNames.disabled||"disabled"),c=v=>String(v[r.value]??""),p=v=>v[i.value],u=v=>v[m.value]||[],f=v=>!!v[s.value],g=v=>u(v).length>0,b=v=>n.value.includes(v),C=v=>t.checkedKeys.includes(v),h=(v,j=0,E=[])=>(v.forEach(z=>{const S=p(z),P={node:z,key:S,label:c(z),level:j,disabled:f(z),hasChildren:g(z)};E.push(P),P.hasChildren&&b(S)&&h(u(z),j+1,E)}),E),y=v=>{const j=[],E=z=>{j.push(p(z)),u(z).forEach(E)};return E(v),j},k=e.computed(()=>h(t.data)),N=v=>{v.hasChildren&&(n.value=b(v.key)?n.value.filter(j=>j!==v.key):[...n.value,v.key])},d=v=>{v.disabled||(t.expandOnClickNode&&v.hasChildren&&N(v),l("node-click",v.node,v.key))},_=v=>{if(v.disabled)return;const j=new Set(t.checkedKeys),E=t.checkStrictly?[v.key]:y(v.node),z=C(v.key);E.forEach(P=>{z?j.delete(P):j.add(P)});const S=Array.from(j);l("update:checkedKeys",S),l("check",S,v.node)};return e.watch(()=>t.defaultExpandedKeys,v=>{n.value=[...v]}),(v,j)=>(e.openBlock(),e.createElementBlock("div",Mn,[k.value.length===0?(e.openBlock(),e.createElementBlock("div",An,e.toDisplayString(v.emptyText),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,E=>(e.openBlock(),e.createElementBlock("div",{key:E.key,class:e.normalizeClass(["jh-tree__node",{"is-disabled":E.disabled,"is-expanded":b(E.key)}]),style:e.normalizeStyle({"--jh-tree-node-level":E.level})},[e.createElementVNode("button",{class:"jh-tree__expand",type:"button",disabled:!E.hasChildren,"aria-label":b(E.key)?"Collapse node":"Expand node",onClick:z=>N(E)},[E.hasChildren?(e.openBlock(),e.createBlock(e.unref(w),{key:0,name:"arrow-right"})):e.createCommentVNode("",!0)],8,Fn),v.showCheckbox?(e.openBlock(),e.createElementBlock("input",{key:0,class:"jh-tree__checkbox",type:"checkbox",checked:C(E.key),disabled:E.disabled,onChange:z=>_(E)},null,40,In)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"jh-tree__label",type:"button",disabled:E.disabled,onClick:z=>d(E)},[e.renderSlot(v.$slots,"node",{node:E.node,data:E.node,label:E.label},()=>[e.createTextVNode(e.toDisplayString(E.label),1)])],8,xn)],6))),128))]))}}),so=V(Ln),ro={fileList:{type:Array,default:()=>[]},action:{type:String,default:""},accept:{type:String,default:""},multiple:Boolean,disabled:Boolean,drag:Boolean,limit:{type:Number,default:0},buttonText:{type:String,default:"Click to upload"},tip:{type:String,default:""},beforeUpload:{type:Function,default:void 0}},io={"update:fileList":o=>Array.isArray(o),change:(o,a)=>!!o&&Array.isArray(a),remove:(o,a)=>!!o&&Array.isArray(a),exceed:(o,a)=>Array.isArray(o)&&Array.isArray(a)},Kn=["accept","multiple","disabled"],Rn=["disabled"],On={key:0,class:"jh-upload__tip"},Hn={key:1,class:"jh-upload__list"},Un={class:"jh-upload__name"},qn=["disabled","aria-label","onClick"],Gn=e.defineComponent({name:"JhUpload",__name:"upload",props:ro,emits:io,setup(o,{emit:a}){const t=o,l=a,n=e.ref(),r=e.ref(!1);let i=0;const m=h=>({uid:`${Date.now()}-${i++}`,name:h.name,size:h.size,type:h.type,status:"ready",raw:h}),s=()=>{var h;t.disabled||(h=n.value)==null||h.click()},c=async h=>{const y=[];for(const k of h)(t.beforeUpload?await t.beforeUpload(k):!0)&&y.push(k);return y.map(m)},p=async h=>{if(t.disabled||h.length===0)return;if(t.limit>0&&t.fileList.length+h.length>t.limit){l("exceed",h,t.fileList);return}const y=await c(h);if(y.length===0)return;const k=[...t.fileList,...y];l("update:fileList",k),y.forEach(N=>l("change",N,k))},u=h=>{const y=h.target;p(Array.from(y.files||[])),y.value=""},f=h=>{if(t.disabled)return;const y=t.fileList.filter(k=>k.uid!==h.uid);l("update:fileList",y),l("remove",h,y)},g=()=>{t.disabled||!t.drag||(r.value=!0)},b=()=>{r.value=!1},C=h=>{var y;t.disabled||!t.drag||(r.value=!1,p(Array.from(((y=h.dataTransfer)==null?void 0:y.files)||[])))};return(h,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jh-upload",{"is-disabled":h.disabled,"is-drag":h.drag,"is-dragover":r.value}]),onDragover:e.withModifiers(g,["prevent"]),onDragleave:e.withModifiers(b,["prevent"]),onDrop:e.withModifiers(C,["prevent"])},[e.createElementVNode("input",{ref_key:"inputRef",ref:n,class:"jh-upload__input",type:"file",accept:h.accept,multiple:h.multiple,disabled:h.disabled,onChange:u},null,40,Kn),e.createElementVNode("button",{class:"jh-upload__trigger",type:"button",disabled:h.disabled,onClick:s},[e.createVNode(e.unref(w),{name:"plus"}),e.createElementVNode("span",null,e.toDisplayString(h.buttonText),1)],8,Rn),h.tip?(e.openBlock(),e.createElementBlock("div",On,e.toDisplayString(h.tip),1)):e.createCommentVNode("",!0),h.fileList.length?(e.openBlock(),e.createElementBlock("ul",Hn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.fileList,k=>(e.openBlock(),e.createElementBlock("li",{key:k.uid,class:"jh-upload__item"},[e.createElementVNode("span",Un,e.toDisplayString(k.name),1),e.createElementVNode("button",{class:"jh-upload__remove",type:"button",disabled:h.disabled,"aria-label":`Remove ${k.name}`,onClick:N=>f(k)},[e.createVNode(e.unref(w),{name:"close"})],8,qn)]))),128))])):e.createCommentVNode("",!0)],34))}}),co=V(Gn),uo={data:{type:Array,default:()=>[]},columns:{type:Number,default:2,validator:o=>Number.isInteger(o)&&o>0},gap:{type:[Number,String],default:16},itemKey:{type:[String,Function],default:"id"},itemHeight:{type:[Number,String,Function],default:"height"},batchSize:{type:Number,default:40,validator:o=>Number.isInteger(o)&&o>0},emptyText:{type:String,default:"No data"},immediate:{type:Boolean,default:!0}},mo={"layout-start":()=>!0,"layout-end":()=>!0},Wn={key:0,class:"jh-waterfall__empty"},Yn={class:"jh-waterfall__columns"},Zn=e.defineComponent({name:"JhWaterfall",__name:"waterfall",props:uo,emits:mo,setup(o,{expose:a,emit:t}){const l=o,n=t,r=e.ref(),i=e.ref([]),m=e.ref([]),s=e.ref(0);let c=0,p;const u=()=>Math.max(1,Math.floor(l.columns)),f=e.computed(()=>typeof l.gap=="number"?`${l.gap}px`:l.gap),g=e.computed(()=>{if(typeof l.gap=="number")return l.gap;const S=Number.parseFloat(l.gap);return Number.isFinite(S)?S:0}),b=e.computed(()=>`calc((100% - (${f.value} * ${u()-1})) / ${u()})`),C=e.computed(()=>({"--jh-waterfall-gap":f.value,"--jh-waterfall-column-width":b.value})),h=(S,P)=>typeof l.itemKey=="function"?l.itemKey(S,P):S[l.itemKey]??P,y=(S,P)=>{if(typeof l.itemHeight=="number")return l.itemHeight;if(typeof l.itemHeight=="function")return l.itemHeight(S,P);const T=S[l.itemHeight];return typeof T=="number"?T:0},k=()=>Array.from({length:u()},()=>({height:0,items:[]})),N=(S,P)=>({item:S,index:P,key:h(S,P),height:y(S,P)}),d=()=>{var T;let S=0,P=((T=i.value[0])==null?void 0:T.height)??0;return i.value.forEach((B,$)=>{B.height<P&&(P=B.height,S=$)}),S},_=(S,P)=>{const T=d(),B=i.value[T],$=P||S.height||0;B.items.push({...S,height:$}),B.height+=$+g.value},v=()=>new Promise(S=>{if(typeof window>"u"||typeof window.requestAnimationFrame!="function"){setTimeout(S,0);return}p=window.requestAnimationFrame(()=>S())}),j=async S=>{var B;if(S!==c)return;if(s.value>=l.data.length){m.value=[],n("layout-end");return}const P=l.data.slice(s.value,s.value+l.batchSize).map(($,J)=>N($,s.value+J));if(m.value=P,await e.nextTick(),await v(),S!==c)return;const T=Array.from(((B=r.value)==null?void 0:B.children)??[]);P.forEach(($,J)=>{var D;const M=((D=T[J])==null?void 0:D.getBoundingClientRect().height)??0;_($,M)}),s.value+=P.length,m.value=[],await e.nextTick(),await v(),j(S)},E=()=>{c+=1,s.value=0,m.value=[],i.value=k(),l.data.length!==0&&(n("layout-start"),j(c))},z=()=>{E()};return e.watch(()=>[l.data,l.columns,l.gap,l.batchSize,l.itemHeight,l.itemKey],()=>E(),{deep:!1}),e.onMounted(()=>{l.immediate&&E()}),e.onBeforeUnmount(()=>{c+=1,p!==void 0&&typeof window<"u"&&window.cancelAnimationFrame(p)}),a({refresh:z}),(S,P)=>(e.openBlock(),e.createElementBlock("div",{class:"jh-waterfall",style:e.normalizeStyle(C.value)},[S.data.length===0?(e.openBlock(),e.createElementBlock("div",Wn,[e.renderSlot(S.$slots,"empty",{},()=>[e.createTextVNode(e.toDisplayString(S.emptyText),1)])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",Yn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(T,B)=>(e.openBlock(),e.createElementBlock("div",{key:B,class:"jh-waterfall__column"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.items,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"jh-waterfall__item"},[e.renderSlot(S.$slots,"default",{item:$.item,index:$.index,columnIndex:B,height:$.height})]))),128))]))),128))]),e.createElementVNode("div",{ref_key:"measureRef",ref:r,class:"jh-waterfall__measure","aria-hidden":"true"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,T=>(e.openBlock(),e.createElementBlock("div",{key:T.key,class:"jh-waterfall__measure-item"},[e.renderSlot(S.$slots,"default",{item:T.item,index:T.index,columnIndex:-1,height:T.height})]))),128))],512)],64))],4))}}),po=V(Zn),Qn=[ne,re,de,R,ve,Ce,Ee,$e,je,Je,De,Fe,Le,Oe,Ge,Xe,ot,lt,w,st,ct,pt,A,L,F,jt,Dt,Mt,It,Kt,Ht,Wt,Yt,eo,lo,so,co,po],Xn={install(o){Qn.forEach(a=>{o.use(a)})}};exports.JhAlert=ne;exports.JhBacktop=re;exports.JhBadge=de;exports.JhButton=R;exports.JhCarousel=Ce;exports.JhCarouselItem=Ee;exports.JhCascader=ve;exports.JhCheckbox=$e;exports.JhCheckboxGroup=je;exports.JhCollapse=Je;exports.JhCollapseItem=De;exports.JhDatePicker=Fe;exports.JhDateTimePicker=Le;exports.JhDialog=Oe;exports.JhDrawer=Ge;exports.JhDropdown=Xe;exports.JhForm=ot;exports.JhFormItem=lt;exports.JhIcon=w;exports.JhInfiniteScroll=st;exports.JhInput=ct;exports.JhLink=pt;exports.JhMessage=A;exports.JhMessageBox=L;exports.JhNotification=F;exports.JhPagination=jt;exports.JhRadio=Dt;exports.JhRadioGroup=Mt;exports.JhScrollbar=It;exports.JhSelect=Kt;exports.JhTabPane=Yt;exports.JhTable=Ht;exports.JhTabs=Wt;exports.JhText=eo;exports.JhTimeSelect=lo;exports.JhTree=so;exports.JhUpload=co;exports.JhWaterfall=po;exports.Message=gt;exports.MessageBox=_t;exports.Notification=St;exports.alertEffects=te;exports.alertEmits=le;exports.alertProps=oe;exports.alertTypes=ee;exports.backtopEmits=se;exports.backtopProps=ae;exports.badgeProps=ce;exports.badgeTypes=ie;exports.buttonEmits=fe;exports.buttonNativeTypes=pe;exports.buttonProps=he;exports.buttonSizes=me;exports.buttonTypes=ue;exports.carouselArrows=ke;exports.carouselContextKey=U;exports.carouselEmits=_e;exports.carouselItemProps=Be;exports.carouselProps=ye;exports.cascaderEmits=be;exports.cascaderProps=ge;exports.checkboxEmits=we;exports.checkboxGroupEmits=Ne;exports.checkboxGroupKey=q;exports.checkboxGroupProps=Ve;exports.checkboxProps=Se;exports.collapseContextKey=G;exports.collapseEmits=Te;exports.collapseItemProps=ze;exports.collapseProps=Pe;exports.datePickerEmits=Ae;exports.datePickerProps=Me;exports.dateTimePickerEmits=xe;exports.dateTimePickerProps=Ie;exports.default=Xn;exports.dialogEmits=Re;exports.dialogProps=Ke;exports.drawerDirections=He;exports.drawerEmits=qe;exports.drawerProps=Ue;exports.dropdownEmits=Qe;exports.dropdownPlacements=Ye;exports.dropdownProps=Ze;exports.dropdownTriggers=We;exports.formContextKey=W;exports.formItemProps=tt;exports.formProps=et;exports.iconNames=ho;exports.iconProps=X;exports.infiniteScrollEmits=at;exports.infiniteScrollProps=nt;exports.inputEmits=it;exports.inputProps=rt;exports.linkEmits=mt;exports.linkProps=ut;exports.linkTypes=dt;exports.messageBoxProps=yt;exports.messageBoxTypes=kt;exports.messageProps=ft;exports.messageTypes=ht;exports.notificationPositions=Ct;exports.notificationProps=Et;exports.notificationTypes=Bt;exports.paginationEmits=$t;exports.paginationProps=Nt;exports.radioEmits=zt;exports.radioGroupEmits=Jt;exports.radioGroupKey=Z;exports.radioGroupProps=Tt;exports.radioProps=Pt;exports.scrollbarEmits=Ft;exports.scrollbarProps=At;exports.selectEmits=Lt;exports.selectProps=xt;exports.tabPaneProps=Gt;exports.tableEmits=Ot;exports.tableProps=Rt;exports.tabsContextKey=Q;exports.tabsEmits=qt;exports.tabsProps=Ut;exports.textProps=Xt;exports.textSizes=Qt;exports.textTypes=Zt;exports.timeSelectEmits=oo;exports.timeSelectProps=to;exports.treeEmits=ao;exports.treeProps=no;exports.uploadEmits=io;exports.uploadProps=ro;exports.waterfallEmits=mo;exports.waterfallProps=uo;
2
+ //# sourceMappingURL=index.cjs.map