@thestarweb/ui 1.7.1 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.js +7 -0
  2. package/dist/components/base/button/button.vue.js +5 -0
  3. package/dist/components/base/button/button.vue_vue_type_script_setup_true_lang.js +35 -0
  4. package/dist/components/data/card/card.vue.js +5 -0
  5. package/dist/components/data/card/card.vue_vue_type_script_setup_true_lang.js +50 -0
  6. package/dist/components/data/pagination/pagination.vue.js +5 -0
  7. package/dist/components/data/pagination/pagination.vue_vue_type_script_setup_true_lang.js +101 -0
  8. package/dist/components/data/popover/popover.vue.js +5 -0
  9. package/dist/components/data/popover/popover.vue_vue_type_script_setup_true_lang.js +122 -0
  10. package/dist/components/data/popover/utils.js +68 -0
  11. package/dist/components/data/table/table.vue.js +5 -0
  12. package/dist/components/data/table/table.vue_vue_type_script_setup_true_lang.js +45 -0
  13. package/dist/components/data/tag/tag.vue.js +5 -0
  14. package/dist/components/data/tag/tag.vue_vue_type_script_setup_true_lang.js +21 -0
  15. package/dist/components/data/tree/tree-item.vue.js +5 -0
  16. package/dist/components/data/tree/tree-item.vue_vue_type_script_setup_true_lang.js +75 -0
  17. package/dist/components/data/tree/tree-raw.vue.js +5 -0
  18. package/dist/components/data/tree/tree-raw.vue_vue_type_script_setup_true_lang.js +104 -0
  19. package/dist/components/data/tree/tree.vue.js +4 -0
  20. package/dist/components/data/tree/tree.vue_vue_type_script_setup_true_lang.js +60 -0
  21. package/dist/components/data/tree/utils.js +66 -0
  22. package/dist/components/form/checkbox/checkbox.vue.js +5 -0
  23. package/dist/components/form/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +50 -0
  24. package/dist/components/form/input/input.vue.js +5 -0
  25. package/dist/components/form/input/input.vue_vue_type_script_setup_true_lang.js +34 -0
  26. package/dist/components/form/select/select.vue.js +5 -0
  27. package/dist/components/form/select/select.vue_vue_type_script_setup_true_lang.js +146 -0
  28. package/dist/components/form/slider/slider.vue.js +5 -0
  29. package/dist/components/form/slider/slider.vue_vue_type_script_setup_true_lang.js +67 -0
  30. package/dist/components/form/switch/switch.vue.js +5 -0
  31. package/dist/components/form/switch/switch.vue_vue_type_script_setup_true_lang.js +38 -0
  32. package/dist/components/layout/layout/index.js +9 -0
  33. package/dist/components/layout/layout/layout-dividing.vue.js +10 -0
  34. package/dist/components/layout/layout/layout-main.vue.js +10 -0
  35. package/dist/components/layout/layout/layout.vue.js +5 -0
  36. package/dist/components/layout/layout/layout.vue_vue_type_script_setup_true_lang.js +14 -0
  37. package/dist/components/layout/page/Page.vue.js +5 -0
  38. package/dist/components/layout/page/Page.vue_vue_type_script_setup_true_lang.js +60 -0
  39. package/dist/components/other/calendar/calendar.vue.js +5 -0
  40. package/dist/components/other/calendar/calendar.vue_vue_type_script_setup_true_lang.js +103 -0
  41. package/dist/components/other/menu/index.vue.js +5 -0
  42. package/dist/components/other/menu/index.vue_vue_type_script_setup_true_lang.js +22 -0
  43. package/dist/components/other/menu/menu-h/index.vue.js +5 -0
  44. package/dist/components/other/menu/menu-h/index.vue_vue_type_script_setup_true_lang.js +22 -0
  45. package/dist/components/other/menu/menu-h/menu-h-item.vue.js +5 -0
  46. package/dist/components/other/menu/menu-h/menu-h-item.vue_vue_type_script_setup_true_lang.js +30 -0
  47. package/dist/components/other/menu/menu-v/index.vue.js +4 -0
  48. package/dist/components/other/menu/menu-v/index.vue_vue_type_script_setup_true_lang.js +32 -0
  49. package/dist/context/is-mobile.js +10 -0
  50. package/dist/icons/arrow-down.svg_component.js +12 -0
  51. package/dist/icons/arrow-right.svg_component.js +12 -0
  52. package/dist/icons/home.svg_component.js +12 -0
  53. package/dist/icons/menu.svg_component.js +12 -0
  54. package/dist/index.js +19 -0
  55. package/dist/style.css +2 -0
  56. package/dist/utils/index.js +9 -0
  57. package/dist/utils/z-index.js +6 -0
  58. package/package.json +38 -81
  59. package/types/src/components/base/button/button.vue.d.ts +22 -0
  60. package/types/src/components/base/button/example/base.vue.d.ts +3 -0
  61. package/types/src/components/base/button/index.d.ts +1 -0
  62. package/types/src/components/base/index.d.ts +1 -0
  63. package/types/src/components/data/card/card.vue.d.ts +32 -0
  64. package/types/src/components/data/card/index.d.ts +1 -0
  65. package/types/src/components/data/index.d.ts +6 -0
  66. package/types/src/components/data/pagination/example/base.vue.d.ts +3 -0
  67. package/types/src/components/data/pagination/index.d.ts +1 -0
  68. package/types/src/components/data/pagination/pagination.vue.d.ts +21 -0
  69. package/types/src/components/data/popover/example/base.vue.d.ts +3 -0
  70. package/types/src/components/data/popover/index.d.ts +1 -0
  71. package/types/src/components/data/popover/popover.vue.d.ts +39 -0
  72. package/types/src/components/data/popover/type.d.ts +1 -0
  73. package/types/src/components/data/popover/utils.d.ts +12 -0
  74. package/types/src/components/data/table/example/base.vue.d.ts +3 -0
  75. package/types/src/components/data/table/example/render.vue.d.ts +3 -0
  76. package/types/src/components/data/table/index.d.ts +2 -0
  77. package/types/src/components/data/table/table.vue.d.ts +36 -0
  78. package/types/src/components/data/table/types.d.ts +12 -0
  79. package/types/src/components/data/tag/example/base.vue.d.ts +3 -0
  80. package/types/src/components/data/tag/index.d.ts +1 -0
  81. package/types/src/components/data/tag/tag.vue.d.ts +20 -0
  82. package/types/src/components/data/tree/example/base.vue.d.ts +3 -0
  83. package/types/src/components/data/tree/index.d.ts +2 -0
  84. package/types/src/components/data/tree/tree-item.vue.d.ts +36 -0
  85. package/types/src/components/data/tree/tree-raw.vue.d.ts +47 -0
  86. package/types/src/components/data/tree/tree.vue.d.ts +34 -0
  87. package/types/src/components/data/tree/type.d.ts +40 -0
  88. package/types/src/components/data/tree/utils.d.ts +10 -0
  89. package/types/src/components/form/checkbox/checkbox.vue.d.ts +32 -0
  90. package/types/src/components/form/checkbox/example/base.vue.d.ts +3 -0
  91. package/types/src/components/form/checkbox/example/group.vue.d.ts +3 -0
  92. package/types/src/components/form/checkbox/index.d.ts +1 -0
  93. package/types/src/components/form/index.d.ts +5 -0
  94. package/types/src/components/form/input/example/base.vue.d.ts +3 -0
  95. package/types/src/components/form/input/index.d.ts +1 -0
  96. package/types/src/components/form/input/input.vue.d.ts +17 -0
  97. package/types/src/components/form/select/example/base.vue.d.ts +3 -0
  98. package/types/src/components/form/select/example/tree-select.vue.d.ts +3 -0
  99. package/types/src/components/form/select/index.d.ts +2 -0
  100. package/types/src/components/form/select/select.vue.d.ts +25 -0
  101. package/types/src/components/form/select/types.d.ts +25 -0
  102. package/types/src/components/form/slider/example/base.vue.d.ts +3 -0
  103. package/types/src/components/form/slider/index.d.ts +1 -0
  104. package/types/src/components/form/slider/slider.vue.d.ts +19 -0
  105. package/types/src/components/form/switch/example/base.vue.d.ts +3 -0
  106. package/types/src/components/form/switch/index.d.ts +1 -0
  107. package/types/src/components/form/switch/switch.vue.d.ts +17 -0
  108. package/types/src/components/index.d.ts +5 -0
  109. package/types/src/components/layout/index.d.ts +2 -0
  110. package/types/src/components/layout/layout/index.d.ts +42 -0
  111. package/types/src/components/layout/layout/layout-dividing.vue.d.ts +3 -0
  112. package/types/src/components/layout/layout/layout-main.vue.d.ts +15 -0
  113. package/types/src/components/layout/layout/layout.vue.d.ts +18 -0
  114. package/types/src/components/layout/page/Page.vue.d.ts +39 -0
  115. package/types/src/components/layout/page/index.d.ts +1 -0
  116. package/types/src/components/other/calendar/calendar.vue.d.ts +41 -0
  117. package/types/src/components/other/calendar/index.d.ts +1 -0
  118. package/types/src/components/other/index.d.ts +2 -0
  119. package/types/src/components/other/menu/index.d.ts +2 -0
  120. package/types/src/components/other/menu/index.vue.d.ts +46 -0
  121. package/types/src/components/other/menu/menu-h/index.vue.d.ts +19 -0
  122. package/types/src/components/other/menu/menu-h/menu-h-item.vue.d.ts +27 -0
  123. package/types/src/components/other/menu/menu-v/index.vue.d.ts +24 -0
  124. package/types/src/components/other/menu/types.d.ts +6 -0
  125. package/types/src/components/other/view-control/index.d.ts +1 -0
  126. package/types/src/components/other/view-control/view-control.vue.d.ts +20 -0
  127. package/types/src/context/index.d.ts +1 -0
  128. package/types/src/context/is-mobile.d.ts +4 -0
  129. package/types/src/icons/index.d.ts +4 -0
  130. package/types/src/index.d.ts +3 -0
  131. package/types/src/types.d.ts +2 -0
  132. package/types/src/utils/index.d.ts +6 -0
  133. package/types/src/utils/z-index.d.ts +1 -0
  134. package/types/vite.config.d.ts +2 -0
  135. package/build-ts/main.js +0 -63
  136. package/dist/demo.html +0 -8
  137. package/dist/star-ui.common.js +0 -33776
  138. package/dist/star-ui.common.js.map +0 -1
  139. package/dist/star-ui.umd.js +0 -33786
  140. package/dist/star-ui.umd.js.map +0 -1
  141. package/dist/star-ui.umd.min.js +0 -299
  142. package/dist/star-ui.umd.min.js.map +0 -1
  143. package/readme.md +0 -16
  144. package/src/components/button.vue +0 -34
  145. package/src/components/calendar.vue +0 -244
  146. package/src/components/call-render.tsx +0 -22
  147. package/src/components/card.vue +0 -126
  148. package/src/components/common/base-popper.vue +0 -132
  149. package/src/components/content/context-menu-box/index.vue +0 -117
  150. package/src/components/content/index.ts +0 -5
  151. package/src/components/content/menu/index.vue +0 -86
  152. package/src/components/content/menu/menu-h/index.vue +0 -68
  153. package/src/components/content/menu/menu-h/menu-h-child.vue +0 -74
  154. package/src/components/content/menu/menu-h/menu-h-item.vue +0 -66
  155. package/src/components/content/menu/menu-v/index.vue +0 -56
  156. package/src/components/content/modals/confirm.vue +0 -45
  157. package/src/components/content/modals/modal.vue +0 -110
  158. package/src/components/content/page.vue +0 -134
  159. package/src/components/form/form/form-item.vue +0 -116
  160. package/src/components/form/form/form.vue +0 -109
  161. package/src/components/form/form/index.ts +0 -2
  162. package/src/components/form/index.ts +0 -1
  163. package/src/components/input.vue +0 -89
  164. package/src/components/layout/auto-direction/index.vue +0 -28
  165. package/src/components/layout/index.ts +0 -1
  166. package/src/components/layout-h.vue +0 -34
  167. package/src/components/layout-main.vue +0 -25
  168. package/src/components/layout-v.vue +0 -36
  169. package/src/components/line-h.vue +0 -29
  170. package/src/components/line-v.vue +0 -29
  171. package/src/components/select.vue +0 -265
  172. package/src/components/slider.vue +0 -171
  173. package/src/components/switch.vue +0 -95
  174. package/src/components/table.vue +0 -59
  175. package/src/components/tree/index.vue +0 -116
  176. package/src/components/tree/tree-item.vue +0 -157
  177. package/src/components/view-control.vue +0 -83
  178. package/src/directives/is-focus.ts +0 -10
  179. package/src/func/download.ts +0 -15
  180. package/src/func/index.ts +0 -2
  181. package/src/func/modal/index.ts +0 -72
  182. package/src/global-style.css +0 -127
  183. package/src/icon-font/iconfont.css +0 -75
  184. package/src/icon-font/iconfont.eot +0 -0
  185. package/src/icon-font/iconfont.json +0 -114
  186. package/src/icon-font/iconfont.svg +0 -62
  187. package/src/icon-font/iconfont.ttf +0 -0
  188. package/src/icon-font/iconfont.woff +0 -0
  189. package/src/icon-font/iconfont.woff2 +0 -0
  190. package/src/main.ts +0 -57
  191. package/src/outher/index.ts +0 -8
  192. package/src/reg.ts +0 -129
  193. package/src/shims-vue.d.ts +0 -8
  194. package/src/types.d.ts +0 -15
  195. package/src/utils.ts +0 -24
  196. package/types/components/button.vue.d.ts +0 -5
  197. package/types/components/calendar.vue.d.ts +0 -26
  198. package/types/components/call-render.d.ts +0 -6
  199. package/types/components/card.vue.d.ts +0 -13
  200. package/types/components/common/base-popper.vue.d.ts +0 -21
  201. package/types/components/content/context-menu-box/index.vue.d.ts +0 -20
  202. package/types/components/content/index.d.ts +0 -5
  203. package/types/components/content/menu/index.vue.d.ts +0 -12
  204. package/types/components/content/menu/menu-h/index.vue.d.ts +0 -8
  205. package/types/components/content/menu/menu-h/menu-h-child.vue.d.ts +0 -7
  206. package/types/components/content/menu/menu-h/menu-h-item.vue.d.ts +0 -8
  207. package/types/components/content/menu/menu-v/index.vue.d.ts +0 -9
  208. package/types/components/content/modals/confirm.vue.d.ts +0 -7
  209. package/types/components/content/modals/modal.vue.d.ts +0 -12
  210. package/types/components/content/page.vue.d.ts +0 -9
  211. package/types/components/form/form/form-item.vue.d.ts +0 -22
  212. package/types/components/form/form/form.vue.d.ts +0 -24
  213. package/types/components/form/form/index.d.ts +0 -2
  214. package/types/components/form/index.d.ts +0 -1
  215. package/types/components/input.vue.d.ts +0 -17
  216. package/types/components/layout/auto-direction/index.vue.d.ts +0 -4
  217. package/types/components/layout/index.d.ts +0 -1
  218. package/types/components/layout-h.vue.d.ts +0 -4
  219. package/types/components/layout-main.vue.d.ts +0 -4
  220. package/types/components/layout-v.vue.d.ts +0 -4
  221. package/types/components/line-h.vue.d.ts +0 -4
  222. package/types/components/line-v.vue.d.ts +0 -4
  223. package/types/components/select.vue.d.ts +0 -26
  224. package/types/components/slider.vue.d.ts +0 -29
  225. package/types/components/switch.vue.d.ts +0 -12
  226. package/types/components/table.vue.d.ts +0 -5
  227. package/types/components/tree/index.vue.d.ts +0 -15
  228. package/types/components/tree/tree-item.vue.d.ts +0 -18
  229. package/types/components/view-control.vue.d.ts +0 -16
  230. package/types/directives/is-focus.d.ts +0 -4
  231. package/types/func/download.d.ts +0 -1
  232. package/types/func/index.d.ts +0 -2
  233. package/types/func/modal/index.d.ts +0 -13
  234. package/types/main.d.ts +0 -75
  235. package/types/outher/index.d.ts +0 -5
  236. package/types/reg.d.ts +0 -45
