x-next 0.0.0-alpha.2 → 0.0.0-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. package/README.md +15 -84
  2. package/dist/index.umd.js +1 -0
  3. package/package.json +35 -48
  4. package/LICENSE +0 -21
  5. package/dist/favicon.ico +0 -0
  6. package/dist/index.d.ts +0 -0
  7. package/dist/types/_hooks/use-overflow.d.ts +0 -5
  8. package/dist/types/_hooks/use-popup-manager.d.ts +0 -11
  9. package/dist/types/_props/css.d.ts +0 -13
  10. package/dist/types/_props/global.d.ts +0 -1
  11. package/dist/types/_utils/config.d.ts +0 -9
  12. package/dist/types/_utils/convert-case.d.ts +0 -3
  13. package/dist/types/_utils/dom.d.ts +0 -10
  14. package/dist/types/_utils/helpers.d.ts +0 -12
  15. package/dist/types/_utils/icon.d.ts +0 -59
  16. package/dist/types/_utils/is.d.ts +0 -25
  17. package/dist/types/_utils/keyboard.d.ts +0 -24
  18. package/dist/types/_utils/number.d.ts +0 -0
  19. package/dist/types/_utils/vue-eco.d.ts +0 -32
  20. package/dist/types/componets/button/index.vue.d.ts +0 -107
  21. package/dist/types/componets/button/props.d.ts +0 -45
  22. package/dist/types/componets/dialog/index.vue.d.ts +0 -221
  23. package/dist/types/componets/dialog/props.d.ts +0 -83
  24. package/dist/types/componets/dialog/use-props.d.ts +0 -33
  25. package/dist/types/componets/dialog/use.d.ts +0 -3
  26. package/dist/types/componets/dialog/warp.d.ts +0 -2
  27. package/dist/types/componets/message/index.vue.d.ts +0 -116
  28. package/dist/types/componets/message/props.d.ts +0 -31
  29. package/dist/types/componets/message/warp.d.ts +0 -3
  30. package/dist/types/componets/message-box/index.d.ts +0 -3
  31. package/dist/types/componets/message-box/props.d.ts +0 -52
  32. package/dist/types/componets/message-box/warp.d.ts +0 -2
  33. package/dist/types/componets/notification/index.vue.d.ts +0 -160
  34. package/dist/types/componets/notification/props.d.ts +0 -54
  35. package/dist/types/componets/notification/warp.d.ts +0 -3
  36. package/dist/types/componets/space/index.d.ts +0 -42
  37. package/dist/types/componets/tag-cloud/index.d.ts +0 -0
  38. package/dist/types/componets/trend-chart/components/trend-chart-curve.d.ts +0 -114
  39. package/dist/types/componets/trend-chart/components/trend-chart-grid.d.ts +0 -55
  40. package/dist/types/componets/trend-chart/components/trend-chart-labels.d.ts +0 -22
  41. package/dist/types/componets/trend-chart/components/trend-chart.d.ts +0 -270
  42. package/dist/types/componets/trend-chart/helpers/genPath.d.ts +0 -8
  43. package/dist/types/componets/trend-chart/helpers/genPoints.d.ts +0 -3
  44. package/dist/types/componets/trend-chart/helpers/getPadding.d.ts +0 -7
  45. package/dist/types/componets/trend-chart/helpers/validatePadding.d.ts +0 -2
  46. package/dist/types/componets/trend-chart/index.d.ts +0 -2
  47. package/dist/types/componets/trend-chart/props.d.ts +0 -206
  48. package/dist/types/icons/animation/animation-loading.vue.d.ts +0 -55
  49. package/dist/types/icons/default/check-circle-fill.vue.d.ts +0 -55
  50. package/dist/types/icons/default/close-circle-fill.vue.d.ts +0 -55
  51. package/dist/types/icons/default/exclamation-circle-fill.vue.d.ts +0 -55
  52. package/dist/types/icons/default/info-circle-fill.vue.d.ts +0 -55
  53. package/dist/types/icons/default/minus-circle-fill.vue.d.ts +0 -55
  54. package/dist/types/icons/index.d.ts +0 -7
  55. package/dist/types/ui.d.ts +0 -5
  56. package/dist/ui.cjs.js +0 -2
  57. package/dist/ui.es.js +0 -1395
  58. package/dist/ui.umd.js +0 -3
package/README.md CHANGED
@@ -1,95 +1,26 @@
1
- # Vue 3 Datepicker
1
+ # 简介
2
2
 
3
- Documentation: https://icehaunter.github.io/vue3-datepicker/
3
+ X-Next是Ringing Tech的基础UI库。
4
4
 
5
- This is a basic (at least for now) reimplementation of https://github.com/icehaunter/vuejs-datepicker in Vue 3 and with greatly cleaned up code.
5
+ # 安装
6
6
 
