@thestarweb/ui 1.7.1 → 2.0.0-beta.1

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 (256) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.mjs +7 -0
  2. package/dist/components/base/button/button.vue.mjs +5 -0
  3. package/dist/components/base/button/button.vue_vue_type_script_setup_true_lang.mjs +27 -0
  4. package/dist/components/base/button/index.mjs +1 -0
  5. package/dist/components/base/index.mjs +2 -0
  6. package/dist/components/data/card/card.vue.mjs +5 -0
  7. package/dist/components/data/card/card.vue_vue_type_script_setup_true_lang.mjs +50 -0
  8. package/dist/components/data/card/index.mjs +1 -0
  9. package/dist/components/data/index.mjs +11 -0
  10. package/dist/components/data/popover/index.mjs +1 -0
  11. package/dist/components/data/popover/popover.vue.mjs +5 -0
  12. package/dist/components/data/popover/popover.vue_vue_type_script_setup_true_lang.mjs +123 -0
  13. package/dist/components/data/popover/utils.mjs +68 -0
  14. package/dist/components/data/table/index.mjs +1 -0
  15. package/dist/components/data/table/table.vue.mjs +5 -0
  16. package/dist/components/data/table/table.vue_vue_type_script_setup_true_lang.mjs +45 -0
  17. package/dist/components/data/tag/index.mjs +1 -0
  18. package/dist/components/data/tag/tag.vue.mjs +5 -0
  19. package/dist/components/data/tag/tag.vue_vue_type_script_setup_true_lang.mjs +21 -0
  20. package/dist/components/data/tree/index.mjs +1 -0
  21. package/dist/components/data/tree/tree-item.vue.mjs +5 -0
  22. package/dist/components/data/tree/tree-item.vue_vue_type_script_setup_true_lang.mjs +77 -0
  23. package/dist/components/data/tree/tree-raw.vue.mjs +5 -0
  24. package/dist/components/data/tree/tree-raw.vue_vue_type_script_setup_true_lang.mjs +104 -0
  25. package/dist/components/data/tree/tree.vue.mjs +4 -0
  26. package/dist/components/data/tree/tree.vue_vue_type_script_setup_true_lang.mjs +60 -0
  27. package/dist/components/data/tree/utils.mjs +66 -0
  28. package/dist/components/form/checkbox/checkbox.vue.mjs +5 -0
  29. package/dist/components/form/checkbox/checkbox.vue_vue_type_script_setup_true_lang.mjs +50 -0
  30. package/dist/components/form/checkbox/index.mjs +1 -0
  31. package/dist/components/form/index.mjs +11 -0
  32. package/dist/components/form/input/index.mjs +1 -0
  33. package/dist/components/form/input/input.vue.mjs +5 -0
  34. package/dist/components/form/input/input.vue_vue_type_script_setup_true_lang.mjs +34 -0
  35. package/dist/components/form/select/index.mjs +1 -0
  36. package/dist/components/form/select/select.vue.mjs +5 -0
  37. package/dist/components/form/select/select.vue_vue_type_script_setup_true_lang.mjs +148 -0
  38. package/dist/components/form/slider/index.mjs +1 -0
  39. package/dist/components/form/slider/slider.vue.mjs +5 -0
  40. package/dist/components/form/slider/slider.vue_vue_type_script_setup_true_lang.mjs +67 -0
  41. package/dist/components/form/switch/index.mjs +1 -0
  42. package/dist/components/form/switch/switch.vue.mjs +5 -0
  43. package/dist/components/form/switch/switch.vue_vue_type_script_setup_true_lang.mjs +38 -0
  44. package/dist/components/index.mjs +21 -0
  45. package/dist/components/layout/index.mjs +4 -0
  46. package/dist/components/layout/layout/index.mjs +9 -0
  47. package/dist/components/layout/layout/layout-dividing.vue.mjs +10 -0
  48. package/dist/components/layout/layout/layout-main.vue.mjs +10 -0
  49. package/dist/components/layout/layout/layout.vue.mjs +5 -0
  50. package/dist/components/layout/layout/layout.vue_vue_type_script_setup_true_lang.mjs +14 -0
  51. package/dist/components/layout/page/Page.vue.mjs +5 -0
  52. package/dist/components/layout/page/Page.vue_vue_type_script_setup_true_lang.mjs +63 -0
  53. package/dist/components/layout/page/index.mjs +1 -0
  54. package/dist/components/other/calendar/calendar.vue.mjs +5 -0
  55. package/dist/components/other/calendar/calendar.vue_vue_type_script_setup_true_lang.mjs +103 -0
  56. package/dist/components/other/calendar/index.mjs +1 -0
  57. package/dist/components/other/index.mjs +5 -0
  58. package/dist/components/other/menu/index.mjs +1 -0
  59. package/dist/components/other/menu/index.vue.mjs +5 -0
  60. package/dist/components/other/menu/index.vue_vue_type_script_setup_true_lang.mjs +22 -0
  61. package/dist/components/other/menu/menu-h/index.vue.mjs +5 -0
  62. package/dist/components/other/menu/menu-h/index.vue_vue_type_script_setup_true_lang.mjs +22 -0
  63. package/dist/components/other/menu/menu-h/menu-h-item.vue.mjs +5 -0
  64. package/dist/components/other/menu/menu-h/menu-h-item.vue_vue_type_script_setup_true_lang.mjs +30 -0
  65. package/dist/components/other/menu/menu-v/index.vue.mjs +4 -0
  66. package/dist/components/other/menu/menu-v/index.vue_vue_type_script_setup_true_lang.mjs +33 -0
  67. package/dist/context/index.mjs +1 -0
  68. package/dist/context/is-mobile.mjs +10 -0
  69. package/dist/icons/arrow-down.svg_component.mjs +12 -0
  70. package/dist/icons/arrow-right.svg_component.mjs +12 -0
  71. package/dist/icons/home.svg_component.mjs +12 -0
  72. package/dist/icons/index.mjs +5 -0
  73. package/dist/icons/menu.svg_component.mjs +12 -0
  74. package/dist/index.mjs +20 -0
  75. package/dist/style.css +2 -0
  76. package/dist/utils/index.mjs +9 -0
  77. package/dist/utils/z-index.mjs +6 -0
  78. package/package.json +33 -81
  79. package/types/src/components/base/button/button.vue.d.ts +21 -0
  80. package/types/src/components/base/button/example/base.vue.d.ts +3 -0
  81. package/types/src/components/base/button/index.d.ts +1 -0
  82. package/types/src/components/base/index.d.ts +1 -0
  83. package/types/src/components/data/card/card.vue.d.ts +32 -0
  84. package/types/src/components/data/card/index.d.ts +1 -0
  85. package/types/src/components/data/index.d.ts +5 -0
  86. package/types/src/components/data/pagination/example/base.vue.d.ts +3 -0
  87. package/types/src/components/data/pagination/index.d.ts +1 -0
  88. package/types/src/components/data/pagination/pagination.vue.d.ts +20 -0
  89. package/types/src/components/data/popover/example/base.vue.d.ts +3 -0
  90. package/types/src/components/data/popover/index.d.ts +1 -0
  91. package/types/src/components/data/popover/popover.vue.d.ts +39 -0
  92. package/types/src/components/data/popover/type.d.ts +1 -0
  93. package/types/src/components/data/popover/utils.d.ts +12 -0
  94. package/types/src/components/data/table/example/base.vue.d.ts +3 -0
  95. package/types/src/components/data/table/example/render.vue.d.ts +3 -0
  96. package/types/src/components/data/table/index.d.ts +2 -0
  97. package/types/src/components/data/table/table.vue.d.ts +36 -0
  98. package/types/src/components/data/table/types.d.ts +12 -0
  99. package/types/src/components/data/tag/example/base.vue.d.ts +3 -0
  100. package/types/src/components/data/tag/index.d.ts +1 -0
  101. package/types/src/components/data/tag/tag.vue.d.ts +20 -0
  102. package/types/src/components/data/tree/example/base.vue.d.ts +3 -0
  103. package/types/src/components/data/tree/index.d.ts +2 -0
  104. package/types/src/components/data/tree/tree-item.vue.d.ts +36 -0
  105. package/types/src/components/data/tree/tree-raw.vue.d.ts +47 -0
  106. package/types/src/components/data/tree/tree.vue.d.ts +34 -0
  107. package/types/src/components/data/tree/type.d.ts +40 -0
  108. package/types/src/components/data/tree/utils.d.ts +10 -0
  109. package/types/src/components/form/checkbox/checkbox.vue.d.ts +32 -0
  110. package/types/src/components/form/checkbox/example/base.vue.d.ts +3 -0
  111. package/types/src/components/form/checkbox/example/group.vue.d.ts +3 -0
  112. package/types/src/components/form/checkbox/index.d.ts +1 -0
  113. package/types/src/components/form/index.d.ts +5 -0
  114. package/types/src/components/form/input/example/base.vue.d.ts +3 -0
  115. package/types/src/components/form/input/index.d.ts +1 -0
  116. package/types/src/components/form/input/input.vue.d.ts +17 -0
  117. package/types/src/components/form/select/example/base.vue.d.ts +3 -0
  118. package/types/src/components/form/select/example/tree-select.vue.d.ts +3 -0
  119. package/types/src/components/form/select/index.d.ts +2 -0
  120. package/types/src/components/form/select/select.vue.d.ts +25 -0
  121. package/types/src/components/form/select/types.d.ts +25 -0
  122. package/types/src/components/form/slider/example/base.vue.d.ts +3 -0
  123. package/types/src/components/form/slider/index.d.ts +1 -0
  124. package/types/src/components/form/slider/slider.vue.d.ts +19 -0
  125. package/types/src/components/form/switch/example/base.vue.d.ts +3 -0
  126. package/types/src/components/form/switch/index.d.ts +1 -0
  127. package/types/src/components/form/switch/switch.vue.d.ts +17 -0
  128. package/types/src/components/index.d.ts +5 -0
  129. package/types/src/components/layout/index.d.ts +2 -0
  130. package/types/src/components/layout/layout/index.d.ts +42 -0
  131. package/types/src/components/layout/layout/layout-dividing.vue.d.ts +3 -0
  132. package/types/src/components/layout/layout/layout-main.vue.d.ts +15 -0
  133. package/types/src/components/layout/layout/layout.vue.d.ts +18 -0
  134. package/types/src/components/layout/page/Page.vue.d.ts +39 -0
  135. package/types/src/components/layout/page/index.d.ts +1 -0
  136. package/types/src/components/other/calendar/calendar.vue.d.ts +41 -0
  137. package/types/src/components/other/calendar/index.d.ts +1 -0
  138. package/types/src/components/other/index.d.ts +2 -0
  139. package/types/src/components/other/menu/index.d.ts +2 -0
  140. package/types/src/components/other/menu/index.vue.d.ts +46 -0
  141. package/types/src/components/other/menu/menu-h/index.vue.d.ts +19 -0
  142. package/types/src/components/other/menu/menu-h/menu-h-item.vue.d.ts +27 -0
  143. package/types/src/components/other/menu/menu-v/index.vue.d.ts +24 -0
  144. package/types/src/components/other/menu/types.d.ts +6 -0
  145. package/types/src/components/other/view-control/index.d.ts +1 -0
  146. package/types/src/components/other/view-control/view-control.vue.d.ts +20 -0
  147. package/types/src/context/index.d.ts +1 -0
  148. package/types/src/context/is-mobile.d.ts +4 -0
  149. package/types/src/icons/index.d.ts +4 -0
  150. package/types/src/index.d.ts +3 -0
  151. package/types/src/types.d.ts +2 -0
  152. package/types/src/utils/index.d.ts +6 -0
  153. package/types/src/utils/z-index.d.ts +1 -0
  154. package/types/vite.config.d.ts +2 -0
  155. package/build-ts/main.js +0 -63
  156. package/dist/demo.html +0 -8
  157. package/dist/star-ui.common.js +0 -33776
  158. package/dist/star-ui.common.js.map +0 -1
  159. package/dist/star-ui.umd.js +0 -33786
  160. package/dist/star-ui.umd.js.map +0 -1
  161. package/dist/star-ui.umd.min.js +0 -299
  162. package/dist/star-ui.umd.min.js.map +0 -1
  163. package/readme.md +0 -16
  164. package/src/components/button.vue +0 -34
  165. package/src/components/calendar.vue +0 -244
  166. package/src/components/call-render.tsx +0 -22
  167. package/src/components/card.vue +0 -126
  168. package/src/components/common/base-popper.vue +0 -132
  169. package/src/components/content/context-menu-box/index.vue +0 -117
  170. package/src/components/content/index.ts +0 -5
  171. package/src/components/content/menu/index.vue +0 -86
  172. package/src/components/content/menu/menu-h/index.vue +0 -68
  173. package/src/components/content/menu/menu-h/menu-h-child.vue +0 -74
  174. package/src/components/content/menu/menu-h/menu-h-item.vue +0 -66
  175. package/src/components/content/menu/menu-v/index.vue +0 -56
  176. package/src/components/content/modals/confirm.vue +0 -45
  177. package/src/components/content/modals/modal.vue +0 -110
  178. package/src/components/content/page.vue +0 -134
  179. package/src/components/form/form/form-item.vue +0 -116
  180. package/src/components/form/form/form.vue +0 -109
  181. package/src/components/form/form/index.ts +0 -2
  182. package/src/components/form/index.ts +0 -1
  183. package/src/components/input.vue +0 -89
  184. package/src/components/layout/auto-direction/index.vue +0 -28
  185. package/src/components/layout/index.ts +0 -1
  186. package/src/components/layout-h.vue +0 -34
  187. package/src/components/layout-main.vue +0 -25
  188. package/src/components/layout-v.vue +0 -36
  189. package/src/components/line-h.vue +0 -29
  190. package/src/components/line-v.vue +0 -29
  191. package/src/components/select.vue +0 -265
  192. package/src/components/slider.vue +0 -171
  193. package/src/components/switch.vue +0 -95
  194. package/src/components/table.vue +0 -59
  195. package/src/components/tree/index.vue +0 -116
  196. package/src/components/tree/tree-item.vue +0 -157
  197. package/src/components/view-control.vue +0 -83
  198. package/src/directives/is-focus.ts +0 -10
  199. package/src/func/download.ts +0 -15
  200. package/src/func/index.ts +0 -2
  201. package/src/func/modal/index.ts +0 -72
  202. package/src/global-style.css +0 -127
  203. package/src/icon-font/iconfont.css +0 -75
  204. package/src/icon-font/iconfont.eot +0 -0
  205. package/src/icon-font/iconfont.json +0 -114
  206. package/src/icon-font/iconfont.svg +0 -62
  207. package/src/icon-font/iconfont.ttf +0 -0
  208. package/src/icon-font/iconfont.woff +0 -0
  209. package/src/icon-font/iconfont.woff2 +0 -0
  210. package/src/main.ts +0 -57
  211. package/src/outher/index.ts +0 -8
  212. package/src/reg.ts +0 -129
  213. package/src/shims-vue.d.ts +0 -8
  214. package/src/types.d.ts +0 -15
  215. package/src/utils.ts +0 -24
  216. package/types/components/button.vue.d.ts +0 -5
  217. package/types/components/calendar.vue.d.ts +0 -26
  218. package/types/components/call-render.d.ts +0 -6
  219. package/types/components/card.vue.d.ts +0 -13
  220. package/types/components/common/base-popper.vue.d.ts +0 -21
  221. package/types/components/content/context-menu-box/index.vue.d.ts +0 -20
  222. package/types/components/content/index.d.ts +0 -5
  223. package/types/components/content/menu/index.vue.d.ts +0 -12
  224. package/types/components/content/menu/menu-h/index.vue.d.ts +0 -8
  225. package/types/components/content/menu/menu-h/menu-h-child.vue.d.ts +0 -7
  226. package/types/components/content/menu/menu-h/menu-h-item.vue.d.ts +0 -8
  227. package/types/components/content/menu/menu-v/index.vue.d.ts +0 -9
  228. package/types/components/content/modals/confirm.vue.d.ts +0 -7
  229. package/types/components/content/modals/modal.vue.d.ts +0 -12
  230. package/types/components/content/page.vue.d.ts +0 -9
  231. package/types/components/form/form/form-item.vue.d.ts +0 -22
  232. package/types/components/form/form/form.vue.d.ts +0 -24
  233. package/types/components/form/form/index.d.ts +0 -2
  234. package/types/components/form/index.d.ts +0 -1
  235. package/types/components/input.vue.d.ts +0 -17
  236. package/types/components/layout/auto-direction/index.vue.d.ts +0 -4
  237. package/types/components/layout/index.d.ts +0 -1
  238. package/types/components/layout-h.vue.d.ts +0 -4
  239. package/types/components/layout-main.vue.d.ts +0 -4
  240. package/types/components/layout-v.vue.d.ts +0 -4
  241. package/types/components/line-h.vue.d.ts +0 -4
  242. package/types/components/line-v.vue.d.ts +0 -4
  243. package/types/components/select.vue.d.ts +0 -26
  244. package/types/components/slider.vue.d.ts +0 -29
  245. package/types/components/switch.vue.d.ts +0 -12
  246. package/types/components/table.vue.d.ts +0 -5
  247. package/types/components/tree/index.vue.d.ts +0 -15
  248. package/types/components/tree/tree-item.vue.d.ts +0 -18
  249. package/types/components/view-control.vue.d.ts +0 -16
  250. package/types/directives/is-focus.d.ts +0 -4
  251. package/types/func/download.d.ts +0 -1
  252. package/types/func/index.d.ts +0 -2
  253. package/types/func/modal/index.d.ts +0 -13
  254. package/types/main.d.ts +0 -75
  255. package/types/outher/index.d.ts +0 -5
  256. package/types/reg.d.ts +0 -45