package/readme.md DELETED
@@ -1,16 +0,0 @@
1
- # star-ui
2
- [website](https://ui.thestarweb.cn)
3
- | ![workflows](https://github.com/thestarweb/star-ui/workflows/build/badge.svg)
4
- | ![npm](https://img.shields.io/npm/v/@thestarweb/ui.svg)
5
-
6
- ```
7
- npm i @thestarweb/ui
8
- ```
9
-
10
- ```typescript
11
- import { createApp } from "vue"
12
- import App from "./App.vue"
13
- import StarUi from "@thestarweb/ui";
14
-
15
- createApp(App).use(StarUi).mount('#app');
16
- ```
@@ -1,34 +0,0 @@
1
- <template>
2
- <button :class="['star-ui', 'su-container', 'star-ui-container', 'star-ui-button', 'star-ui-size-'+size]">
3
- <slot></slot>
4
- </button>
5
- </template>
6
-
7
- <script lang="ts">
8
- import { Vue } from "vue-class-component";
9
- import { Register, Prop } from "@ui-root/reg";
10
-
11
- import "../global-style.css";
12
-
13
- @Register({
14
- name:"su-button"
15
- })
16
- export default class SuButton extends Vue {
17
- @Prop({
18
- type:String,
19
- default:()=>{
20
- return "medium"
21
- }
22
- })
23
- size!:string;
24
- }
25
- </script>
26
-
27
- <style>
28
- .star-ui-button{
29
- border-width: 1px;
30
- cursor: pointer;
31
- background: var(--star-ui-backgorund-color);
32
- color: var(--star-ui-font-color);
33
- }
34
- </style>
@@ -1,244 +0,0 @@
1
- <template>
2
- <div class="star-ui su-calendar star-ui-calendar">
3
- <div class="star-ui-calendar--ctrl" :style="{opacity: showSelYear||showSelMonth?0:1}">
4
- <div @click="dYear--">&lt;&lt;</div>
5
- <div @click="dMonth--">&lt;</div>
6
- <div class="star-ui-calendar--display-month">
7
- <span @click="showSelYear=true">{{displayMonthDate.format("YYYY")}}</span>
8
- -
9
- <span @click="showSelMonth=true">{{displayMonthDate.format("MM")}}</span>
10
- </div>
11
- <div @click="dMonth++">&gt;</div>
12
- <div @click="dYear++">&gt;&gt;</div>
13
- </div>
14
- <table cellspacing="0" cellpadding="0" :style="{opacity: showSelYear||showSelMonth?0:1}">
15
- <tr class="star-ui-calendar--inner-head">
16
- <th :class="`star-ui-calendar--${item.week}`" v-for="(item,index) in displayHead" :key="index">{{item.display}}</th>
17
- </tr>
18
- <tr v-for="(row,index) in displayData" :key="index">
19
- <td v-for="(day,index) in row" :key="index" :class="['star-ui-calendar--inner-cell',`star-ui-calendar--${day.week}`,{'star-ui-calendar--previous':day.isPrevious,'star-ui-calendar--next':day.isNext}]" @clcik="dateClick(day)">
20
-
21
- <slot v-if="$slots['default']" v-bind="day" />
22
- <vnodes v-else-if="renderCell" :func="renderCell" :args="[day]" />
23
- <template v-else>{{day.display}}</template>
24
- </td>
25
- </tr>
26
- </table>
27
- <div v-if="showSelYear" class="star-ui-calendar--select">
28
- <div class="star-ui-calendar--select-ctrl">
29
- <div @click="dShowSelYear--">&lt;&lt;</div>
30
- <div></div>
31
- <div @click="dShowSelYear++">&gt;&gt;</div>
32
- </div>
33
- <div class="star-ui-calendar--select-body">
34
- <div v-for="i in 12" :key="i" :class="{'now-sel':i==6&&dShowSelYear==0}" @click="dYear+=i-6+dShowSelYear*12;showSelYear=false;dShowSelYear=0;">
35
- {{displayMonthDate.year()+i-6+dShowSelYear*12}}
36
- </div>
37
- </div>
38
- </div>
39
- <div v-if="showSelMonth" class="star-ui-calendar--select">
40
- <!-- <div class="star-ui-calendar--select-ctrl">
41
- <div @click="dShowSelYear--">&lt;&lt;</div>
42
- <div></div>
43
- <div @click="dShowSelYear++">&gt;&gt;</div>
44
- </div> -->
45
- <div class="star-ui-calendar--select-body">
46
- <div v-for="i in 12" :key="i" :class="{'now-sel':i==6&&dShowSelYear==0}" @click="showSelMonth=false;dShowSelYear=0;">
47
- {{i}}
48
- </div>
49
- </div>
50
- </div>
51
- </div>
52
- </template>
53
-
54
- <script lang="ts">
55
- import { Vue } from "vue-class-component";
56
- import { Register, Prop, Emit } from "@ui-root/reg";
57
- import moment from "moment";
58
- import CallRender from "./call-render";
59
-
60
-
61
- import "../global-style.css";
62
-
63
- const weekNames = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
64
- interface DateBaseInfo{
65
- display:number;
66
- isPrevious:boolean;
67
- isNext:boolean;
68
- week:string;
69
- date:moment.Moment;
70
- }
71
-
72
- @Register({
73
- name:"su-calendar",
74
- components:{
75
- vnodes: CallRender,
76
- }
77
- })
78
- export default class SuCalendar extends Vue {
79
- @Prop({
80
- type:[Date,String],
81
- default:()=>{
82
- return new Date();
83
- }
84
- })
85
- public readonly displayMonth!:Date|string;
86
- private dYear=0;
87
- private dMonth=0;
88
- private get displayMonthDate():moment.Moment{
89
- let date=moment(this.displayMonth);
90
- date.date(1);
91
- date.add(this.dYear,"y").add(this.dMonth,"M");
92
- return date;
93
- }
94
- @Prop({
95
- type:Array,
96
- default:()=>{
97
- return weekNames;
98
- }
99
- })
100
- public readonly weekName!:string[];
101
-
102
- @Prop({
103
- type:Number,
104
- default:0,
105
- validator: (input:number): boolean=>{
106
- return input>=0&&input<7
107
- }
108
- })
109
- public weekOffect!:number;
110
-
111
- private get displayHead():{
112
- display:string;
113
- week:string;
114
- }[]{
115
- const mList=this.weekName.map((item,index)=>({
116
- display: item,
117
- week:weekNames[index],
118
- }))
119
- return [
120
- ...mList.slice(this.weekOffect),
121
- ...mList.slice(0,this.weekOffect),
122
- ];
123
- }
124
- private get displayData():DateBaseInfo[][]{
125
- let res:DateBaseInfo[][]=[[]];
126
- let now=res[0];
127
-
128
- const nowDay = moment(this.displayMonthDate);
129
- nowDay.set('date',1);
130
- let reqPreviousDays=nowDay.day()-this.weekOffect;
131
- if(reqPreviousDays<0) reqPreviousDays+=7;
132
- nowDay.add(-reqPreviousDays,'days');
133
- let isNotNext=true;
134
- while(isNotNext||now.length<7){
135
- if(now.length==7){
136
- now=[];
137
- res.push(now);
138
- }
139
- now.push({
140
- display:nowDay.date(),
141
- isPrevious:isNotNext&&this.displayMonthDate.month()!=nowDay.month(),
142
- isNext:!isNotNext,
143
- week:weekNames[nowDay.day()],
144
- date:moment(nowDay),
145
- });
146
- nowDay.add(1,'days');
147
- isNotNext=this.displayMonthDate.year()>=nowDay.year()&&this.displayMonthDate.month()>=nowDay.month();
148
- }
149
- return res;
150
- }
151
- @Prop({
152
- type:Function,
153
- default:undefined
154
- })
155
- public readonly renderCell!:(arg:DateBaseInfo)=>unknown;
156
-
157
- private showSelYear=false;
158
- private dShowSelYear=0;
159
- private showSelMonth=false;
160
-
161
- @Emit()
162
- private dateClick(data:DateBaseInfo):DateBaseInfo{
163
- return data;
164
- }
165
- }
166
- </script>
167
-
168
- <style>
169
- .star-ui-calendar{
170
- text-align: center;
171
- display: inline-block;
172
- border: 1px solid #e8eaec;
173
- }
174
- .star-ui-calendar--ctrl{
175
- display: flex;
176
- flex-direction: row;
177
- }
178
- .star-ui-calendar--ctrl>*{
179
- padding: 5px;
180
- cursor: pointer;
181
- }
182
- .star-ui-calendar--display-month{
183
- flex: 1 0 auto;
184
- cursor: default;
185
- }
186
- .star-ui-calendar--display-month>span{
187
- cursor: pointer;
188
- }
189
- .star-ui-calendar th,.star-ui-calendar td{
190
- padding: 5px 0;
191
- }
192
- .star-ui-calendar--inner-head{
193
- background-color: var(--star-ui-table-head-color);
194
- }
195
- .star-ui-calendar--inner-cell{
196
- border: 1px solid #e8eaec;
197
- width: 42px
198
- }
199
- .star-ui-calendar--inner-cell.star-ui-calendar--Sat,.star-ui-calendar--inner-cell.star-ui-calendar--Sun{
200
- color: #f00;
201
- }
202
- .star-ui-calendar--inner-cell.star-ui-calendar--previous,.star-ui-calendar--inner-cell.star-ui-calendar--next{
203
- opacity: 0.5;
204
- }
205
-
206
- .star-ui-calendar--select{
207
- position: absolute;
208
- top:0;
209
- left: 0;
210
- width: 100%;
211
- height: 100%;
212
- display: flex;
213
- flex-direction: column;
214
- background-color: inherit;
215
- }
216
- .star-ui-calendar--select-body{
217
- flex-grow: 1;
218
- display: grid;
219
- grid-template-rows: repeat(3, 1fr);
220
- grid-template-columns: repeat(4, 1fr);
221
- align-items: center;
222
- }
223
- .star-ui-calendar--select-body>*{
224
- cursor: pointer;
225
- }
226
- .star-ui-calendar--select-body>*:hover{
227
- color: var(--star-ui-base-color);
228
- }
229
- .star-ui-calendar--select-ctrl{
230
- display: flex;
231
- flex-direction: row;
232
- justify-content:space-between;
233
- height: 20%;
234
- align-items: center;
235
- }
236
- .star-ui-calendar--select-ctrl>*{
237
- padding: 0 15px;
238
- cursor: pointer;
239
- }
240
- .star-ui-calendar .now-sel{
241
- color: var(--star-ui-base-color);
242
- font-weight: bold;
243
- }
244
- </style>
@@ -1,22 +0,0 @@
1
- import { Vue } from 'vue-class-component';
2
- import { Prop, Register } from "../reg";
3
-
4
- @Register({
5
- name:'call-render',
6
- internalOnly: true,
7
- })
8
- export default class CallRender extends Vue {
9
- @Prop({
10
- type:Function,
11
- })
12
- // eslint-disable-next-line
13
- func!:(...arg:any[])=>any;
14
- @Prop({
15
- type:Array,
16
- })
17
- // eslint-disable-next-line
18
- args!:any[];
19
- render(){
20
- return this.func(...this.args);
21
- }
22
- }
@@ -1,126 +0,0 @@
1
- <template>
2
- <div class="star-ui su-card star-ui-card">
3
- <div v-if="title!=''||collapsible||this.$slots.title" class="star-ui star-ui-container star-ui-card--inner-head">
4
- <div class="star-ui star-ui-card--inner-title">{{title}}</div>
5
- <button v-if="collapsible" :class="['star-ui','star-ui-card--inner-button-collapsible',isCollaps?'show':'hidden']" @click="collapsChange"></button>
6
- </div>
7
- <div ref="body" class="star-ui star-ui-card--inner-body" @transitionend="handleTransitionEnd">
8
- <div ref="bodyInner" class="star-ui star-ui-container star-ui-card--inner-body-inner">
9
- <slot></slot>
10
- </div>
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script lang="ts">
16
- import { Vue } from 'vue-class-component';
17
- import { Prop, Register } from "@ui-root/reg";
18
- import "../global-style.css";
19
- import VLayout from "./layout-v.vue";
20
- import HLayout from "./layout-h.vue";
21
- import SuMain from "./layout-main.vue";
22
-
23
-
24
- @Register({
25
- name:"su-card",
26
- components:{
27
- VLayout,
28
- HLayout,
29
- SuMain
30
- }
31
- })
32
- export default class SuCard extends Vue {
33
- declare $refs: {
34
- body:HTMLDivElement
35
- bodyInner:HTMLDivElement
36
- };
37
- @Prop({
38
- type:String,
39
- default:""
40
- })
41
- readonly title!:string;
42
- @Prop({
43
- type:Boolean,
44
- default:false
45
- })
46
- readonly collapsible!:boolean;
47
- isCollaps=false;
48
- collapsChange():void{
49
- const realHeight=this.$refs.bodyInner.clientHeight;
50
- if(this.isCollaps){
51
- this.$refs.body.style.height=realHeight+"px";
52
- }else{
53
- this.$refs.body.style.height=realHeight+"px";//需要先设置一个高度才能应用过渡动画
54
- setTimeout(()=>this.$refs.body.style.height="0",0);//0秒定时器用于将两个高度设置都能被浏览器读取
55
- }
56
- this.isCollaps=!this.isCollaps;
57
- }
58
- handleTransitionEnd():void{
59
- if(!this.isCollaps){
60
- //动画播放完之后取消掉高度限制
61
- this.$refs.body.style.height="";
62
- }
63
- }
64
- }
65
- </script>
66
-
67
- <style>
68
- .star-ui-card{
69
- border: 1px solid var(--star-ui-line-color);
70
- border-radius: var(--star-ui-border-radius);
71
- display: flex;
72
- flex-direction: column;
73
- }
74
- .star-ui-card--inner-head{
75
- display: flex;
76
- flex-direction: row;
77
- }
78
- .star-ui-card--inner-title{
79
- flex-grow: 1;
80
- }
81
- .star-ui-card--inner-button-collapsible{
82
- width: 0;
83
- height: 0;
84
- margin: 2px;
85
- padding: 10px;
86
- /*background: #88f;*/
87
- border-radius: 50%;
88
- border: 1px solid var(--star-ui-line-color);
89
- display: inline-block;
90
- float: right;
91
- }
92
- .star-ui-card--inner-button-collapsible:after{
93
- content: " ";
94
- width: 0;
95
- height: 0;
96
- padding: 0;
97
- /*margin-left: -5px !important;
98
- margin-top: -2.5px !important;*/
99
- left: 5px;
100
- top:8px;
101
- position: absolute;
102
- border-color: var(--star-ui-line-color);
103
- border-style: solid;
104
- border-right: solid 5px transparent;
105
- border-left: solid 5px transparent;
106
- transition: border-top-width 0.5s, border-bottom-width 0.5s;
107
- }
108
- .star-ui-card--inner-button-collapsible.hidden:after{
109
- /*border-bottom: solid 5px #ccf;*/
110
- border-bottom-width: 5px;
111
- border-top-width: 0;
112
- }
113
- .star-ui-card--inner-button-collapsible.show:after{
114
- /*border-top: solid 5px #ccf;*/
115
- border-top-width: 5px;
116
- border-bottom-width: 0;
117
- }
118
- .star-ui-card--inner-body{
119
- flex-grow: 1;
120
- overflow: hidden;
121
- transition: height 0.5s;
122
- }
123
- .star-ui-card--inner-body-inner{
124
- overflow: auto;
125
- }
126
- </style>
@@ -1,132 +0,0 @@
1
- <template>
2
- <teleport to="body">
3
- <div ref="root" :class="['star-ui-base-popper', ...ctrlClass]" :style="{visibility: visible ? '' : 'hidden', ...baseStyle, ...style}">
4
- <div class="star-ui-popper-background" v-if="isMobile" @click="$emit('out-click')"></div>
5
- <slot></slot>
6
- </div>
7
- </teleport>
8
- </template>
9
-
10
- <script lang="ts">
11
- import { Vue } from 'vue-class-component';
12
- import { SuViewCtrlInjectClassName, SuViewCtrlInjectIsMobile } from "@ui-root/outher";
13
- import { Emit, Prop, Register } from "@ui-root/reg";
14
-
15
- import "../../global-style.css";
16
- let nowId=0;
17
-
18
- @Register({
19
- name:"su-base-popper",
20
- internalOnly:true,
21
- props: {
22
- fromItem:{
23
- type:Object
24
- },
25
- style:{
26
- type:Object,
27
- default:function(){return {};}
28
- },
29
- updateType:{
30
- type:String,
31
- default:"v-sync"
32
- },
33
- visible:{
34
- type:Boolean,
35
- default:false
36
- }
37
- },
38
- watch:{
39
- visible(){
40
- this._updateVisible();
41
- },
42
- isMobile(){
43
- if(this.syncRequestId)cancelAnimationFrame(this.syncRequestId);
44
- this.updatePos();
45
- }
46
- },
47
- // inject: ['$suControl']
48
- })
49
- export default class SuButton extends Vue {
50
- declare $refs: {
51
- root:HTMLDivElement;
52
- };
53
- @Prop({
54
- type:Object
55
- })
56
- fromItem!:Vue|HTMLElement;
57
- private div!:HTMLDivElement;
58
- private id!:string;
59
- private updateType!:string;
60
- private visible!:boolean;
61
- @SuViewCtrlInjectIsMobile readonly isMobile!:false;
62
- mounted():void{
63
- window.addEventListener("click",this._clickCheck);
64
- this._updateVisible();
65
- }
66
- beforeUnmount():void{
67
- window.removeEventListener("click",this._clickCheck);
68
- }
69
- @Emit("out-click", (res:boolean)=>res)
70
- _clickCheck(ev:MouseEvent):boolean{
71
- var dom=ev.target;
72
- while(dom&&dom!=document){
73
- if(dom==this.$refs.root||(this.fromItem&&dom==((this.fromItem instanceof HTMLElement)?this.fromItem:this.fromItem.$el))){
74
- return false;
75
- }
76
- dom=(dom as HTMLElement).parentElement;
77
- }
78
- return true;
79
- }
80
- private syncRequestId!:number;
81
- _updateVisible():void{
82
- if(this.visible){
83
- this.updatePos();
84
- }else{
85
- if(this.syncRequestId)cancelAnimationFrame(this.syncRequestId);
86
- }
87
- }
88
- @SuViewCtrlInjectClassName
89
- readonly ctrlClass!:string[];
90
- // eslint-disable-next-line
91
- private baseStyle:Record<string, any>={};
92
- updatePos():void{
93
- if(this.fromItem){
94
- this.baseStyle={};
95
- let dom=(this.fromItem instanceof HTMLElement)?this.fromItem:this.fromItem.$el;
96
- if(this.isMobile){
97
- this.baseStyle.bottom="0";
98
- this.baseStyle.left="0";
99
- this.baseStyle.width="100%";
100
- }else{
101
- const height=dom.clientHeight;
102
- let top=0,left=0;
103
- while(dom&&dom!=document){
104
- top+=dom.offsetTop-dom.scrollTop;
105
- left+=dom.offsetLeft-dom.scrollLeft;
106
- dom=dom.offsetParent;
107
- }
108
- top+=height;
109
- this.baseStyle.top=top+"px";
110
- this.baseStyle.left=left+"px";
111
- if(this.updateType=="v-sync"){
112
- this.syncRequestId=requestAnimationFrame(this.updatePos);
113
- }
114
- }
115
- }
116
- }
117
- }
118
- </script>
119
-
120
- <style>
121
- .star-ui-base-popper{
122
- position: fixed;
123
- }
124
- .star-ui-popper-background{
125
- position: fixed;
126
- width: 100%;
127
- height: 100%;
128
- top: 0;
129
- left: 0;
130
- background-color: rgba(0,0,0,0.5);
131
- }
132
- </style>
@@ -1,117 +0,0 @@
1
- <template>
2
- <div class="star-ui su-context-menu-box star-ui-context-menu-box" @contextmenu="handleContextMenu">
3
- <slot />
4
- </div>
5
- <teleport to="body" v-if="isOpenMenu">
6
- <div ref="mask" :class="['su-context-menu--mask', 'star-ui-context-menu--mask', ...ctrlClass]" @click="handleMaskClick">
7
- <component :is="component" class="su-context-menu star-ui-context-menu" :style="isMobile ? '' : `top: ${currentY}px; left: ${currentX}px;`" :menu="currentMenu" :itemComponent="itemComponent">
8
- <template v-slot="data">
9
- <div class="su-context-menu--item star-ui-context-menu--item" @click="handleItemClick(data)">
10
- <span class="star-ui-context-menu--text">{{data.title}}</span>
11
- <span v-if="!data.click">&gt;</span>
12
- </div>
13
- </template>
14
- </component>
15
- </div>
16
- </teleport>
17
- </template>
18
-
19
- <script lang="ts">
20
- import { Vue } from "vue-class-component";
21
- import { Prop, Register } from "@ui-root/reg";
22
- import { SuViewCtrlInjectClassName, SuViewCtrlInjectIsMobile } from "@ui-root/outher";
23
- import MenuBox from "../menu/menu-h/menu-h-child.vue";
24
- import MenuBoxMobile from "../menu/menu-v/index.vue";
25
- import MenuItem from "../menu/menu-h/menu-h-item.vue";
26
- import "@ui-root/global-style.css";
27
- import { ContextMenuItem } from "@ui-root/types";
28
-
29
- @Register({
30
- name:"su-context-menu-box",
31
- components: {
32
- MenuBox,
33
- MenuBoxMobile,
34
- }
35
- })
36
- export default class SuMain extends Vue {
37
- private itemComponent = MenuItem;
38
- declare $refs:{
39
- mask:HTMLDivElement,
40
- };
41
- @SuViewCtrlInjectIsMobile readonly isMobile!:boolean;
42
- @SuViewCtrlInjectClassName readonly ctrlClass!:string[];
43
- private get component(){
44
- if(this.isMobile){
45
- return MenuBoxMobile;
46
- }
47
- return MenuBox;
48
- }
49
- @Prop({
50
- type: [Array, Function],
51
- required: true,
52
- })
53
- private menu!:ContextMenuItem[] | ((ev: MouseEvent) => ContextMenuItem[]);
54
- private isOpenMenu = false;
55
- private currentMenu: ContextMenuItem[] = [];
56
- private currentX = 0;
57
- private currentY = 0;
58
- private handleContextMenu(ev: MouseEvent){
59
- // ev.stopPropagation();
60
- ev.preventDefault();
61
- if(typeof this.menu === 'function'){
62
- this.currentMenu = this.menu(ev) || [];
63
- }else{
64
- this.currentMenu = this.menu || [];
65
- }
66
- // this.currentMenu=[{title: 'aa', children: [ {title: 'aa.1', click: () => console.log('aa.1 click')} ]}, {title: 'bb', click: () => console.log('bb click')}];
67
- this.currentX=ev.clientX;
68
- this.currentY=ev.clientY;
69
- this.isOpenMenu = true;
70
- }
71
- handleMaskClick(ev: MouseEvent){
72
- if (ev.target === this.$refs.mask) {
73
- this.isOpenMenu = false;
74
- }
75
- }
76
- handleItemClick(item: ContextMenuItem){
77
- if (item.click) {
78
- this.isOpenMenu = false;
79
- item.click();
80
- }
81
- }
82
- }
83
- </script>
84
-
85
- <style>
86
- .star-ui-context-menu--mask{
87
- position: fixed;
88
- top: 0;
89
- left: 0;
90
- width: 100%;
91
- height: 100%;
92
- }
93
- .star-ui-context-menu{
94
- position: absolute;
95
- opacity: 1;
96
- }
97
- .star-ui-context-menu--item{
98
- min-width: 100px;
99
- padding: var(--star-ui-default-padding);
100
- cursor: pointer;
101
- display: flex;
102
- flex-direction: row;
103
- }
104
- .star-ui-context-menu--text{
105
- flex: 1;
106
- }
107
- .star-ui-view-control-mobile.star-ui-context-menu--mask{
108
- background: var(--star-ui-mask-color);
109
- }
110
- .star-ui-view-control-mobile .star-ui-context-menu{
111
- width: 100%;
112
- background-color: var(--star-ui-backgorund-color);
113
- position: absolute;
114
- bottom: 0;
115
- left: 0;
116
- }
117
- </style>
@@ -1,5 +0,0 @@
1
- export { default as SuPage } from "./page.vue";
2
- export { default as SuMenu } from "./menu/index.vue";
3
- export { default as SuContextMenuBox } from "./context-menu-box/index.vue";
4
- export { default as SuModal } from "./modals/modal.vue";
5
- export { default as SuModalConfirm } from "./modals/confirm.vue";