7
- All date manipulation and formatting are done via the amazing [`date-fns`](https://date-fns.org/) library, so it's a direct dependency of this picker.
7
+ ### 运行
8
8
 
9
- ## Installation
10
-
11
- Package is available on NPM: https://www.npmjs.com/package/vue3-datepicker
12
-
13
- ```sh
14
- npm i vue3-datepicker
15
9
  ```
16
-
17
- The component is packaged mainly for use with bundlers, if you require a browser build - post an issue.
18
-
19
- ## Usage
20
-
21
- For more examples see https://icehaunter.github.io/vue3-datepicker/examples.html
22
-
23
- ```vue
24
- <template>
25
- <datepicker
26
- v-model="selected"
27
- :locale="locale"
28
- :upperLimit="to"
29
- :lowerLimit="from"
30
- :clearable="true"
31
- />
32
- </template>
10
+ pnpm i x-next
33
11
  ```
34
12
 
35
- ## Props and attributes
36
-
37
- Attribute fallthrough is enabled, so any attribute you apply to the component will be passed down to the input.
38
-
39
- All props which accept formatting strings for dates use [`date-fns` formatting function](https://date-fns.org/docs/format) under the hood, so see that function's documentation for patterns.
13
+ ### 引入
40
14
 
41
- Main interaction to date selection is done via `v-model` with `Date` as expected type of the value passed.
42
-
43
- Full props documentation is available at https://icehaunter.github.io/vue3-datepicker/config.html#props
44
-
45
- | ID | Type | Default | Description |
46
- | ------------------------ | -------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
47
- | `upperLimit` | `Date` | | Upper limit for available dates for picking |
48
- | `lowerLimit` | `Date` | | Lower limit for available dates for picking |
49
- | `startingViewDate` | `Date` | `() => new Date()` | Date on which to focus when empty datepicker is opened. Default is "right now" |
50
- | `disabledDates` | `{ dates: Date[] }` | | Dates not available for picking |
51
- | `disabledTime` | `{ dates: Date[] }` | | Dates not available for time picking |
52
- | `startingView` | `'time' \| 'day' \| 'month' \| 'year'` | `'day'` | View on which the date picker should open. Can be either `year`, `month`, or `day` |
53
- | `minimumView` | `'time' \| 'day' \| 'month' \| 'year'` | `'day'` | If set, lower-level views won't show |
54
- | `dayPickerHeadingFormat` | `String` | `LLLL yyyy` | `date-fns`-type formatting for a day view heading |
55
- | `dayFormat` | `String` | `dd` | `date-fns`-type formatting for each day on the day view |
56
- | `weekdayFormat` | `String` | `EE` | `date-fns`-type formatting for a line of weekdays on day view |
57
- | `inputFormat` | `String` | `yyyy-MM-dd` | `date-fns`-type format in which the string in the input should be both parsed and displayed |
58
- | `locale` | [`Locale`](https://date-fns.org/v2.16.1/docs/I18n#usage) | `date-fns/locale/en` | [`date-fns` locale object](https://date-fns.org/v2.16.1/docs/I18n#usage). Used in string formatting (see default `dayPickerHeadingFormat`) |
59
- | `disabled` | `Boolean` | `false` | Disables datepicker and prevents it's opening |
60
- | `typeable` | `Boolean` | `false` | Allows user to input date manually |
61
- | `weekStartsOn` | `Number` | 1 | Day on which the week should start. Number from 0 to 6, where 0 is Sunday and 6 is Saturday. Week starts with a Monday (1) by default |
62
- | `clearable` | `Boolean` | `false` | Allows clearing the selected date and setting the value to `null` |
63
- | `allowOutsideInterval` | `Boolean` | `false` | Allows user to click dates outside of current interval |
64
-
65
- ### Events
66
-
67
- - `opened`: Emitted every time the popup opens, including on field focus
68
- - `closed`: Emitted every time the popup closes, including on field blur
69
- - `decadePageChanged`: Emitted when a page is changed on the year picker view, displaying a different decade. Has a date that is included in the shown decade as an argument.
70
- - `yearPageChanged`: Emitted when a page is changed on the month picker view, displaying a different year. Has a date that is included in the shown year as an argument.
71
- - `monthPageChanged`: Emitted when a page is changed on the day picker view, displaying a different month. Has a date that is included in the shown month as an argument.
72
-
73
- ## Compatibility
74
-
75
- Package is transpiled and should be usable for everyone with ES6 and above, but the styling of the datepicker itself uses CSS Grid and CSS variables.
76
-
77
- ## Example
15
+ ```
16
+ // main.ts
17
+ import { createApp } from 'vue'
18
+ import XNext from 'x-next'
19
+ import "x-next/dist/style.css"; //引入组件样式
20
+ import App from './App.vue'
78
21
 
79
- ```vue
80
- <template>
81
- <datepicker v-model="picked" />
82
- </template>
22
+ const app = createApp(App)
83
23
 
84
- <script>
85
- import Datepicker from '../src/datepicker/Datepicker.vue'
86
- components: {
87
- Datepicker
88
- },
89
- data(): {
90
- return {
91
- picked: new Date();
92
- }
93
- }
94
- </script>
24
+ app.use(XNext)
25
+ app.mount('#app')
95
26
  ```
@@ -0,0 +1 @@
1
+ (function(k,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(k=typeof globalThis<"u"?globalThis:k||self,t(k.index={},k.Vue))})(this,function(k,t){"use strict";var Vt=Object.defineProperty;var Ot=(k,t,w)=>t in k?Vt(k,t,{enumerable:!0,configurable:!0,writable:!0,value:w}):k[t]=w;var S=(k,t,w)=>Ot(k,typeof t!="symbol"?t+"":t,w);const w="X",ye="x",_=e=>e?ye+"-"+e:e||"",$=e=>w+e,E=e=>{const n=_(e);return{block:n,element:r=>`${n}--${r}`,modifier:r=>`${n}-${r}`,is:r=>`${n}-is-${r}`}},ge=["px","%","vh","vw","calc"],v=(e,n="px")=>{if(e===void 0)return"";const l=String(e);return ge.some(o=>l.includes(o))?l:l+n},T=Object.prototype.toString;function ee(e){return T.call(e)==="[object Array]"}function te(e){return T.call(e)==="[object Object]"}const ne=e=>T.call(e)==="[object Promise]";function le(e){return T.call(e)==="[object String]"}function ke(e){return T.call(e)==="[object Number]"&&e===e}function p(e){return typeof e=="function"}function D(){return typeof window<"u"}const pe=1e3,he=3e3,Ne=1;class Ee{constructor(){S(this,"popupStack",{popup:new Set,dialog:new Set,message:new Set});S(this,"getNextZIndex",n=>(n==="message"?Array.from(this.popupStack.message).pop()||he:Array.from(this.popupStack.popup).pop()||pe)+Ne);S(this,"add",n=>{const l=this.getNextZIndex(n);return this.popupStack[n].add(l),n==="dialog"&&this.popupStack.popup.add(l),l});S(this,"delete",(n,l)=>{this.popupStack[l].delete(n),l==="dialog"&&this.popupStack.popup.delete(n)});S(this,"isLastDialog",n=>this.popupStack.dialog.size>1?n===Array.from(this.popupStack.dialog).pop():!0)}}const R=new Ee;function U(e,{visible:n,runOnMounted:l}={}){const o=t.ref(0),a=()=>{o.value=R.add(e)},r=()=>{R.delete(o.value,e)},f=()=>e==="dialog"?R.isLastDialog(o.value):!1;return t.watch(()=>n==null?void 0:n.value,s=>{s?a():r()},{immediate:!0}),l&&(t.onMounted(()=>{a()}),t.onBeforeUnmount(()=>{r()})),{zIndex:t.readonly(o),open:a,close:r,isLastDialog:f}}const oe=e=>e.replace(/^./,n=>n.toLowerCase()).replace(/-(\w)/g,(n,l)=>{var o;return(o=l==null?void 0:l.toUpperCase())!==null&&o!==void 0?o:""}),re=()=>{},Be=(e,n)=>{var l;if(D)return(l=document.querySelector(e))!==null&&l!==void 0?l:void 0},be=e=>{if(e.tagName==="BODY")return window.innerWidth-(document.documentElement.offsetWidth||document.body.offsetWidth);const{borderLeftWidth:n,borderRightWidth:l}=window.getComputedStyle(e),o=Number(n.replace("px",""))+Number(l.replace("px",""));return e.offsetWidth-(e.clientWidth+o)},we=e=>e.tagName==="BODY"?document.documentElement.scrollHeight>window.innerHeight:e.scrollHeight>e.offsetHeight,Ve=(e,n)=>{var l;if(!D||!e||!n)return"";let o=oe(n);o==="float"&&(o="cssFloat");try{const a=e.style[o];if(a)return a;const r=(l=document.defaultView)===null||l===void 0?void 0:l.getComputedStyle(e,"");return r?r[o]:""}catch{return e.style[o]}},z=(e,n,l)=>{if(!(!e||!n))if(te(n))Object.entries(n).forEach(([o,a])=>z(e,o,a));else{const o=oe(n);e.style[o]=l}},W=(e,n)=>{if(le(e)){const l=e[0]==="#"?`[id='${e.slice(1)}']`:e;return Be(l)}return e},Oe=D?(e,n,l,o=!1)=>{e.addEventListener(n,l,o)}:re,Se=D?(e,n,l,o=!1)=>{e.removeEventListener(n,l,o)}:re,$e=(e,n)=>{let l=!1;const o={overflow:"",width:""},a=s=>s.tagName==="BODY",r=()=>{if(e.value){const s=e.value;if(!l&&s.style.overflow!=="hidden"){const m=be(s);if(m>0||we(s)){o.overflow=s.style.overflow,o.width=s.style.width;let u=0;a(s)&&(u=s.getBoundingClientRect().left||0),z(s,{width:`calc(100% - ${Math.ceil(m-u)}px)`,overflow:"hidden"}),l=!0}}}},f=()=>{if(e.value&&l){const s=e.value;z(s,{overflow:o.overflow,width:o.width}),l=!1}};return t.watch(()=>n==null?void 0:n.value,s=>{e.value&&!a(e.value)&&(s&&z(s,{position:"absolute"}),Ve(e.value,"position")==="static"&&z(e.value,{position:"relative"}))}),{setOverflowHidden:r,resetOverflow:f}},Te={ENTER:"Enter",ESC:"Escape",BACKSPACE:"Backspace",TAB:"Tab",SPACE:" ",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight"},M=e=>e;var V;(function(e){e[e.ELEMENT=1]="ELEMENT",e[e.FUNCTIONAL_COMPONENT=2]="FUNCTIONAL_COMPONENT",e[e.STATEFUL_COMPONENT=4]="STATEFUL_COMPONENT",e[e.COMPONENT=6]="COMPONENT",e[e.TEXT_CHILDREN=8]="TEXT_CHILDREN",e[e.ARRAY_CHILDREN=16]="ARRAY_CHILDREN",e[e.SLOTS_CHILDREN=32]="SLOTS_CHILDREN",e[e.TELEPORT=64]="TELEPORT",e[e.SUSPENSE=128]="SUSPENSE",e[e.COMPONENT_SHOULD_KEEP_ALIVE=256]="COMPONENT_SHOULD_KEEP_ALIVE",e[e.COMPONENT_KEPT_ALIVE=512]="COMPONENT_KEPT_ALIVE"})(V||(V={}));const ze=e=>!!(e&&e.shapeFlag&V.ELEMENT),Me=(e,n)=>!!(e&&e.shapeFlag&V.COMPONENT),Le=(e,n)=>!!(e&&e.shapeFlag&8),Ae=(e,n)=>!!(e&&e.shapeFlag&V.ARRAY_CHILDREN),De=(e,n)=>!!(e&&e.shapeFlag&V.SLOTS_CHILDREN),I=(e,n=!1)=>{var l,o;const a=[];for(const r of e??[])ze(r)||Me(r)||n&&Le(r,r.children)?a.push(r):Ae(r,r.children)?a.push(...I(r.children,n)):De(r,r.children)?a.push(...I((o=(l=r.children).default)===null||o===void 0?void 0:o.call(l),n)):ee(r)&&a.push(...I(r,n));return a},Ie={renderTo:{type:M([String,Object]),default:"body"},disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1},top:{type:[String,Number],default:"3vh"},center:{type:Boolean,default:!1},width:{type:[String,Number],default:0},height:{type:[String,Number],default:0},minWidth:{type:[String,Number],default:0},minHeight:{type:[String,Number],default:0},title:{type:String,default:""},mask:{type:Boolean,default:!0},destroyOnClosed:{type:Boolean,default:!0},onBeforeCancel:{type:Function},maskToClose:{type:Boolean,default:!0},escToClose:{type:Boolean,default:!0},fullscreen:{type:Boolean,default:!1},messageBox:{type:Boolean,default:!1},popupClass:{type:String,default:void 0},showClose:{type:Boolean,default:!0},showHeaderBottomLine:{type:Boolean,default:!1}},Pe=["width","minWidth","height","minHeight"],He=t.defineComponent({name:$("Dialog"),inheritAttrs:!1,props:Ie,emits:["closed","close","open","opened","update:modelValue"],setup(e,{emit:n}){const l=E("dialog"),o=l.block,a=E("message-box"),r=a.block,f=t.computed(()=>[o,e.messageBox&&"is-message-box",e.popupClass&&e.popupClass]),s=t.computed(()=>W(e.renderTo)),m=t.ref(),u=t.computed(()=>e.disabled||!s.value),C=t.computed(()=>({zIndex:h.value})),c=t.computed(()=>{const y={};return e.fullscreen||(!e.center&&e.top&&(y.top=v(e.top)),Pe.forEach(B=>{e[B]&&(y[B]=v(e[B]))})),y}),i=t.ref(!1),d=t.computed(()=>e.modelValue),g=t.computed(()=>d.value||i.value),{zIndex:h,isLastDialog:b}=U("dialog",{visible:d}),{setOverflowHidden:kt,resetOverflow:fe}=$e(s,m),me=(y,B)=>{n("update:modelValue",!1),n("close",e.messageBox?y:void 0,e.messageBox?B:void 0)},pt=()=>{i.value=!1,fe(),n("closed")},ht=()=>{n("opened")},j=t.reactive({ok:!1,cancel:!1}),A=(y,B)=>{let F=!0;if(j[y]=!0,p(e.onBeforeCancel)&&(F=e.onBeforeCancel(y)??!1),ne(F)){F.then(wt=>{j[y]=!1,wt&&me(y,B)});return}j[y]=!1,F&&me(y,B)},Nt=()=>{e.maskToClose&&e.mask&&A("cancel")},Et=y=>{A("cancel",y)},Bt=y=>{A("ok",y)};let Q=!1;const ue=y=>{e.escToClose&&y.key===Te.ESC&&b()&&A("cancel")},bt=()=>{e.escToClose&&!Q&&(Q=!0,Oe(document.documentElement,"keydown",ue))},Ce=()=>{Q=!1,Se(document.documentElement,"keydown",ue)};return t.onBeforeUnmount(()=>{fe(),Ce()}),t.watch(()=>d.value,y=>{y?(n("open"),kt(),i.value=!0,bt()):Ce()},{immediate:!0}),{cls:f,ns:o,cn:l,cnOMB:a,messageBoxNs:r,containerStyle:c,dialogStyle:C,dialogRef:m,teleportContainer:s,teleportDisabled:u,modelVisible:d,mergeVisible:g,interceptClose:A,afterLeave:pt,afterEnter:ht,handleMaskClick:Nt,handleCancel:Et,handleOk:Bt,loadingObj:j}}}),N=(e,n)=>{const l=e.__vccOpts||e;for(const[o,a]of n)l[o]=a;return l};function je(e,n,l,o,a,r){return t.openBlock(),t.createBlock(t.Teleport,{to:e.teleportContainer,disabled:e.teleportDisabled},[!e.destroyOnClosed||e.mergeVisible?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,ref:"dialogRef",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.dialogStyle)},[t.createVNode(t.Transition,{name:"x-fade-in-standard",appear:""},{default:t.withCtx(()=>[e.mask?t.withDirectives((t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass([e.cn.element("mask")])},null,2)),[[t.vShow,e.modelVisible]]):t.createCommentVNode("",!0)]),_:1}),t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("wrapper"),{"is-center":e.center}]),onClick:n[1]||(n[1]=t.withModifiers((...f)=>e.handleMaskClick&&e.handleMaskClick(...f),["self"]))},[t.createVNode(t.Transition,{name:"x-zoom-in",appear:"",onAfterEnter:e.afterEnter,onAfterLeave:e.afterLeave},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("container"),{"is-fullscreen":e.fullscreen}]),style:t.normalizeStyle(e.containerStyle)},[t.createElementVNode("div",{class:t.normalizeClass([e.messageBox?e.cnOMB.element("header"):e.cn.element("header"),e.showHeaderBottomLine&&"is-bottom-line"])},[t.renderSlot(e.$slots,"title",{},()=>[t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("header-title")])},t.toDisplayString(e.title),3)])],2),t.createElementVNode("div",{class:t.normalizeClass([e.messageBox?e.cnOMB.element("body"):e.cn.element("body")])},[t.renderSlot(e.$slots,"default")],2),t.createElementVNode("div",{class:t.normalizeClass([e.messageBox?e.cnOMB.element("footer"):e.cn.element("footer")])},[t.renderSlot(e.$slots,"footer",{cancel:e.handleCancel,ok:e.handleOk,loadingObj:e.loadingObj})],2),e.showClose?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([e.cn.element("close-icon"),e.messageBox&&e.cnOMB.element("close-icon")]),onClick:n[0]||(n[0]=f=>e.interceptClose("cancel"))},null,2)):t.createCommentVNode("",!0)],6),[[t.vShow,e.modelVisible]])]),_:3},8,["onAfterEnter","onAfterLeave"])],2)],6)),[[t.vShow,e.mergeVisible]]):t.createCommentVNode("",!0)],8,["to","disabled"])}const se=N(He,[["render",je]]),Fe={disabled:Boolean,block:Boolean,loading:Boolean,loadingFill:{type:Boolean,default:!1},debounce:{type:Number,default:0},shape:{type:M(String),default:void 0},link:{type:Boolean,default:!1},type:{type:M(String),default:void 0},status:{type:M(String),default:void 0},plain:{type:Boolean,default:!1},size:{type:M(String),default:"medium"},border:{type:Boolean,default:!0}},Re=e=>le(e)?e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(""):"",Ue=(e,n="px")=>{if(e===void 0)return"";const l=typeof e=="number"?`${e}`:e;return["px","%","vh","vw","calc"].some(a=>l.includes(a))?l:l+n};function O(e){return t.defineComponent({name:_(`Icon${Re(e)}`),props:{size:{type:[Number,String],default:void 0},rotate:{type:Number,default:void 0},spin:{type:Boolean,default:!1},color:{type:String,default:void 0},fillColor:{type:Array,default:void 0}},setup(n){const l="x-icon",o=t.computed(()=>{const r={};return n.size&&(r.fontSize=Ue(n.size)),n.rotate&&(r.transform=`rotate(${n.rotate}deg)`),n.color&&(r.color=n.color),r});return{cls:t.computed(()=>[l,{[`${l}-loading`]:n.spin}]),styles:o}}})}const We=O("animation-loading");function Ze(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 50 50",class:"icon-loading-svg"},[t.createElementVNode("circle",{cx:"25",cy:"25",r:"20",class:"path",fill:"none",stroke:"currentColor"})],-1)]),6)}const Ke=N(We,[["render",Ze],["__scopeId","data-v-62d46830"]]),Xe=t.defineComponent({name:$("Button"),components:{AnimationLoading:Ke},props:Fe,emits:["click"],setup(e){const n=t.reactive({clicked:!1,isDebounce:!1}),l=E("button"),o=t.computed(()=>[l.block,e.type&&l.modifier(e.type),e.status&&l.modifier(e.status),e.disabled&&l.is("disabled"),e.block&&l.modifier("block"),e.plain&&l.is("plain"),e.shape&&l.modifier(e.shape),e.link&&l.modifier("is-link"),e.size&&l.modifier(e.size),!e.border&&l.modifier("is-hide-border"),r.value&&l.modifier("is-loading")]),a=()=>{e.debounce>0&&!n.isDebounce&&(n.isDebounce=!0,setTimeout(()=>{n.isDebounce=!1},e.debounce))},r=t.computed(()=>e.loading||n.clicked||n.isDebounce),f=t.getCurrentInstance(),s=(u,C)=>{const c=u(C);ne(c)&&(n.clicked=!0,c.finally(()=>{n.clicked=!1}))};return{cn:l,cls:o,handleClick:async u=>{var c,i,d,g;if((i=(c=u.target).blur)==null||i.call(c),r.value)return;a();const C=(g=(d=f==null?void 0:f.vnode)==null?void 0:d.props)==null?void 0:g.onClick;ee(C)?C.forEach(h=>s(h,u)):p(C)&&s(C,u)},isLoading:r}}}),Ye=["disabled"];function Ge(e,n,l,o,a,r){const f=t.resolveComponent("AnimationLoading");return t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(e.cls),type:"button",disabled:e.disabled,onClick:n[0]||(n[0]=(...s)=>e.handleClick&&e.handleClick(...s))},[t.withDirectives(t.createElementVNode("span",{class:t.normalizeClass([e.cn.element("loading")])},[t.createVNode(f)],2),[[t.vShow,e.isLoading]]),e.$slots.prefix?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([e.cn.element("prefix")])},[t.renderSlot(e.$slots,"prefix")],2)):t.createCommentVNode("",!0),t.renderSlot(e.$slots,"default"),e.$slots.suffix?(t.openBlock(),t.createElementBlock("span",{key:1,class:t.normalizeClass([e.cn.element("suffix")])},[t.renderSlot(e.$slots,"suffix")],2)):t.createCommentVNode("",!0)],10,Ye)}const P=N(Xe,[["render",Ge]]),ae=t.defineComponent({name:$("Space"),props:{direction:{type:String,default:"horizontal"},size:{type:[Number,String],default:"small"},align:{type:String,default:"center"},fill:{type:Boolean,default:!1}},setup(e,{slots:n}){const l=E("space"),o=t.computed(()=>[l.block,l.element(e.direction),e.fill&&"is-fill",l.element(`${e.direction}-${e.align}`)]);function a(f){if(ke(f))return f;switch(f){case"mini":return 4;case"small":return 8;case"medium":return 16;case"large":return 24;default:return 8}}const r=f=>{const s={};if(f)return s;const m=`${a(e.size)}px`,u=`${a(e.size)}px`;return e.direction==="horizontal"&&(s.marginRight=m),e.direction==="vertical"&&(s.marginBottom=u),s};return()=>{var s;const f=I((s=n.default)==null?void 0:s.call(n),!0).filter(m=>m.type!==t.Comment);return t.createVNode("div",{class:[o.value]},[f.map((m,u)=>{var c;const C=n.split&&u>0;return t.createVNode(t.Fragment,{key:`space-item-${u}`},[C&&t.createVNode("div",{className:l.element("split"),style:r(!1)},[(c=n.split)==null?void 0:c.call(n)]),t.createVNode("div",{className:l.element("item"),style:r(u===f.length-1)},[m])])})])}}});function ie(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const ce=E("dialog"),qe=e=>{const n=document.createElement("div"),l=()=>{t.render(null,n)},o=c=>{if(c==="cancel")return e.beforeOnCancel?e.beforeOnCancel():!0;if(c==="ok")return e.beforeOnOk?e.beforeOnOk():!0},a=(c,i)=>{c==="cancel"&&e.onCancel&&e.onCancel(i),c==="ok"&&e.onOk&&e.onOk(i)},r=c=>{if(t.isVNode(c))return c;if(p(c)){const i=c();return t.isVNode(i)?i:null}return t.createVNode("div",{className:ce.element("header-title")},[t.createTextVNode(" "),c,t.createTextVNode(" ")])},f=c=>{if(t.isVNode(c))return c;if(p(c)){const i=c();return t.isVNode(i)?i:null}return t.createVNode("div",{className:ce.element("content")},[t.createTextVNode(" "),e.content,t.createTextVNode(" ")])},s=()=>()=>t.createVNode(t.Fragment,null,[e.title&&r(e.title)]),m=()=>()=>t.createVNode(t.Fragment,null,[e.content&&f(e.content)]),u=()=>{if(t.isVNode(e.footer)||p(e.footer))return e.footer;const c=(e==null?void 0:e.cancelText)||"取消",i=(e==null?void 0:e.okText)||"确认";return d=>t.createVNode(ae,{size:12},{default:()=>{var g,h;return[!e.hideCancel&&t.createVNode(P,{size:"small",onClick:d.cancel,loading:(g=d.loadingObj)==null?void 0:g.cancel},ie(c)?c:{default:()=>[c]}),!e.hideOk&&t.createVNode(P,{type:"primary",size:"small",onClick:d.ok,loading:(h=d.loadingObj)==null?void 0:h.ok},ie(i)?i:{default:()=>[i]})]}})},C=t.createVNode(se,{width:(e==null?void 0:e.width)??368,height:(e==null?void 0:e.height)??"auto",modelValue:!0,renderTo:e==null?void 0:e.renderTo,center:e!=null&&e.top?!1:(e==null?void 0:e.center)??!0,top:(e==null?void 0:e.top)??0,mask:(e==null?void 0:e.mask)??!0,maskToClose:(e==null?void 0:e.maskToClose)??!0,popupClass:e.popupClass,onClose:a,onBeforeCancel:o,"onUpdate:modelValue":()=>{C.component.props.modelValue=!1},onClosed:l,onOpened:()=>{}},{title:s(),default:m(),footer:u()});t.render(C,n)},xe=["success","warning","error","strong","info"],Je=O("close-circle-fill");function Qe(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor","stroke-width":"4","stroke-linecap":"butt","stroke-linejoin":"miter",filter:""},[t.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M24 44c11.046 0 20-8.954 20-20S35.046 4 24 4 4 12.954 4 24s8.954 20 20 20Zm4.955-27.771-4.95 4.95-4.95-4.95a1 1 0 0 0-1.414 0l-1.414 1.414a1 1 0 0 0 0 1.414l4.95 4.95-4.95 4.95a1 1 0 0 0 0 1.414l1.414 1.414a1 1 0 0 0 1.414 0l4.95-4.95 4.95 4.95a1 1 0 0 0 1.414 0l1.414-1.414a1 1 0 0 0 0-1.414l-4.95-4.95 4.95-4.95a1 1 0 0 0 0-1.414l-1.414-1.414a1 1 0 0 0-1.414 0Z",fill:"currentColor",stroke:"none"})],-1)]),6)}const Z=N(Je,[["render",Qe]]),_e=O("check-circle-fill");function ve(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor","stroke-width":"4","stroke-linecap":"butt","stroke-linejoin":"miter",filter:""},[t.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M24 44c11.046 0 20-8.954 20-20S35.046 4 24 4 4 12.954 4 24s8.954 20 20 20Zm10.207-24.379a1 1 0 0 0 0-1.414l-1.414-1.414a1 1 0 0 0-1.414 0L22 26.172l-4.878-4.88a1 1 0 0 0-1.415 0l-1.414 1.415a1 1 0 0 0 0 1.414l7 7a1 1 0 0 0 1.414 0l11.5-11.5Z",fill:"currentColor",stroke:"none"})],-1)]),6)}const K=N(_e,[["render",ve]]),et=O("exclamation-circle-fill");function tt(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor","stroke-width":"4","stroke-linecap":"butt","stroke-linejoin":"miter",filter:""},[t.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M24 44c11.046 0 20-8.954 20-20S35.046 4 24 4 4 12.954 4 24s8.954 20 20 20Zm-2-11a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v2Zm4-18a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V15Z",fill:"currentColor",stroke:"none"})],-1)]),6)}const X=N(et,[["render",tt]]),nt=O("info-circle-fill");function lt(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor","stroke-width":"4","stroke-linecap":"butt","stroke-linejoin":"miter",filter:""},[t.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M24 44c11.046 0 20-8.954 20-20S35.046 4 24 4 4 12.954 4 24s8.954 20 20 20Zm2-30a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-2Zm0 17h1a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h1v-8a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v11Z",fill:"currentColor",stroke:"none"})],-1)]),6)}const Y=N(nt,[["render",lt]]),ot=O("minus-circle-fill");function rt(e,n,l,o,a,r){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},n[0]||(n[0]=[t.createElementVNode("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor","stroke-width":"4","stroke-linecap":"butt","stroke-linejoin":"miter",filter:""},[t.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M24 44c11.046 0 20-8.954 20-20S35.046 4 24 4 4 12.954 4 24s8.954 20 20 20Zm-7-22a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1H17Z",fill:"currentColor",stroke:"none"})],-1)]),6)}const G=N(ot,[["render",rt]]),st=t.defineComponent({name:$("Message"),components:{CloseCircleFill:Z,CheckCircleFill:K,ExclamationCircleFill:X,InfoCircleFill:Y,MinusCircleFill:G},props:{id:{type:String,default:""},message:{type:[String,Number,Object],default:""},type:{type:String,default:"success"},duration:{type:Number,default:1500},center:{type:Boolean,default:!1},onClose:{type:Function,default:()=>{}},offset:{type:Number,default:20},zIndex:{type:Number,default:0},showClose:{type:Boolean,default:!1},useHTML:Boolean,popupClass:{type:String,default:void 0}},emits:["destroy"],setup(e){const n=E("message"),l=t.computed(()=>[n.block,n.modifier(e.type),e.center&&n.modifier("center"),e.showClose&&!e.center&&n.element("show-close"),e.popupClass&&e.popupClass]),o=t.ref(!1);let a=null;const r=()=>{a=setTimeout(()=>{o.value=!1},e.duration)};t.onMounted(()=>{o.value=!0,e.duration!==0&&r()}),t.onUnmounted(()=>{clearTimeout(a)});const{zIndex:f}=U("message",{runOnMounted:!0}),s=t.computed(()=>({top:`${e.offset}px`,zIndex:f.value}));return{cn:n,cls:l,styles:s,visible:o,handleClose:()=>{o.value=!1}}}}),at=["innerHTML"],it={key:1};function ct(e,n,l,o,a,r){const f=t.resolveComponent("CheckCircleFill"),s=t.resolveComponent("ExclamationCircleFill"),m=t.resolveComponent("MinusCircleFill"),u=t.resolveComponent("CloseCircleFill"),C=t.resolveComponent("InfoCircleFill");return t.openBlock(),t.createBlock(t.Transition,{name:"x-message-slide-top",onBeforeLeave:e.onClose,onAfterLeave:n[1]||(n[1]=c=>e.$emit("destroy"))},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.styles)},[e.$slots.icon?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([e.cn.element("icon"),e.cn.modifier(`icon-${e.type}`)])},[t.renderSlot(e.$slots,"icon",{},()=>[e.type==="success"?(t.openBlock(),t.createBlock(f,{key:0})):e.type==="warning"?(t.openBlock(),t.createBlock(s,{key:1})):e.type==="strong"?(t.openBlock(),t.createBlock(m,{key:2})):e.type==="error"?(t.openBlock(),t.createBlock(u,{key:3})):e.type==="info"?(t.openBlock(),t.createBlock(C,{key:4})):t.createCommentVNode("",!0)])],2)),t.renderSlot(e.$slots,"default",{},()=>[e.useHTML?(t.openBlock(),t.createElementBlock("span",{key:0,innerHTML:e.message},null,8,at)):(t.openBlock(),t.createElementBlock("span",it,t.toDisplayString(e.message),1)),e.showClose?(t.openBlock(),t.createElementBlock("span",{key:2,class:t.normalizeClass([e.cn.element("close-icon")]),onClick:n[0]||(n[0]=(...c)=>e.handleClose&&e.handleClose(...c))},null,2)):t.createCommentVNode("",!0)])],6),[[t.vShow,e.visible]])]),_:3},8,["onBeforeLeave"])}const dt=N(st,[["render",ct]]),q=new WeakMap,H=e=>{(typeof e=="string"||t.isVNode(e))&&(e={message:e});const n=W(e.renderTo||"body");q.has(n)||q.set(n,[]);const l=q.get(n);let o=e.offset||20;l.forEach(c=>{var i;o+=((i=c.el)==null?void 0:i.offsetHeight)+20});const a=e.onClose;let r={};r={...e,onClose:()=>{var d;const c=l.findIndex(g=>g===m);if(c<0)return;const i=((d=m.el)==null?void 0:d.offsetHeight)+20;l.slice(c+1).forEach(g=>{var b;const h=(b=g.component)==null?void 0:b.props.offset;g.component.props.offset=h-i}),l.splice(c,1),a&&a(m)},onDestroy:()=>{t.render(null,u)},offset:o};const m=t.createVNode(dt,r,p(r.message)||t.isVNode(r.message)?{default:p(r.message)?r.message:()=>r.message}:null),u=document.createElement("div");return t.render(m,u),n.tagName==="BODY"?m.el.style.position="fixed":(n.style.position="relative",m.el.style.position="absolute"),n.appendChild(u.firstElementChild),l.push(m),{close:()=>{m.component.proxy.handleClose()}}};(()=>{xe.forEach(e=>{H[e]=n=>te(n)?H({type:e,...n}):H({message:n,type:e})})})();const ft=["info","success","warning","strong","error"];function de(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const x=E("message-box"),J=e=>{const n=document.createElement("div"),l=()=>{t.render(null,n)},o=i=>{if(i==="cancel")return e.beforeOnCancel?e.beforeOnCancel():!0;if(i==="ok")return e.beforeOnOk?e.beforeOnOk():!0},a=(i,d)=>{i==="cancel"&&e.onCancel&&e.onCancel(d),i==="ok"&&e.onOk&&e.onOk(d)},r=i=>{let d;switch(i){case"warning":d=t.createVNode(X,{size:"22px",color:"#f6c64b"},null);break;case"strong":d=t.createVNode(G,{size:"22px",color:"#ff7125"},null);break;case"error":d=t.createVNode(Z,{size:"22px",color:"#e24f48"},null);break;case"success":d=t.createVNode(K,{size:"22px",color:"#68d1ab"},null);break;case"info":d=t.createVNode(Y,{size:"22px",color:"#2355f5"},null);break}return t.createVNode("div",{className:x.element("icon")},[d])},f=i=>{if(t.isVNode(i))return i;if(p(i)){const d=i();return t.isVNode(d)?d:null}return t.createVNode("div",{className:x.element("title")},[t.createTextVNode(" "),i,t.createTextVNode(" ")])},s=i=>{if(t.isVNode(i))return i;if(p(i)){const d=i();return t.isVNode(d)?d:null}return t.createVNode("div",{className:x.element("content")},[t.createTextVNode(" "),e.content,t.createTextVNode(" ")])},m=()=>()=>t.createVNode(t.Fragment,null,[r(e.type||"success"),e.title&&f(e.title)]),u=()=>()=>t.createVNode(t.Fragment,null,[e.content&&s(e.content)]),C=()=>{if(t.isVNode(e.footer)||p(e.footer))return e.footer;const i=(e==null?void 0:e.cancelText)||"取消",d=(e==null?void 0:e.okText)||"确认";return g=>t.createVNode(ae,{size:12},{default:()=>{var h,b;return[!e.hideCancel&&t.createVNode(P,{size:"small",onClick:g.cancel,loading:(h=g.loadingObj)==null?void 0:h.cancel},de(i)?i:{default:()=>[i]}),!e.hideOk&&t.createVNode(P,{type:"primary",size:"small",onClick:g.ok,loading:(b=g.loadingObj)==null?void 0:b.ok},de(d)?d:{default:()=>[d]})]}})},c=t.createVNode(se,{messageBox:!0,width:(e==null?void 0:e.width)??358,height:(e==null?void 0:e.height)??"auto",modelValue:!0,renderTo:e==null?void 0:e.renderTo,center:e!=null&&e.top?!1:(e==null?void 0:e.center)??!0,top:(e==null?void 0:e.top)??0,mask:(e==null?void 0:e.mask)??!0,maskToClose:(e==null?void 0:e.maskToClose)??!0,popupClass:e.popupClass,onClose:a,onBeforeCancel:o,"onUpdate:modelValue":()=>{c.component.props.modelValue=!1},onClosed:l,onOpened:()=>{}},{title:m(),default:u(),footer:C()});t.render(c,n)};(()=>{ft.forEach(e=>{J[e]=(n,l)=>{const o=[],a=[];let r=()=>!0,f=()=>!0;return setTimeout(()=>{J({title:n,content:l,type:e,beforeOnCancel:f,beforeOnOk:r,onOk:()=>{o.forEach(s=>p(s)&&s())},onCancel:()=>{a.forEach(s=>p(s)&&s())}})},0),{ok(...s){return s.length===1&&o.push(s[0]),s.length===2&&(r=s[0],o.push(s[1])),this},cancel(...s){return s.length===1&&a.push(s[0]),s.length===2&&(f=s[0],a.push(s[1])),this}}}})})();const mt={position:{type:String,default:"top-right"},offset:{type:Number,default:0},title:{type:String,default:""},type:{type:String,default:"info"},message:{type:String,default:void 0},duration:{type:Number,default:3e3},showClose:{type:Boolean,default:!0},onClose:{type:Function,default:()=>{}},renderToBody:{type:Boolean,default:!1}},ut=t.defineComponent({name:$("Notification"),props:mt,emits:["close","destroy"],setup(e){const n=E("notification"),l=n.block,o=t.computed(()=>[l,n.modifier(r.value.ver)]),{zIndex:a}=U("message",{runOnMounted:!0}),r=t.computed(()=>{const d=e.position.split("-");return{hor:d[1],ver:d[0]}}),f=t.computed(()=>`x-notification-slide-${r.value.hor}`),s=t.computed(()=>{const d={};return d.position=e.renderToBody?"fixed":"absolute",d.zIndex=a.value,d[r.value.hor]="20px",d[r.value.ver]=`${e.offset}px`,d}),m=t.ref(!1);let u=0;const C=()=>{setTimeout(()=>{m.value=!1},e.duration)},c=t.computed(()=>e.type==="info"?Y:e.type==="warning"?X:e.type==="strong"?G:e.type==="success"?K:e.type==="error"?Z:""),i=()=>{m.value=!1};return t.onMounted(()=>{e.duration!==0&&C(),m.value=!0}),t.onUnmounted(()=>{clearTimeout(u)}),{ns:l,cn:n,cls:o,animationClsName:f,positionStyle:s,visible:m,positionPropMap:r,currentIcon:c,handleClose:i}}});function Ct(e,n,l,o,a,r){return t.openBlock(),t.createBlock(t.Transition,{name:e.animationClsName,onBeforeLeave:n[1]||(n[1]=f=>e.$emit("close")),onAfterLeave:n[2]||(n[2]=f=>e.$emit("destroy"))},{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.positionStyle)},[t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("header")])},[t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("icon"),e.cn.modifier(`icon-${e.type}`)])},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.currentIcon)))],2),t.createElementVNode("div",null,[t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("title")])},t.toDisplayString(e.title),3),t.createElementVNode("div",{class:t.normalizeClass([e.cn.element("message")])},[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.message),1)])],2)])],2),e.showClose?(t.openBlock(),t.createElementBlock("span",{key:0,class:t.normalizeClass([e.cn.element("close-icon")]),onClick:n[0]||(n[0]=t.withModifiers((...f)=>e.handleClose&&e.handleClose(...f),["self"]))},null,2)):t.createCommentVNode("",!0)],6),[[t.vShow,e.visible]])]),_:3},8,["name"])}const yt=N(ut,[["render",Ct]]),L=new WeakMap,gt=e=>{const n=W(e.renderTo||"body"),l=document.createElement("div");L.get(n)||L.set(n,{}),L.get(n)[e.position]||(L.get(n)[e.position]=[]);const o=L.get(n)[e.position];let a=e.offset||20;o.forEach(C=>{var c;a+=((c=C.el)==null?void 0:c.offsetHeight)+20});const r=n.tagName==="BODY";r||(n.style.position="relative",n.style.overflowX="hidden");const f=e.onClose,s=()=>{var i;const C=o.findIndex(d=>d===u);if(C<0)return;const c=((i=u.el)==null?void 0:i.offsetHeight)+20;o.slice(C+1).forEach(d=>{var h;const g=(h=d.component)==null?void 0:h.props.offset;d.component.props.offset=g-c}),o.splice(C,1),f&&f(u)},m=()=>{t.render(null,l)},u=t.createVNode(yt,{message:e.message,title:e.title,type:e.type,offset:a,renderToBody:r,position:e.position,duration:e.duration??3e3,showClose:e.showClose??!0,onClose:s,onDestroy:m},p(e.message)||t.isVNode(e.message)?{default:p(e.message)?e.message:()=>e.message}:null);t.render(u,l),o.push(u),n==null||n.appendChild(l.firstChild)};k.Dialog=qe,k.Message=H,k.MessageBox=J,k.Notification=gt,Object.defineProperty(k,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,66 +1,53 @@
1
1
  {
2
- "author": {
3
- "email": "xy@ztes.com",
4
- "name": "XuYu"
5
- },
6
- "license": "MIT",
7
- "engines": {
8
- "node": ">=10.16.0"
2
+ "name": "x-next",
3
+ "private": false,
4
+ "version": "0.0.0-alpha.4",
5
+ "description": "An amazing Vue3 UI library.",
6
+ "type": "module",
7
+ "main": "dist/index.umd.js",
8
+ "module": "dist/index.es.js",
9
+ "types": "dist/ui.d.ts",
10
+ "scripts": {
11
+ "dev": "vite",
12
+ "build": "vue-tsc && vite build",
13
+ "preview": "vite preview",
14
+ "publish": "npm publish --access=public"
9
15
  },
10
16
  "repository": {
11
17
  "type": "git",
12
- "url": "https://github.com/ztes/x-next.git"
18
+ "url": "git+https://github.com/ztes/x-next.git"
13
19
  },
14
20
  "bugs": {
15
21
  "url": "https://github.com/ztes/x-next/issues"
16
22
  },
17
- "private": false,
18
- "name": "x-next",
19
- "version": "0.0.0-alpha.2",
23
+ "dependencies": {
24
+ "dayjs": "^1.11.11",
25
+ "vue": "^3.5.12"
26
+ },
27
+ "devDependencies": {
28
+ "@types/node": "^20.12.7",
29
+ "@vitejs/plugin-vue": "^5.0.4",
30
+ "@vitejs/plugin-vue-jsx": "^4.0.1",
31
+ "sass": "^1.80.3",
32
+ "typescript": "^5.2.2",
33
+ "vite": "^5.2.0",
34
+ "vite-plugin-dts": "^4.3.0",
35
+ "vue-tsc": "^2.0.6"
36
+ },
20
37
  "publishConfig": {
21
38
  "access": "public"
22
39
  },
23
- "description": "A simple Vue 3 UI component. ",
24
40
  "keywords": [
25
41
  "vue",
26
42
  "vue 3",
27
43
  "component"
28
44
  ],
29
- "main": "dist/ui.umd.js",
30
- "module": "dist/ui.es.js",
31
- "types": "./dist/types/ui.d.ts",
32
- "files": [
33
- "dist"
34
- ],
35
- "scripts": {
36
- "dev": "vite",
37
- "dev:docs": "vitepress dev docs",
38
- "build:component": "vite build",
39
- "build:docs": "vitepress build docs",
40
- "preview:docs": "vitepress preview docs",
41
- "format": "prettier -w ."
42
- },
43
- "devDependencies": {
44
- "@babel/types": "^7.22.4",
45
- "@types/node": "^20.2.5",
46
- "@vitejs/plugin-vue": "^4.2.3",
47
- "@vitejs/plugin-vue-jsx": "^4.0.1",
48
- "@vue/compiler-sfc": "^3.5.12",
49
- "prettier": "^2.8.8",
50
- "sass": "^1.80.3",
51
- "sass-loader": "^16.0.2",
52
- "typescript": "^5.4.5",
53
- "vite": "^5.2.13",
54
- "vite-plugin-css-injected-by-js": "^3.1.1",
55
- "vite-plugin-dts": "^2.3.0",
56
- "vitepress": "^1.4.1",
57
- "vue": "^3.5.12"
58
- },
59
- "peerDependencies": {
60
- "vue": "^3.0.0"
45
+ "author": {
46
+ "email": "xy@ztes.com",
47
+ "name": "XuYu"
61
48
  },
62
- "dependencies": {
63
- "date-fns": "^2.22.1",
64
- "dayjs": "^1.11.13"
65
- }
49
+ "license": "MIT",
50
+ "files": [
51
+ "x-next"
52
+ ]
66
53
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Ilia Borovitinov
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/dist/favicon.ico DELETED
Binary file
package/dist/index.d.ts DELETED
File without changes
@@ -1,5 +0,0 @@
1
- import { type Ref } from 'vue';
2
- export declare const useOverflow: (containerRef: Ref<HTMLElement | undefined>, targetRef?: Ref<HTMLElement | undefined>) => {
3
- setOverflowHidden: () => void;
4
- resetOverflow: () => void;
5
- };
@@ -1,11 +0,0 @@
1
- import type { Ref } from 'vue';
2
- export type PopupType = 'popup' | 'dialog' | 'message';
3
- export default function usePopupManager(type: PopupType, { visible, runOnMounted, }?: {
4
- visible?: Ref<boolean>;
5
- runOnMounted?: boolean;
6
- }): {
7
- zIndex: Readonly<Ref<number, number>>;
8
- open: () => void;
9
- close: () => void;
10
- isLastDialog: () => boolean;
11
- };
@@ -1,13 +0,0 @@
1
- type NamedColor = 'aliceblue' | 'antiquewhite' | 'aqua' | 'aquamarine' | 'azure' | 'beige' | 'bisque' | 'black' | 'blanchedalmond' | 'blue' | 'blueviolet' | 'brown' | 'burlywood' | 'cadetblue' | 'chartreuse' | 'chocolate' | 'coral' | 'cornflowerblue' | 'cornsilk' | 'crimson' | 'cyan' | 'darkblue' | 'darkcyan' | 'darkgoldenrod' | 'darkgray' | 'darkgreen' | 'darkgrey' | 'darkkhaki' | 'darkmagenta' | 'darkolivegreen' | 'darkorange' | 'darkorchid' | 'darkred' | 'darksalmon' | 'darkseagreen' | 'darkslateblue' | 'darkslategray' | 'darkslategrey' | 'darkturquoise' | 'darkviolet' | 'deeppink' | 'deepskyblue' | 'dimgray' | 'dimgrey' | 'dodgerblue' | 'firebrick' | 'floralwhite' | 'forestgreen' | 'fuchsia' | 'gainsboro' | 'ghostwhite' | 'gold' | 'goldenrod' | 'gray' | 'green' | 'greenyellow' | 'grey' | 'honeydew' | 'hotpink' | 'indianred' | 'indigo' | 'ivory' | 'khaki' | 'lavender' | 'lavenderblush' | 'lawngreen' | 'lemonchiffon' | 'lightblue' | 'lightcoral' | 'lightcyan' | 'lightgoldenrodyellow' | 'lightgray' | 'lightgreen' | 'lightgrey' | 'lightpink' | 'lightsalmon' | 'lightseagreen' | 'lightskyblue' | 'lightslategray' | 'lightslategrey' | 'lightsteelblue' | 'lightyellow' | 'lime' | 'limegreen' | 'linen' | 'magenta' | 'maroon' | 'mediumaquamarine' | 'mediumblue' | 'mediumorchid' | 'mediumpurple' | 'mediumseagreen' | 'mediumslateblue' | 'mediumspringgreen' | 'mediumturquoise' | 'mediumvioletred' | 'midnightblue' | 'mintcream' | 'mistyrose' | 'moccasin' | 'navajowhite' | 'navy' | 'oldlace' | 'olive' | 'olivedrab' | 'orange' | 'orangered' | 'orchid' | 'palegoldenrod' | 'palegreen' | 'paleturquoise' | 'palevioletred' | 'papayawhip' | 'peachpuff' | 'peru' | 'pink' | 'plum' | 'powderblue' | 'purple' | 'red' | 'rosybrown' | 'royalblue' | 'saddlebrown' | 'salmon' | 'sandybrown' | 'seagreen' | 'seashell' | 'sienna' | 'silver' | 'skyblue' | 'slateblue' | 'slategray' | 'slategrey' | 'snow' | 'springgreen' | 'steelblue' | 'tan' | 'teal' | 'thistle' | 'tomato' | 'turquoise' | 'violet' | 'wheat' | 'white' | 'whitesmoke' | 'yellow' | 'yellowgreen';
2
- type HexColor = `#${string}`;
3
- type RgbColor = `rgb(${number}, ${number}, ${number})`;
4
- type RgbaColor = `rgba(${number}, ${number}, ${number}, ${number})`;
5
- type HslColor = `hsl(${number}, ${number}%, ${number}%)`;
6
- type HslaColor = `hsla(${number}, ${number}%, ${number}%, ${number})`;
7
- export type CSSColor = NamedColor | HexColor | RgbColor | RgbaColor | HslColor | HslaColor;
8
- type CSSUnit = 'px' | 'em' | 'rem' | 'vw' | 'vh' | 'vmin' | 'vmax' | '%' | 'pt' | 'cm' | 'mm' | 'in' | 'pc' | 'ex' | 'ch';
9
- export type LengthValue = `${number}${CSSUnit}`;
10
- type GlobalValues = 'auto' | 'inherit' | 'initial' | 'unset';
11
- type PaddingMarginValue = LengthValue | `${number}` | GlobalValues;
12
- export type PaddingMargin = PaddingMarginValue | [PaddingMarginValue, PaddingMarginValue] | [PaddingMarginValue, PaddingMarginValue, PaddingMarginValue] | [PaddingMarginValue, PaddingMarginValue, PaddingMarginValue, PaddingMarginValue];
13
- export {};
@@ -1 +0,0 @@
1
- export type ComponentSize = 'mini' | 'small' | 'medium' | 'large';
@@ -1,9 +0,0 @@
1
- export declare const COMPONENT_INSTALLED_KEY: unique symbol;
2
- export declare const getClassPrefix: (name?: string) => string;
3
- export declare const getComponentPrefix: (name: string) => string;
4
- export declare const getClassNameMixin: (name: string) => {
5
- block: string;
6
- element: (className: string) => string;
7
- modifier: (className: string) => string;
8
- is: (className: string) => string;
9
- };
@@ -1,3 +0,0 @@
1
- export declare const toKebabCase: (string: string) => string;
2
- export declare const toPascalCase: (string: string) => string;
3
- export declare const toCamelCase: (string: string) => string;
@@ -1,10 +0,0 @@
1
- import type { CSSProperties } from 'vue';
2
- export declare const NOOP: () => void;
3
- export declare const querySelector: (selectors: string, container?: Document | HTMLElement) => HTMLElement | undefined;
4
- export declare const getScrollBarWidth: (element: HTMLElement) => number;
5
- export declare const isScroll: (element: HTMLElement) => boolean;
6
- export declare const getStyle: (element: HTMLElement, styleName: keyof CSSProperties) => string;
7
- export declare const setStyle: (element: HTMLElement, styleName: CSSProperties | keyof CSSProperties, value?: string | number) => void;
8
- export declare const getElement: (target: string | HTMLElement | undefined, container?: Document | HTMLElement) => HTMLElement | undefined;
9
- export declare const on: <K extends keyof HTMLElementEventMap>(element: HTMLElement | Window, event: K, handler: (ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void;
10
- export declare const off: <K extends keyof HTMLElementEventMap>(element: HTMLElement | Window, type: K, handler: (ev: HTMLElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void;
@@ -1,12 +0,0 @@
1
- export declare const getProp: (target: any, path: any, defVal?: any) => any;
2
- export declare const setProp: (target: any, path: any, value: any) => any;
3
- export declare const deepClone: (obj: any, set?: any) => any;
4
- export declare const NOOP: () => void;
5
- export declare const addUnit: (value: string | number | undefined, unit?: string) => string;
6
- export declare const upperFirstChar: (text: string) => string | undefined;
7
- export declare const compose: <T>(...fns: ((...v: T[]) => T)[]) => (...v: T[]) => T;
8
- export declare const pipe: <T>(...fns: ((...v: T[]) => T)[]) => (...v: T[]) => T;
9
- export declare const findLastIndex: (arr: never[] | undefined, callback: (item: any, i: number, origin: any[]) => boolean) => number;
10
- export declare const getUniqueId: (size?: number) => string;
11
- export declare const genMatrix: (list: any[], row: number) => any[];
12
- export declare const sleep: (delay?: number) => Promise<unknown>;
@@ -1,59 +0,0 @@
1
- /**
2
- * 首字母大写及-符号仅跟的字母大写
3
- * @param str
4
- */
5
- export declare const toPascalCase: (str: string) => string;
6
- export declare function createIconComponent(name: string): import("vue").DefineComponent<import("vue").ExtractPropTypes<{
7
- size: {
8
- type: (StringConstructor | NumberConstructor)[];
9
- default: undefined;
10
- };
11
- rotate: {
12
- type: NumberConstructor;
13
- default: undefined;
14
- };
15
- spin: {
16
- type: BooleanConstructor;
17
- default: boolean;
18
- };
19
- color: {
20
- type: StringConstructor;
21
- default: undefined;
22
- };
23
- fillColor: {
24
- type: ArrayConstructor;
25
- default: undefined;
26
- };
27
- }>, {
28
- cls: import("vue").ComputedRef<(string | {
29
- [x: string]: boolean;
30
- })[]>;
31
- styles: import("vue").ComputedRef<import("vue").CSSProperties>;
32
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
- size: {
34
- type: (StringConstructor | NumberConstructor)[];
35
- default: undefined;
36
- };
37
- rotate: {
38
- type: NumberConstructor;
39
- default: undefined;
40
- };
41
- spin: {
42
- type: BooleanConstructor;
43
- default: boolean;
44
- };
45
- color: {
46
- type: StringConstructor;
47
- default: undefined;
48
- };
49
- fillColor: {
50
- type: ArrayConstructor;
51
- default: undefined;
52
- };
53
- }>> & Readonly<{}>, {
54
- color: string;
55
- rotate: number;
56
- size: string | number;
57
- spin: boolean;
58
- fillColor: unknown[];
59
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -1,25 +0,0 @@
1
- import type { ComponentPublicInstance, VNodeNormalizedChildren } from 'vue';
2
- import { Dayjs } from 'dayjs';
3
- import { VNode } from 'vue';
4
- export declare function isArray(obj: any): obj is any[];
5
- export declare function isNull(obj: any): obj is null;
6
- export declare function isBoolean(obj: unknown): obj is boolean;
7
- export declare function isObject<T>(obj: T): obj is Extract<T, Record<string, any>>;
8
- export declare const isPromise: <T>(obj: unknown) => obj is Promise<T>;
9
- export declare function isString(obj: any): obj is string;
10
- export declare function isNumber(obj: any): obj is number;
11
- export declare function isRegExp(obj: any): boolean;
12
- export declare function isDate(obj: any): boolean;
13
- export declare function isColor(color: any): boolean;
14
- export declare function isUndefined(obj: any): obj is undefined;
15
- export declare function isFunction(obj: any): obj is (...args: any[]) => any;
16
- export declare function isEmptyObject(obj: any): boolean;
17
- export declare function isExist(obj: any): boolean;
18
- export declare function isWindow(el: any): el is Window;
19
- export declare const isComponentInstance: (value: any) => value is ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, import("vue").ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, import("vue").ComponentProvideOptions>, {}, {}, "", {}, any>;
20
- export declare const isArrayChildren: (children: VNodeNormalizedChildren) => children is VNode<import("vue").RendererNode, import("vue").RendererElement, {
21
- [key: string]: any;
22
- }>[];
23
- export declare const isQuarter: (fromat: string) => boolean;
24
- export declare function isDayjs(time: any): time is Dayjs;
25
- export declare function isClient(): boolean;
@@ -1,24 +0,0 @@
1
- export declare const KEYBOARD_KEY: {
2
- ENTER: string;
3
- ESC: string;
4
- BACKSPACE: string;
5
- TAB: string;
6
- SPACE: string;
7
- ARROW_UP: string;
8
- ARROW_DOWN: string;
9
- ARROW_LEFT: string;
10
- ARROW_RIGHT: string;
11
- };
12
- export interface CodeKey {
13
- /** Keyboard key */
14
- key: string;
15
- /** Ctrl / ⌃ */
16
- ctrl?: boolean;
17
- /** Shift key */
18
- shift?: boolean;
19
- /** Alt / ⌥ */
20
- alt?: boolean;
21
- /** meta ⌘ / ⊞ */
22
- meta?: boolean;
23
- }
24
- export declare const getKeyDownHandler: (codeKeyMap: Map<string | CodeKey, (e: Event) => void>) => (event: KeyboardEvent) => void;
File without changes
@@ -1,32 +0,0 @@
1
- import type { VNodeTypes, VNode, PropType, Component, Plugin } from 'vue';
2
- export type SFCWithInstall<T> = T & Plugin;
3
- /**
4
- * @description Vue生态操作封装
5
- */
6
- export declare const definePropType: <T>(val: unknown) => PropType<T>;
7
- export declare enum ShapeFlags {
8
- ELEMENT = 1,
9
- FUNCTIONAL_COMPONENT = 2,
10
- STATEFUL_COMPONENT = 4,
11
- COMPONENT = 6,
12
- TEXT_CHILDREN = 8,
13
- ARRAY_CHILDREN = 16,
14
- SLOTS_CHILDREN = 32,
15
- TELEPORT = 64,
16
- SUSPENSE = 128,
17
- COMPONENT_SHOULD_KEEP_ALIVE = 256,
18
- COMPONENT_KEPT_ALIVE = 512
19
- }
20
- export declare const isElement: (vn: VNode) => boolean;
21
- export declare const isComponent: (vn: VNode, type?: VNodeTypes) => type is Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any>;
22
- export declare const isTextChildren: (child: VNode, children: VNode['children']) => children is string;
23
- export declare const isArrayChildren: (vn: VNode, children: VNode['children']) => children is VNode<import("vue").RendererNode, import("vue").RendererElement, {
24
- [key: string]: any;
25
- }>[];
26
- export declare const isSlotsChildren: (vn: VNode, children: VNode['children']) => children is Readonly<{
27
- [name: string]: import("vue").Slot<any> | undefined;
28
- }>;
29
- export declare const getAllElements: (children: VNode[] | undefined, includeText?: boolean) => VNode<import("vue").RendererNode, import("vue").RendererElement, {
30
- [key: string]: any;
31
- }>[];
32
- export declare const withInstall: <T, E extends Record<string, any>>(main: T, extra?: E | undefined) => SFCWithInstall<T> & E;