@@ -1,265 +0,0 @@
1
- <template>
2
- <div :class="['star-ui', 'su-select','star-ui-select',{'is-focus':isFocused}]" @click="isFocused=!isFocused">
3
- <!-- 原生组件 -->
4
- <select :name="name" style="display: none"></select>
5
- <input v-if="false" type="text" :value="1" class="star-ui star-ui-select--inner">
6
- <!-- 内容显示 -->
7
- <div :class="['star-ui','star-ui-select--inner-content','star-ui-size-'+size]">{{this.showValue}}</div>
8
- <!-- 后缀 -->
9
- <div :class="['star-ui','start-ui-select--inner-suffix','star-ui-size-'+size]">
10
- <i class="star-ui-icon-font star-ui-icon-arrow-down"/>
11
- </div>
12
- <!-- 选项弹窗 -->
13
- <base-popper :from-item="$el" :visible="isFocused" @out-click="isFocused=false">
14
- <div :class="['star-ui','star-ui-select--pooper',pooperClass]" :style="{width:isMobile?'100%':(width+'px')}">
15
- <div class="star-ui star-ui-select--pooper-title" v-if="isMobile">请选择</div>
16
- <div :class="['star-ui','star-ui-select--pooper-item-list','star-ui-size-'+size]">
17
-
18
- <su-tree v-if="showAsTree" ref="tree" highlight-current :size="size" :treeData="options" :label="labelName" :value="valueName" :children="children" @node-click="haandleNodeClick"></su-tree>
19
- <div v-else v-for="item in valueMap" :key="item[0]" :class="['star-ui','star-ui-select--option','star-ui-size-'+size,'star-ui-container',{
20
- 'star-ui-select--option-sel':item[0]==this.modelValue
21
- }]" @click="handleSelect(item[0])">{{item[1]}}</div>
22
- </div>
23
- </div>
24
- </base-popper>
25
- </div>
26
- </template>
27
-
28
- <script lang="ts">
29
- import { Vue } from 'vue-class-component';
30
- import BasePopper from "./common/base-popper.vue";
31
- import { Register, Emit, Prop } from "@ui-root/reg";
32
- import { SuViewCtrlInjectIsMobile } from "@ui-root/outher";
33
- import SuTree from "./tree/index.vue";
34
-
35
-
36
- import "../global-style.css";
37
-
38
- @Register({
39
- name:"su-select",
40
- components:{
41
- BasePopper,
42
- SuTree
43
- },
44
- watch:{
45
- isFocused(v){
46
- if(v){
47
- if(this.$el){
48
- if(this.$el.clientWidth){
49
- this.width=this.$el.clientWidth;
50
- }
51
- }
52
- }
53
- },
54
- modelValue(){
55
- this.updateTree();
56
- }
57
- }
58
- })
59
- export default class SuSelect extends Vue {
60
- mounted():void{
61
- this.updateTree();
62
- }
63
- declare $refs:{
64
- tree:SuTree
65
- };
66
- @Prop({
67
- type:[String,Number,Array],
68
- default:""
69
- })
70
- readonly modelValue!:string;
71
- @Prop({
72
- type:String,
73
- default:""
74
- })
75
- readonly name!:string;
76
- @Prop({
77
- type:String,
78
- default:"medium"
79
- })
80
- private size!:string;
81
- @Prop({
82
- type:Array,
83
- default:function(){return [];}
84
- })
85
- readonly options!:Record<string, unknown>[];
86
- @Prop({
87
- type:String,
88
- default:"value"
89
- })
90
- readonly valueName!:string;
91
- @Prop({
92
- type:String,
93
- default:"label"
94
- })
95
- readonly labelName!:string;
96
- @Prop({
97
- type:[String,Function],
98
- default:()=>{
99
- return "children"
100
- }
101
- })
102
- children!:string|((item:Record<string, unknown>)=>Record<string, unknown>[]);
103
- @Prop({
104
- type:Boolean,
105
- default:false
106
- })
107
- readonly showAsTree!:boolean;
108
- @Prop({
109
- type:String,
110
- default:""
111
- })
112
- readonly pooperClass!:string;
113
- isFocused=false;
114
- @SuViewCtrlInjectIsMobile readonly isMobile!: boolean;
115
- get valueMap():Map<string|number,string>{
116
- const map=new Map();
117
- if(this.showAsTree){
118
- let task:Record<string, unknown>[] = [];
119
- task.push(...this.options);
120
- while(task.length){
121
- const item = task.pop() as Record<string, unknown>;
122
- let itemValue:string|number|undefined;
123
- if(typeof this.valueName == "string"){
124
- itemValue = (item[this.valueName]) as string|number|undefined;
125
- // }else{
126
- // itemValue = this.value(this.current);
127
- }
128
- if(itemValue!=undefined){
129
- map.set(itemValue,(this.labelName in item)?item[this.labelName]:itemValue);
130
- }
131
- let children:Record<string, unknown>[]|undefined;
132
- if(typeof this.children == "string"){
133
- children = (item[this.children]) as Record<string, unknown>[]|undefined;
134
- }else{
135
- children = this.children(item);
136
- }
137
- children&&task.push(...children);
138
- }
139
- }else{
140
- this.options.map((item)=>{
141
- if(this.valueName in item){
142
- const value=item[this.valueName];
143
- const label=(this.labelName in item)?item[this.labelName]:value
144
- map.set(value,label);
145
- }
146
- });
147
- }
148
- return map;
149
- }
150
- get showValue():string{
151
- if(this.valueMap.has(this.modelValue)){
152
- return this.valueMap.get(this.modelValue) as string;
153
- }
154
- return this.modelValue;
155
- }
156
- private width=280;
157
- private updateTree(){
158
- if(this.modelValue&&this.showAsTree){
159
- this.$refs.tree.setCurrentByValue(this.modelValue);
160
- }
161
- }
162
- @Emit("update:modelValue")
163
- handleSelect(value:string):string{
164
- //this.$emit("update:modelValue",value);
165
- this.isFocused=false;
166
- return value;
167
- }
168
- @Emit("update:modelValue")
169
- haandleNodeClick(item:Record<string, unknown>,value:string|number|undefined):string|number|undefined{
170
- this.isFocused=false;
171
- this.$refs.tree.setCurrentByValue(this.modelValue);
172
- return value;
173
- }
174
- }
175
- </script>
176
-
177
- <style>
178
- /*基本样式*/
179
- .star-ui-select{
180
- border: solid 1px var(--star-ui-input-border-color);
181
- border-radius: var(--star-ui-border-radius);
182
- display: inline-flex;
183
- flex-direction: row;
184
- width:var(--star-ui-input-default-width);
185
- cursor: pointer;
186
- color: var(--star-ui-regular-text-color);
187
- background: var(--star-ui-backgorund-color);
188
- }
189
- /*选中时样式*/
190
- .star-ui-select:hover,.star-ui-select.is-focus{
191
- border: solid 1px var(--star-ui-base-color);
192
- }
193
- /*内容显示区域占用全部剩余空间*/
194
- .star-ui-select--inner-content{
195
- flex:1;
196
- overflow: hidden;
197
- white-space: nowrap;
198
- text-overflow: ellipsis;
199
- text-align: left;
200
- }
201
- /*清除原生输入框的样式*/
202
- .star-ui-select--inner,.star-ui-select--inner:hover,.star-ui-select--inner:active,.star-ui-select--inner:focus{
203
- border-width: 0px;
204
- outline: none;
205
- margin: 0;
206
- padding: 0;
207
- }
208
- /*弹出层样式*/
209
- .star-ui-select--pooper{
210
- background: var(--star-ui-backgorund-color);
211
- border: solid 1px var(--star-ui-input-border-color);
212
- border-radius: var(--star-ui-border-radius);
213
- color: var(--star-ui-regular-text-color);
214
- }
215
- .star-ui-select--option{
216
- cursor: pointer;
217
- }
218
- /*选中选项样式*/
219
- .star-ui-select--option-sel{
220
- background: var(--star-ui-base-color);
221
- color:var(--star-ui-backgorund-color);
222
- }
223
- /*选项的最大高度限制*/
224
- .star-ui-select--pooper-item-list{
225
- overflow-x: hidden;
226
- overflow-y: auto;
227
- padding: 0;
228
- }
229
- .star-ui-select--pooper-item-list.star-ui-size-medium{
230
- max-height: calc(var(--star-ui-input-medium-font-size) * 15);
231
- }
232
- .star-ui-select--pooper-item-list.star-ui-size-mini{
233
- max-height: calc(var(--star-ui-input-mini-font-size) * 15);
234
- }
235
-
236
- /*移动样式*/
237
- .star-ui-select--pooper-title{
238
- text-align: center;
239
- line-height: 2;
240
- font-weight: bold;
241
- padding: var(--star-ui-default-padding);
242
- }
243
- .star-ui-view-control-mobile .star-ui-select--pooper{
244
- width: 100%;
245
- }
246
- .star-ui-view-control.star-ui-view-control-mobile .star-ui-select--pooper{
247
- border-radius: 0;
248
- border-width: 0;
249
- }
250
- .star-ui-view-control.star-ui-view-control-mobile .star-ui-select--option{
251
- border-radius: 0;
252
- padding-left: 10px;
253
- border-left: 5px solid transparent;
254
- border-top: 1px solid var(--star-ui-input-border-color);
255
- line-height: 1.5;
256
- }
257
- .star-ui-view-control.star-ui-view-control-mobile .star-ui-select--option-sel{
258
- background: initial;
259
- color: var(--star-ui-base-color);
260
- border-left: 5px solid var(--star-ui-base-color);
261
- }
262
- .star-ui-view-control-mobile .star-ui-select--pooper-item-list.star-ui-size-medium{
263
- max-height: 50vh;
264
- }
265
- </style>
@@ -1,171 +0,0 @@
1
- <template>
2
- <div :class="['star-ui','su-slider','star-ui-size-'+size,{'su-slider-moving':isHover}]">
3
- <div ref="bar" class="su-slider--inner-runway" @click="handleBarClick">
4
- <div class="su-slider--inner-button-wrapper" :style="{left:positionLeft+'%'}" @mousedown="handleMouseDown" @touchstart="handleTouchStart"></div>
5
- </div>
6
- </div>
7
- </template>
8
-
9
- <script lang="ts">
10
- import { Vue } from 'vue-class-component';
11
- import { Register, Prop, Emit } from "@ui-root/reg";
12
- import "../global-style.css";
13
-
14
- @Register({
15
- name:"su-slider"
16
- })
17
- export default class SuSlider extends Vue {
18
- declare $refs:{
19
- bar:HTMLDivElement
20
- };
21
- private refBar:HTMLDivElement|null=null;
22
-
23
- mounted():void{
24
- this.refBar=this.$refs.bar;
25
- }
26
- beforeUnmount():void{
27
- this.removeEvent;
28
- }
29
-
30
- @Prop({
31
- type:String,
32
- default:"medium"
33
- })
34
- public readonly size!:string;
35
-
36
- @Prop({
37
- type:Number,
38
- default:0
39
- })
40
- readonly modelValue!:number;
41
-
42
- @Prop({
43
- type:Number,
44
- default:0
45
- })
46
- public readonly min!:number;
47
-
48
- @Prop({
49
- type:Number,
50
- default:100
51
- })
52
- public readonly max!:number;
53
-
54
- @Prop({
55
- type:Number,
56
- default:0
57
- })
58
- public readonly setp!:number;
59
-
60
- private moveStartValue=0;
61
- private get displayValue():number{
62
- let res=this.modelValue;
63
- if(this.refBar && this.dx){
64
- res=this.moveStartValue+this.dx/this.refBar.clientWidth*(this.max-this.min);
65
- }
66
- if(this.setp&&this.setp>0){
67
- res= Math.round((res-this.min)/this.setp)*this.setp;
68
- }
69
- if(res>this.max) res=this.max;
70
- else if(res<this.min) res=this.min;
71
- return res;
72
- }
73
- private get positionLeft():number{
74
- return (this.displayValue-this.min)*100/(this.max-this.min);
75
- }
76
- @Emit("update:modelValue")
77
- private updateEvent(value:number):number{
78
- return value;
79
- }
80
-
81
- private handleBarClick(ev:MouseEvent){
82
- if(ev.target&&ev.target==this.refBar){
83
- let res=this.min+ev.offsetX/this.refBar.clientWidth*(this.max-this.min);
84
- if(this.setp&&this.setp>0){
85
- res=Math.round((res-this.min)/this.setp)*this.setp;
86
- }
87
- this.updateEvent(res);
88
- }
89
- }
90
-
91
- private dx=0;
92
- private isHover=false;
93
-
94
- private handleMouseDown():void{
95
- window.addEventListener("mousemove",this.handleMouseMove);
96
- window.addEventListener("mouseup",this.handleMouseUp);
97
- window.addEventListener("blur",this.handleMouseUp);
98
- this.moveStartValue=this.modelValue;
99
- this.isHover=true;
100
- }
101
- private touchstartPoint:Touch|null=null;
102
- private handleTouchStart(ev:TouchEvent):void{
103
- window.addEventListener("touchmove",this.handleTouchMove,{ passive: false });
104
- window.addEventListener("touchend",this.handleMouseUp,{ passive: false });
105
- window.addEventListener("blur",this.handleMouseUp);
106
- this.touchstartPoint=ev.changedTouches[0];
107
- this.moveStartValue=this.modelValue;
108
- this.isHover=true;
109
- }
110
- private removeEvent():void{
111
- window.removeEventListener("mousemove",this.handleMouseMove);
112
- window.removeEventListener("mouseup",this.handleMouseUp);
113
- window.removeEventListener("touchmove",this.handleTouchMove);
114
- window.removeEventListener("touchend",this.handleMouseUp);
115
- window.removeEventListener("blur",this.handleMouseUp);
116
- }
117
- private handleMouseMove(ev:MouseEvent):void{
118
- this.dx+=ev.movementX;
119
- this.updateEvent(this.displayValue);
120
- }
121
- private handleTouchMove(ev:TouchEvent):void{
122
- if(!this.touchstartPoint) return;
123
- ev.preventDefault();
124
- for(let i=0;i<ev.changedTouches.length;i++){
125
- if(ev.changedTouches[i].identifier==this.touchstartPoint.identifier){
126
- this.dx=ev.changedTouches[i].pageX-this.touchstartPoint.pageX;
127
- this.updateEvent(this.displayValue);
128
- break;
129
- }
130
- }
131
- // this.dx+=ev.movementX;
132
- }
133
- private handleMouseUp():void{
134
- this.updateEvent(this.displayValue);
135
- this.dx=0;
136
- this.removeEvent();
137
- this.isHover=false;
138
-
139
- }
140
- }
141
- </script>
142
-
143
- <style>
144
- .su-slider{
145
- padding: calc(var(--star-ui-input-medium-font-size) );
146
- user-select: none;
147
- }
148
- .su-slider--inner-runway{
149
- height: 4px;
150
- background-color: var(--star-ui-input-border-color);
151
- cursor: pointer;
152
- }
153
- .su-slider--inner-button-wrapper{
154
- width: var(--star-ui-input-medium-font-size);
155
- height: var(--star-ui-input-medium-font-size);
156
- border-radius: 50%;
157
- border: 1px solid var(--star-ui-base-color);
158
- display: inline-block;
159
- position: relative;
160
- margin-left: calc(2px - var(--star-ui-input-medium-font-size) / 2);
161
- top: calc(2px - var(--star-ui-input-medium-font-size) / 2);
162
- cursor: pointer;
163
- background-color: var(--star-ui-backgorund-color);
164
- background-image: radial-gradient(var(--star-ui-backgorund-color) 20%, var(--star-ui-base-color));
165
- }
166
- .su-slider .su-slider--inner-button-wrapper:hover,.su-slider.su-slider-moving .su-slider--inner-button-wrapper{
167
- /*background-color: var(--star-ui-base-color);*/
168
- background-image: radial-gradient(var(--star-ui-backgorund-color) 10%, var(--star-ui-base-color) 90%);
169
- transform: scale(1.2,1.2);
170
- }
171
- </style>
@@ -1,95 +0,0 @@
1
- <template>
2
- <div :class="['star-ui', 'su-switch','star-ui-switch','star-ui-size-'+size]">
3
- <label>
4
- <input ref="input" type="checkbox" :name="name" :checked="modelValue" @change="handeleChange"/>
5
- <div><span></span></div>
6
- </label>
7
- </div>
8
- </template>
9
-
10
- <script lang="ts">
11
- import { Vue } from 'vue-class-component';
12
- import { Watch } from "vue-property-decorator";
13
- import { Register, Prop, Emit } from "@ui-root/reg";
14
- import "../global-style.css";
15
-
16
- @Register({
17
- name:"su-switch"
18
- })
19
- export default class SuInput extends Vue {
20
- declare $refs:{
21
- input:HTMLInputElement
22
- };
23
- @Prop({
24
- type:Boolean,
25
- default:true
26
- })
27
- modelValue!:boolean;
28
- @Prop({
29
- type:String,
30
- default:""
31
- })
32
- name!:string;
33
- @Prop({
34
- type:String,
35
- default:"medium"
36
- })
37
- size!:string;
38
- @Emit("update:modelValue")
39
- private handeleChange():boolean{
40
- const nowChecked = this.$refs.input.checked;
41
- this.$refs.input.checked = this.modelValue;
42
- return nowChecked;
43
- }
44
- @Watch("modelValue")
45
- private modelValueChange(newValue:boolean){
46
- this.$refs.input.checked = newValue;
47
- }
48
- }
49
- </script>
50
-
51
- <style>
52
- .star-ui-switch{
53
- --size: 20px;
54
- display: inline-block;
55
- }
56
- .star-ui-switch.star-ui-size-medium{
57
- --size: calc(var(--star-ui-input-medium-font-size) * 1.2);
58
- }
59
- .star-ui-switch.star-ui-size-mini{
60
- --size: calc(var(--star-ui-input-mini-font-size) * 1.2);
61
- }
62
- .star-ui-switch input{
63
- display: none;
64
- }
65
- .star-ui-switch div{
66
- width: calc(var(--size) * 2.5);
67
- height: var(--size);
68
- border: solid 1px var(--star-ui-base-color);
69
- border-radius: var(--size);
70
- overflow: hidden;
71
- }
72
- .star-ui-switch div span{
73
- display: inline-block;
74
- width: calc(var(--size) - 2px);
75
- height: calc(var(--size) - 2px);
76
- border-radius: 50%;
77
- border: solid 1px var(--star-ui-base-color);
78
- position: relative;
79
- background: var(--star-ui-backgorund-color);
80
- transition: margin-left 0.1s;
81
- }
82
- .star-ui-switch div span::before{
83
- content: "";
84
- width: 100px;
85
- height: 100px;
86
- background: var(--star-ui-base-color);
87
- position: absolute;
88
- right: 50%;
89
- top:-20px;
90
- z-index: -1;
91
- }
92
- .star-ui-switch input:checked+div span{
93
- margin-left: calc(var(--size) * 1.5);
94
- }
95
- </style>
@@ -1,59 +0,0 @@
1
- <template>
2
- <div class="star-ui su-table star-ui-table">
3
- <table class="star-ui star-ui-table--inner" rules="none" frame="void">
4
- <thead class="star-ui star-ui-table--inner-thead">
5
- <tr class="star-ui star-ui-table--inner-tr">
6
- <th v-for="item in columns" :key="item.name+item.key" class="star-ui star-ui-container star-ui-table--inner-th">{{item.name}}</th>
7
- </tr>
8
- </thead>
9
- <tbody class="star-ui star-ui-table--inner-tbody">
10
- <tr v-for="(row,index) in data" :key="index" class="star-ui star-ui-table--inner-tr">
11
- <td v-for="item in columns" :key="item.name+item.key" class="star-ui star-ui-container star-ui-table--inner-td">{{row[item.field]}}</td>
12
- </tr>
13
- <slot></slot>
14
- </tbody>
15
- </table>
16
- </div>
17
- </template>
18
-
19
- <script lang="ts">
20
- import { Vue } from 'vue-class-component';
21
- import { Register, Prop } from "@ui-root/reg";
22
- import "../global-style.css";
23
-
24
-
25
- @Register({
26
- name:"su-table",
27
- props: {
28
- data:{
29
- type:Array,
30
- default:()=>[]
31
- }
32
- }
33
- })
34
- export default class SuTable extends Vue {
35
- // @Prop({
36
- // type:Array,
37
- // default:()=>[]
38
- // })
39
- // data!:any[];
40
- @Prop({
41
- type:Array,
42
- default:()=>[]
43
- })
44
- // eslint-disable-next-line
45
- columns!:any[];
46
- }
47
- </script>
48
-
49
- <style>
50
- .star-ui-tabl{
51
- width: 100%;
52
- }
53
- .star-ui-table--inner-thead{
54
- background-color: var(--star-ui-table-head-color);
55
- }
56
- .star-ui-table--inner-tr{
57
- border-bottom: 1px solid #e8eaec;
58
- }
59
- </style>
@@ -1,116 +0,0 @@
1
- <template>
2
- <div :class="[
3
- 'star-ui',
4
- 'su-tree',
5
- 'star-ui-tree',
6
- {
7
- 'star-ui-tree-highlight-current':highlightCurrent
8
- }
9
- ]">
10
- <tree-item v-for="(item, index) in treeData" :key="index" :size="size" :item="item" :label="label" :value="value" :children="children" :current="current" current-value="currentValue" @node-click="haandleChildNodeClick"></tree-item>
11
- </div>
12
- </template>
13
-
14
- <script lang="ts">
15
- import { Vue } from 'vue-class-component';
16
- import { Register, Prop } from "@ui-root/reg";
17
- import treeItem from "./tree-item.vue"
18
-
19
-
20
- import "../../global-style.css";
21
-
22
- @Register({
23
- name:"su-tree",
24
- components:{
25
- treeItem
26
- }
27
- })
28
- export default class SuTree extends Vue {
29
- @Prop({
30
- type:String,
31
- default:()=>{
32
- return "medium"
33
- }
34
- })
35
- readonly size!:string;
36
- @Prop({
37
- type:Array,
38
- default:()=>{
39
- return []
40
- }
41
- })
42
- readonly treeData!:Record<string, unknown>[];
43
- @Prop({
44
- type:[String,Function],
45
- default:()=>{
46
- return "label"
47
- }
48
- })
49
- readonly label!:string|((item:Record<string, unknown>)=>string);
50
- @Prop({
51
- type:[String,Function],
52
- default:()=>{
53
- return "value"
54
- }
55
- })
56
- readonly value!:string|((item:Record<string, unknown>)=>string|number);
57
- @Prop({
58
- type:[String,Function],
59
- default:()=>{
60
- return "children"
61
- }
62
- })
63
- readonly children!:string|((item:Record<string, unknown>)=>Record<string, unknown>[]);
64
- @Prop({
65
- type:Boolean,
66
- default:()=>{
67
- return false
68
- }
69
- })
70
- readonly highlightCurrent!:boolean;
71
-
72
- private current:Record<string, unknown>={};
73
- private get currentValue():string|number|undefined{
74
- if(typeof this.value == "string"){
75
- return (this.current[this.value]) as string|number|undefined;
76
- }
77
- return this.value(this.current);
78
- }
79
- public setCurrent(current:Record<string, unknown>):void{
80
- this.current=current;
81
- }
82
- public setCurrentByValue(value:string|number):Record<string, unknown>|null{
83
- let task:Record<string, unknown>[] = [];
84
- task.push(...this.treeData);
85
- while(task.length){
86
- const item = task.pop() as Record<string, unknown>;
87
- let itemValue:string|number|undefined;
88
- if(typeof this.value == "string"){
89
- itemValue = (item[this.value]) as string|number|undefined;
90
- }else{
91
- itemValue = this.value(item);
92
- }
93
- if(value == itemValue){
94
- this.current = item;
95
- return item;
96
- }
97
- let children:Record<string, unknown>[]|undefined;
98
- if(typeof this.children == "string"){
99
- children = (item[this.children]) as Record<string, unknown>[]|undefined;
100
- }else{
101
- children = this.children(item);
102
- }
103
- children&&task.push(...children);
104
- }
105
- this.current={};
106
- return null;
107
- }
108
- haandleChildNodeClick(item:Record<string, unknown>,value:string|number|undefined,node:Record<string, unknown>):void{
109
- this.current=item;
110
- this.$emit("node-click",item,value,node);
111
- }
112
- }
113
- </script>
114
-
115
- <style>
116
- </style>