plain-design 1.0.0-beta.21 → 1.0.0-beta.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (793) hide show
  1. package/README.md +2 -2
  2. package/dist/plain-design.commonjs.min.js +2 -2
  3. package/dist/plain-design.min.js +2 -2
  4. package/dist/report.html +38 -38
  5. package/package.json +90 -90
  6. package/src/index.ts +1 -1
  7. package/src/packages/build.ts +7 -7
  8. package/src/packages/components/$address/address.utils.ts +31 -31
  9. package/src/packages/components/$address/createAddressService.tsx +184 -184
  10. package/src/packages/components/$address/index.tsx +7 -7
  11. package/src/packages/components/$configuration/index.tsx +58 -58
  12. package/src/packages/components/$dialog/index.tsx +7 -7
  13. package/src/packages/components/$file/index.tsx +212 -212
  14. package/src/packages/components/$image/index.tsx +7 -7
  15. package/src/packages/components/$message/image.service.utils.tsx +161 -161
  16. package/src/packages/components/$message/index.tsx +7 -7
  17. package/src/packages/components/$notice/index.tsx +7 -7
  18. package/src/packages/components/$object/createObjectService.tsx +203 -203
  19. package/src/packages/components/$object/index.ts +5 -5
  20. package/src/packages/components/$object/object.conver.ts +56 -56
  21. package/src/packages/components/$object/object.service.utils.ts +52 -52
  22. package/src/packages/components/$ov/createOvService.ts +86 -86
  23. package/src/packages/components/$ov/index.tsx +5 -5
  24. package/src/packages/components/$ov/ov.utils.ts +11 -11
  25. package/src/packages/components/$upload/createUploadService.tsx +57 -57
  26. package/src/packages/components/$upload/upload.utils.ts +17 -17
  27. package/src/packages/components/Address/index.tsx +138 -138
  28. package/src/packages/components/AddressCascade/address-cascade.utils.ts +44 -44
  29. package/src/packages/components/AddressCascade/createAddressCascade.hooks.ts +9 -9
  30. package/src/packages/components/AddressCascade/createAddressCascade.multiple.tsx +53 -53
  31. package/src/packages/components/AddressCascade/createAddressCascade.single.tsx +75 -75
  32. package/src/packages/components/AddressCascade/index.tsx +57 -57
  33. package/src/packages/components/Alert/alert.scss +136 -136
  34. package/src/packages/components/Alert/index.tsx +93 -93
  35. package/src/packages/components/Application/application.scss +16 -16
  36. package/src/packages/components/Application/index.tsx +53 -53
  37. package/src/packages/components/Application/service/createApplicationService.tsx +47 -47
  38. package/src/packages/components/Application/service/createApplicationServiceComponent.tsx +41 -41
  39. package/src/packages/components/Application/service/createApplicationServiceManager.tsx +98 -98
  40. package/src/packages/components/Application/service/useApplicationService.tsx +124 -124
  41. package/src/packages/components/Application/theme/theme.ts +258 -258
  42. package/src/packages/components/Application/theme/theme.utils.ts +17 -17
  43. package/src/packages/components/Application/utils/application.utils.ts +26 -26
  44. package/src/packages/components/Application/utils/createServiceReadyObserver.ts +18 -18
  45. package/src/packages/components/ApplicationConfigurationProvider/index.tsx +5 -5
  46. package/src/packages/components/ArrowStep/index.tsx +73 -73
  47. package/src/packages/components/ArrowStepGroup/arrow-step.scss +106 -106
  48. package/src/packages/components/ArrowStepGroup/index.tsx +63 -63
  49. package/src/packages/components/AsyncFormatter/index.tsx +1 -1
  50. package/src/packages/components/AutoTable/AutoTable.tsx +56 -56
  51. package/src/packages/components/AutoTable/auto-table.scss +399 -399
  52. package/src/packages/components/AutoTable/createTableOptionUser.tsx +75 -75
  53. package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +215 -215
  54. package/src/packages/components/AutoTable/filter/useTableOption.filter.search.tsx +168 -168
  55. package/src/packages/components/AutoTable/filter/useTableOption.filter.state.ts +194 -194
  56. package/src/packages/components/AutoTable/index.tsx +4 -4
  57. package/src/packages/components/AutoTable/setting/useTableOption.setting.all.fitler.tsx +79 -79
  58. package/src/packages/components/AutoTable/setting/useTableOption.setting.cache.tsx +145 -145
  59. package/src/packages/components/AutoTable/setting/useTableOption.setting.config.tsx +218 -218
  60. package/src/packages/components/AutoTable/setting/useTableOption.setting.export.tsx +308 -308
  61. package/src/packages/components/AutoTable/setting/useTableOption.setting.import.tsx +100 -100
  62. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.filter.tsx +385 -385
  63. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.sort.tsx +116 -116
  64. package/src/packages/components/AutoTable/setting/useTableOption.setting.tsx +109 -109
  65. package/src/packages/components/AutoTable/setting/useTableOption.setting.utils.ts +40 -40
  66. package/src/packages/components/AutoTable/use/useTableOption.buttons.tsx +227 -227
  67. package/src/packages/components/AutoTable/use/useTableOption.cache.ts +235 -235
  68. package/src/packages/components/AutoTable/use/useTableOption.cache.utils.ts +83 -83
  69. package/src/packages/components/AutoTable/use/useTableOption.check.tsx +80 -80
  70. package/src/packages/components/AutoTable/use/useTableOption.column.popper.tsx +490 -490
  71. package/src/packages/components/AutoTable/use/useTableOption.confirm.tsx +122 -122
  72. package/src/packages/components/AutoTable/use/useTableOption.fill.tsx +152 -152
  73. package/src/packages/components/AutoTable/use/useTableOption.hooks.tsx +132 -132
  74. package/src/packages/components/AutoTable/use/useTableOption.loading.tsx +71 -71
  75. package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +512 -512
  76. package/src/packages/components/AutoTable/use/useTableOption.pagination.tsx +186 -186
  77. package/src/packages/components/AutoTable/use/useTableOption.parent.tsx +131 -131
  78. package/src/packages/components/AutoTable/use/useTableOption.permission.tsx +16 -16
  79. package/src/packages/components/AutoTable/use/useTableOption.render.tsx +34 -34
  80. package/src/packages/components/AutoTable/use/useTableOption.sort.ts +197 -197
  81. package/src/packages/components/AutoTable/use/useTableOption.state.tsx +31 -31
  82. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +78 -78
  83. package/src/packages/components/AutoTable/use/useTableOption.tips.tsx +87 -87
  84. package/src/packages/components/AutoTable/use/useTableOptionKeyboard.tsx +102 -102
  85. package/src/packages/components/AutoTable/utils/AutoModule.ts +10 -10
  86. package/src/packages/components/AutoTable/utils/AutoTable.utils.ts +45 -45
  87. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +196 -196
  88. package/src/packages/components/AutoTable/utils/TableOption.url.ts +153 -153
  89. package/src/packages/components/AutoTable/utils/TableOption.utils.tsx +57 -57
  90. package/src/packages/components/AutoTable/utils/buildPlainDefaultUrlConfig.ts +134 -134
  91. package/src/packages/components/AutoWidthInput/auto-width-input.scss +25 -25
  92. package/src/packages/components/AutoWidthInput/index.tsx +67 -67
  93. package/src/packages/components/Badge/badge.scss +67 -67
  94. package/src/packages/components/Badge/index.tsx +52 -52
  95. package/src/packages/components/Button/button.scss +171 -171
  96. package/src/packages/components/Button/index.tsx +148 -148
  97. package/src/packages/components/ButtonGroup/button-group.scss +73 -73
  98. package/src/packages/components/ButtonGroup/index.tsx +43 -43
  99. package/src/packages/components/Card/card.scss +122 -122
  100. package/src/packages/components/Card/index.tsx +74 -74
  101. package/src/packages/components/Carousel/index.tsx +44 -44
  102. package/src/packages/components/CarouselGroup/carousel.scss +143 -143
  103. package/src/packages/components/CarouselGroup/index.tsx +274 -274
  104. package/src/packages/components/Cascade/cascade.scss +111 -111
  105. package/src/packages/components/Cascade/cascade.utils.ts +68 -68
  106. package/src/packages/components/Cascade/createCascadeHooks.ts +12 -12
  107. package/src/packages/components/Cascade/createCascadePopper.tsx +119 -119
  108. package/src/packages/components/Cascade/createCascadeUtils.ts +15 -15
  109. package/src/packages/components/Cascade/createMultipleCascadeRender.tsx +157 -157
  110. package/src/packages/components/Cascade/createSingleCascadeRender.tsx +175 -175
  111. package/src/packages/components/Cascade/index.tsx +106 -106
  112. package/src/packages/components/CascadePanel/cascade-panel.utils.ts +90 -90
  113. package/src/packages/components/CascadePanel/flat/CascadeFlatPanelNode.tsx +56 -56
  114. package/src/packages/components/CascadePanel/flat/cascade-flat-panel.scss +145 -145
  115. package/src/packages/components/CascadePanel/flat/createCascadeFlatRender.tsx +82 -82
  116. package/src/packages/components/CascadePanel/index.tsx +190 -190
  117. package/src/packages/components/CascadePanel/list/CascadeListPanelItem.tsx +93 -93
  118. package/src/packages/components/CascadePanel/list/CascadeListPanelNode.tsx +69 -69
  119. package/src/packages/components/CascadePanel/list/createCascadeListRender.tsx +27 -27
  120. package/src/packages/components/Checkbox/checkbox.scss +73 -73
  121. package/src/packages/components/Checkbox/index.tsx +141 -141
  122. package/src/packages/components/CheckboxGroup/index.tsx +205 -205
  123. package/src/packages/components/CheckboxInner/checkbox-inner.scss +54 -54
  124. package/src/packages/components/CheckboxInner/index.tsx +34 -34
  125. package/src/packages/components/ClientZoom/index.ts +5 -5
  126. package/src/packages/components/Collapse/collapse.scss +44 -44
  127. package/src/packages/components/Collapse/index.tsx +94 -94
  128. package/src/packages/components/CollapseGroup/index.tsx +70 -70
  129. package/src/packages/components/CollapseTransition/index.tsx +184 -184
  130. package/src/packages/components/ColorPicker/ColorPanel.tsx +125 -125
  131. package/src/packages/components/ColorPicker/color-panel.scss +97 -97
  132. package/src/packages/components/ColorPicker/color-picker.scss +58 -58
  133. package/src/packages/components/ColorPicker/index.tsx +131 -131
  134. package/src/packages/components/ColorPicker/sub/ColorAlphaSlider.tsx +43 -43
  135. package/src/packages/components/ColorPicker/sub/ColorHueSlider.tsx +17 -17
  136. package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +163 -163
  137. package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +125 -125
  138. package/src/packages/components/ColorPicker/sub/color-alpha-slider.scss +8 -8
  139. package/src/packages/components/ColorPicker/sub/color-hue-slider.scss +3 -3
  140. package/src/packages/components/ColorPicker/sub/color-slider.scss +22 -22
  141. package/src/packages/components/ColorPicker/sub/color-sv-panel.scss +55 -55
  142. package/src/packages/components/ColorPicker/useColorPanelEditor.tsx +119 -119
  143. package/src/packages/components/ColorPicker/useColorPanelHistory.tsx +51 -51
  144. package/src/packages/components/ColorPicker/utils/PlainColor.ts +70 -70
  145. package/src/packages/components/ColorPicker/utils/color-picker.utils.tsx +27 -27
  146. package/src/packages/components/DatePicker/createDateRender.multiple.tsx +188 -188
  147. package/src/packages/components/DatePicker/createDateRender.single.tsx +167 -167
  148. package/src/packages/components/DatePicker/createRangeDateRender.range.tsx +106 -106
  149. package/src/packages/components/DatePicker/createRangeDateRender.separate.tsx +112 -112
  150. package/src/packages/components/DatePicker/date.mixin.scss +73 -73
  151. package/src/packages/components/DatePicker/date.scss +542 -542
  152. package/src/packages/components/DatePicker/date.utils.tsx +397 -397
  153. package/src/packages/components/DatePicker/index.tsx +82 -82
  154. package/src/packages/components/DatePicker/panel/DatePanel.tsx +99 -99
  155. package/src/packages/components/DatePicker/panel/DatePanelDate.tsx +278 -278
  156. package/src/packages/components/DatePicker/panel/DatePanelMonth.tsx +190 -190
  157. package/src/packages/components/DatePicker/panel/DatePanelQuarter.tsx +50 -50
  158. package/src/packages/components/DatePicker/panel/DatePanelRange.tsx +146 -146
  159. package/src/packages/components/DatePicker/panel/DatePanelWeek.tsx +52 -52
  160. package/src/packages/components/DatePicker/panel/DatePanelYear.tsx +100 -100
  161. package/src/packages/components/DatePicker/panel/useDatePanel.tsx +618 -618
  162. package/src/packages/components/DatePicker/panel/useDateWeek.tsx +153 -153
  163. package/src/packages/components/DatePicker/useRangeDateRender.tsx +317 -317
  164. package/src/packages/components/Dialog/dialog.scss +258 -258
  165. package/src/packages/components/Dialog/index.tsx +445 -445
  166. package/src/packages/components/Dialog/useDialogMovable.tsx +72 -72
  167. package/src/packages/components/Dialog/utils/dialog.mouse.ts +16 -16
  168. package/src/packages/components/Dialog/utils/dialog.utils.ts +10 -10
  169. package/src/packages/components/Dropdown/dropdown.public.scss +84 -84
  170. package/src/packages/components/Dropdown/dropdown.scss +13 -13
  171. package/src/packages/components/Dropdown/dropdown.utils.tsx +107 -107
  172. package/src/packages/components/Dropdown/index.tsx +161 -161
  173. package/src/packages/components/DropdownGroup/index.tsx +18 -18
  174. package/src/packages/components/DropdownOption/index.tsx +74 -74
  175. package/src/packages/components/Empty/empty.scss +14 -14
  176. package/src/packages/components/Empty/index.tsx +48 -48
  177. package/src/packages/components/FilterFormMultiple/filter-form-multiple.scss +27 -27
  178. package/src/packages/components/FilterFormMultiple/index.tsx +262 -262
  179. package/src/packages/components/FilterFormSingle/index.tsx +168 -168
  180. package/src/packages/components/FilterService/filter/filter.city.tsx +84 -84
  181. package/src/packages/components/FilterService/filter/filter.date.tsx +85 -85
  182. package/src/packages/components/FilterService/filter/filter.datetime.tsx +68 -68
  183. package/src/packages/components/FilterService/filter/filter.district.tsx +85 -85
  184. package/src/packages/components/FilterService/filter/filter.number.tsx +66 -66
  185. package/src/packages/components/FilterService/filter/filter.province.tsx +91 -91
  186. package/src/packages/components/FilterService/filter/filter.select.tsx +66 -66
  187. package/src/packages/components/FilterService/filter/filter.text.tsx +57 -57
  188. package/src/packages/components/FilterService/filter/fitler.object.tsx +115 -115
  189. package/src/packages/components/FilterService/index.tsx +250 -250
  190. package/src/packages/components/FilterService/utils/filter.service.utils.ts +138 -138
  191. package/src/packages/components/FilterService/utils/mergeQueryParam.ts +80 -80
  192. package/src/packages/components/Form/form.scss +169 -169
  193. package/src/packages/components/Form/index.tsx +65 -65
  194. package/src/packages/components/Form/layout/useFormLayout.tsx +266 -266
  195. package/src/packages/components/Form/types/any.tsx +54 -54
  196. package/src/packages/components/Form/types/array.tsx +55 -55
  197. package/src/packages/components/Form/types/arrayjson.tsx +15 -15
  198. package/src/packages/components/Form/types/arraystring.tsx +15 -15
  199. package/src/packages/components/Form/types/date.tsx +72 -72
  200. package/src/packages/components/Form/types/datetime.tsx +8 -8
  201. package/src/packages/components/Form/types/email.tsx +11 -11
  202. package/src/packages/components/Form/types/idcard.tsx +13 -13
  203. package/src/packages/components/Form/types/number.tsx +59 -59
  204. package/src/packages/components/Form/types/phone.tsx +11 -11
  205. package/src/packages/components/Form/types/qq.tsx +11 -11
  206. package/src/packages/components/Form/types/string.tsx +68 -68
  207. package/src/packages/components/Form/types/time.tsx +8 -8
  208. package/src/packages/components/Form/validate/createValidation.tsx +274 -274
  209. package/src/packages/components/Form/validate/useFormItemValidation.tsx +121 -121
  210. package/src/packages/components/Form/validate/useFormValidation.tsx +132 -132
  211. package/src/packages/components/Form/validate/validate.utils.tsx +436 -436
  212. package/src/packages/components/FormCascade/index.tsx +6 -6
  213. package/src/packages/components/FormCheckbox/index.tsx +6 -6
  214. package/src/packages/components/FormCheckboxGroup/index.tsx +6 -6
  215. package/src/packages/components/FormColorPicker/index.tsx +6 -6
  216. package/src/packages/components/FormDatePicker/index.tsx +6 -6
  217. package/src/packages/components/FormInput/index.tsx +6 -6
  218. package/src/packages/components/FormInputNumber/index.tsx +6 -6
  219. package/src/packages/components/FormItem/createFormEditor.tsx +87 -87
  220. package/src/packages/components/FormItem/index.tsx +114 -114
  221. package/src/packages/components/FormRadio/index.tsx +6 -6
  222. package/src/packages/components/FormRadioGroup/index.tsx +6 -6
  223. package/src/packages/components/FormRate/index.tsx +6 -6
  224. package/src/packages/components/FormSelect/index.tsx +6 -6
  225. package/src/packages/components/FormSlider/index.tsx +6 -6
  226. package/src/packages/components/FormTimePicker/index.tsx +6 -6
  227. package/src/packages/components/FormToggle/index.tsx +6 -6
  228. package/src/packages/components/Formatter/index.tsx +64 -64
  229. package/src/packages/components/Grid/GridCol.tsx +72 -72
  230. package/src/packages/components/Grid/GridRow.tsx +55 -55
  231. package/src/packages/components/Grid/grid.scss +109 -109
  232. package/src/packages/components/Grid/grid.utils.ts +21 -21
  233. package/src/packages/components/GridCol/index.tsx +5 -5
  234. package/src/packages/components/GridRow/index.tsx +5 -5
  235. package/src/packages/components/Icon/icon.registry.tsx +21 -21
  236. package/src/packages/components/Icon/icon.scss +12 -12
  237. package/src/packages/components/Icon/index.tsx +54 -54
  238. package/src/packages/components/Illustration/index.tsx +28 -28
  239. package/src/packages/components/Image/image.scss +333 -333
  240. package/src/packages/components/Image/index.tsx +166 -166
  241. package/src/packages/components/ImageUploader/index.tsx +224 -224
  242. package/src/packages/components/Input/index.scss +400 -400
  243. package/src/packages/components/Input/index.tsx +137 -137
  244. package/src/packages/components/Input/input.utils.ts +118 -118
  245. package/src/packages/components/Input/useMultipleInput.tsx +200 -200
  246. package/src/packages/components/Input/useSingleInput.tsx +43 -43
  247. package/src/packages/components/Input/useSuggestionInput.tsx +218 -218
  248. package/src/packages/components/Input/useTextareaInput.tsx +152 -152
  249. package/src/packages/components/Input/uses/useInputEnterHandler.tsx +72 -72
  250. package/src/packages/components/Input/uses/useInputHooks.tsx +21 -21
  251. package/src/packages/components/Input/uses/useInputMaxLength.tsx +35 -35
  252. package/src/packages/components/Input/uses/useInputSuffixIcon.tsx +63 -63
  253. package/src/packages/components/InputGroup/index.tsx +31 -31
  254. package/src/packages/components/InputGroup/input-group.scss +37 -37
  255. package/src/packages/components/InputNumber/NumberResize.tsx +98 -98
  256. package/src/packages/components/InputNumber/index.tsx +36 -36
  257. package/src/packages/components/InputNumber/input-number.utils.tsx +94 -94
  258. package/src/packages/components/InputNumber/number.scss +77 -77
  259. package/src/packages/components/InputNumber/number.utils.ts +3 -3
  260. package/src/packages/components/InputNumber/useInputNumber.multiple.tsx +121 -121
  261. package/src/packages/components/InputNumber/useInputNumber.public.tsx +458 -458
  262. package/src/packages/components/InputNumber/useInputNumber.single.tsx +137 -137
  263. package/src/packages/components/KeepAlive/KeepAliveCacheItemWrapper.tsx +114 -114
  264. package/src/packages/components/KeepAlive/index.tsx +77 -77
  265. package/src/packages/components/KeepAlive/utils/keepalive.utils.ts +33 -33
  266. package/src/packages/components/KeyboardService/index.ts +214 -214
  267. package/src/packages/components/Layout/index.tsx +31 -31
  268. package/src/packages/components/Layout/layout.scss +227 -227
  269. package/src/packages/components/Layout/layout.utils.ts +3 -3
  270. package/src/packages/components/LayoutSection/index.tsx +67 -67
  271. package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -184
  272. package/src/packages/components/List/index.tsx +74 -74
  273. package/src/packages/components/List/list.scss +3 -3
  274. package/src/packages/components/Loading/index.tsx +27 -27
  275. package/src/packages/components/Loading/loading.scss +5 -5
  276. package/src/packages/components/LoadingMask/index.tsx +101 -101
  277. package/src/packages/components/LoadingMask/loading-mask.scss +34 -34
  278. package/src/packages/components/NumberRange/index.tsx +93 -93
  279. package/src/packages/components/Object/createObjectHooks.tsx +13 -13
  280. package/src/packages/components/Object/createObjectRender.multiple.tsx +289 -289
  281. package/src/packages/components/Object/createObjectRender.single.tsx +215 -215
  282. package/src/packages/components/Object/index.tsx +104 -104
  283. package/src/packages/components/Object/object.scss +11 -11
  284. package/src/packages/components/Object/object.utils.ts +54 -54
  285. package/src/packages/components/OuterOperation/index.tsx +5 -5
  286. package/src/packages/components/Ov/index.tsx +23 -23
  287. package/src/packages/components/Ov/ov.utils.ts +9 -9
  288. package/src/packages/components/Ov/usePublicOv.tsx +35 -35
  289. package/src/packages/components/PageThemeUtils/index.tsx +127 -127
  290. package/src/packages/components/Pagination/index.tsx +339 -339
  291. package/src/packages/components/Pagination/pagination.scss +125 -125
  292. package/src/packages/components/Plc/index.tsx +4 -4
  293. package/src/packages/components/PlcAddress/index.tsx +4 -4
  294. package/src/packages/components/PlcAddressItem/index.tsx +4 -4
  295. package/src/packages/components/PlcCheck/index.tsx +5 -5
  296. package/src/packages/components/PlcCheckbox/index.tsx +4 -4
  297. package/src/packages/components/PlcColorPicker/index.tsx +4 -4
  298. package/src/packages/components/PlcDate/index.tsx +4 -4
  299. package/src/packages/components/PlcDateRange/index.tsx +4 -4
  300. package/src/packages/components/PlcDraggier/index.tsx +5 -5
  301. package/src/packages/components/PlcExpand/index.tsx +5 -5
  302. package/src/packages/components/PlcGroup/index.tsx +4 -4
  303. package/src/packages/components/PlcImage/index.tsx +80 -80
  304. package/src/packages/components/PlcIndex/index.tsx +5 -5
  305. package/src/packages/components/PlcInput/index.tsx +4 -4
  306. package/src/packages/components/PlcNumber/index.tsx +4 -4
  307. package/src/packages/components/PlcObject/index.tsx +53 -53
  308. package/src/packages/components/PlcOperation/index.tsx +5 -5
  309. package/src/packages/components/PlcOv/index.tsx +21 -21
  310. package/src/packages/components/PlcRate/index.tsx +4 -4
  311. package/src/packages/components/PlcSelect/index.tsx +4 -4
  312. package/src/packages/components/PlcTextarea/index.tsx +4 -4
  313. package/src/packages/components/PlcTime/index.tsx +4 -4
  314. package/src/packages/components/PlcTimeRange/index.tsx +4 -4
  315. package/src/packages/components/PlcToggle/index.tsx +4 -4
  316. package/src/packages/components/PlcTree/index.tsx +5 -5
  317. package/src/packages/components/Popup/PopupProvider.tsx +21 -21
  318. package/src/packages/components/Popup/index.tsx +393 -393
  319. package/src/packages/components/Popup/popup.scss +13 -13
  320. package/src/packages/components/ProgressBar/index.tsx +87 -87
  321. package/src/packages/components/ProgressBar/progress-bar.scss +40 -40
  322. package/src/packages/components/ProgressBar/progress.utils.ts +24 -24
  323. package/src/packages/components/ProgressCircle/index.tsx +188 -188
  324. package/src/packages/components/ProgressCircle/progress-circle.scss +44 -44
  325. package/src/packages/components/ProgressMini/index.tsx +98 -98
  326. package/src/packages/components/ProgressMini/progress-mini.scss +17 -17
  327. package/src/packages/components/Radio/index.tsx +137 -137
  328. package/src/packages/components/Radio/radio.scss +79 -79
  329. package/src/packages/components/RadioGroup/index.tsx +62 -62
  330. package/src/packages/components/RadioInner/index.tsx +31 -31
  331. package/src/packages/components/RadioInner/radio-inner.scss +17 -17
  332. package/src/packages/components/Rate/index.tsx +152 -152
  333. package/src/packages/components/Rate/rate.scss +32 -32
  334. package/src/packages/components/Reference/ReferenceProvider.tsx +13 -13
  335. package/src/packages/components/Reference/index.tsx +57 -57
  336. package/src/packages/components/Scroll/HorizontalScrollbar.tsx +96 -96
  337. package/src/packages/components/Scroll/VerticalScrollbar.tsx +102 -102
  338. package/src/packages/components/Scroll/index.tsx +380 -380
  339. package/src/packages/components/Scroll/scroll.scss +166 -166
  340. package/src/packages/components/Scroll/useAutoScroll.ts +68 -68
  341. package/src/packages/components/Segment/index.tsx +39 -39
  342. package/src/packages/components/Segment/segment.scss +46 -46
  343. package/src/packages/components/SegmentGroup/index.tsx +48 -48
  344. package/src/packages/components/Select/SelectPanel.tsx +75 -75
  345. package/src/packages/components/Select/createMultipleSelectRender.tsx +244 -244
  346. package/src/packages/components/Select/createPublicSelectRender.tsx +405 -405
  347. package/src/packages/components/Select/createSelectOptionDecoder.tsx +43 -43
  348. package/src/packages/components/Select/createSingleSelectRender.tsx +129 -129
  349. package/src/packages/components/Select/decodeSelectRenderNode.tsx +50 -50
  350. package/src/packages/components/Select/index.tsx +85 -85
  351. package/src/packages/components/Select/select.scss +101 -101
  352. package/src/packages/components/Select/select.utils.tsx +247 -247
  353. package/src/packages/components/SelectDisplay/index.tsx +30 -30
  354. package/src/packages/components/SelectOption/index.tsx +72 -72
  355. package/src/packages/components/Slider/index.tsx +123 -123
  356. package/src/packages/components/Slider/slider.scss +128 -128
  357. package/src/packages/components/Slider/slider.utils.tsx +71 -71
  358. package/src/packages/components/Slider/useSlider.range.tsx +208 -208
  359. package/src/packages/components/Slider/useSlider.single.tsx +149 -149
  360. package/src/packages/components/Slider/useSliderDotDragier.tsx +66 -66
  361. package/src/packages/components/Step/index.tsx +120 -120
  362. package/src/packages/components/StepGroup/index.tsx +63 -63
  363. package/src/packages/components/StepGroup/step-group.scss +411 -411
  364. package/src/packages/components/StepGroup/step.utils.ts +44 -44
  365. package/src/packages/components/Tab/index.tsx +42 -42
  366. package/src/packages/components/TabGroup/TabsHeader.tsx +105 -105
  367. package/src/packages/components/TabGroup/TabsInner.tsx +60 -60
  368. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontal.tsx +94 -94
  369. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalCard.tsx +15 -15
  370. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalShadow.tsx +15 -15
  371. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalText.tsx +66 -66
  372. package/src/packages/components/TabGroup/header/horizontal/tabs-header-card.scss +85 -85
  373. package/src/packages/components/TabGroup/header/horizontal/tabs-header-horizontal.scss +59 -59
  374. package/src/packages/components/TabGroup/header/horizontal/tabs-header-shadow.scss +88 -88
  375. package/src/packages/components/TabGroup/header/horizontal/tabs-header-text.scss +50 -50
  376. package/src/packages/components/TabGroup/header/vertical/TabsHeaderVertical.tsx +24 -24
  377. package/src/packages/components/TabGroup/header/vertical/tabs-header-vertical.scss +116 -116
  378. package/src/packages/components/TabGroup/index.tsx +131 -131
  379. package/src/packages/components/TabGroup/tabs.scss +39 -39
  380. package/src/packages/components/TabGroup/tabs.utils.tsx +22 -22
  381. package/src/packages/components/Table/editor/PlcAddress.tsx +91 -91
  382. package/src/packages/components/Table/editor/PlcAddressItem.tsx +60 -60
  383. package/src/packages/components/Table/editor/PlcCheckbox.tsx +36 -36
  384. package/src/packages/components/Table/editor/PlcColorPicker.tsx +29 -29
  385. package/src/packages/components/Table/editor/PlcDate.tsx +97 -97
  386. package/src/packages/components/Table/editor/PlcDate.utils.tsx +45 -45
  387. package/src/packages/components/Table/editor/PlcDateRange.tsx +73 -73
  388. package/src/packages/components/Table/editor/PlcInput.tsx +21 -21
  389. package/src/packages/components/Table/editor/PlcNumber.tsx +23 -23
  390. package/src/packages/components/Table/editor/PlcRate.tsx +24 -24
  391. package/src/packages/components/Table/editor/PlcSelect.tsx +180 -180
  392. package/src/packages/components/Table/editor/PlcTextarea.tsx +22 -22
  393. package/src/packages/components/Table/editor/PlcTime.tsx +54 -54
  394. package/src/packages/components/Table/editor/PlcTime.utils.ts +15 -15
  395. package/src/packages/components/Table/editor/PlcTimeRange.tsx +66 -66
  396. package/src/packages/components/Table/editor/PlcToggle.tsx +40 -40
  397. package/src/packages/components/Table/index.tsx +4 -4
  398. package/src/packages/components/Table/plc/formatPlcList.tsx +92 -92
  399. package/src/packages/components/Table/plc/group/PlcGroup.tsx +20 -20
  400. package/src/packages/components/Table/plc/plc/Plc.tsx +19 -19
  401. package/src/packages/components/Table/plc/process/copyPlcList.ts +23 -23
  402. package/src/packages/components/Table/plc/process/getPltCellClass.ts +8 -8
  403. package/src/packages/components/Table/plc/process/processAutoFixed.ts +73 -73
  404. package/src/packages/components/Table/plc/process/processHeadPlcList.ts +110 -110
  405. package/src/packages/components/Table/plc/process/processPlcClassAndStyle.ts +43 -43
  406. package/src/packages/components/Table/plc/process/processPlcFixed.ts +81 -81
  407. package/src/packages/components/Table/plc/process/processPlcSort.ts +91 -91
  408. package/src/packages/components/Table/plc/use/useBasePlc.tsx +85 -85
  409. package/src/packages/components/Table/plc/use/useBasePlcGroup.tsx +70 -70
  410. package/src/packages/components/Table/plc/use/usePlc.tsx +136 -136
  411. package/src/packages/components/Table/plc/use/usePlcPropsState.tsx +112 -112
  412. package/src/packages/components/Table/plc/useTablePlc.tsx +226 -226
  413. package/src/packages/components/Table/plc/utils/iteratePlcList.tsx +48 -48
  414. package/src/packages/components/Table/plc/utils/plc.render.ts +122 -122
  415. package/src/packages/components/Table/plc/utils/plc.scope-slots.ts +63 -63
  416. package/src/packages/components/Table/plc/utils/plc.utils.ts +299 -299
  417. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.hooks.tsx +16 -16
  418. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.multiple.tsx +281 -281
  419. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.single.tsx +90 -90
  420. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.tsx +61 -61
  421. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.utils.ts +35 -35
  422. package/src/packages/components/Table/standard/PlcDraggier/PlcDraggier.tsx +55 -55
  423. package/src/packages/components/Table/standard/PlcExclusion.tsx +26 -26
  424. package/src/packages/components/Table/standard/PlcExpand.tsx +206 -206
  425. package/src/packages/components/Table/standard/PlcIndex.tsx +34 -34
  426. package/src/packages/components/Table/standard/PlcOperation/OuterOperation.tsx +208 -208
  427. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +385 -385
  428. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.utils.tsx +157 -157
  429. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +37 -37
  430. package/src/packages/components/Table/standard/PlcOperation/useOperationPermission.ts +53 -53
  431. package/src/packages/components/Table/standard/PlcTree/PlcTree.autoWidth.tsx +52 -52
  432. package/src/packages/components/Table/standard/PlcTree/PlcTree.renderNode.tsx +78 -78
  433. package/src/packages/components/Table/standard/PlcTree/PlcTree.tsx +194 -194
  434. package/src/packages/components/Table/standard/PlcTree/PlcTree.utils.ts +59 -59
  435. package/src/packages/components/Table/standard/PlcTree/PlcTreeHeader.tsx +64 -64
  436. package/src/packages/components/Table/standard/PlcTree/RenderPlcTreeNode.tsx +112 -112
  437. package/src/packages/components/Table/table/Table.tsx +370 -370
  438. package/src/packages/components/Table/table/body/cell.tsx +274 -274
  439. package/src/packages/components/Table/table/body/row.tsx +47 -47
  440. package/src/packages/components/Table/table/body/useCellValue.tsx +132 -132
  441. package/src/packages/components/Table/table/head/head-cell.tsx +94 -94
  442. package/src/packages/components/Table/table/head/useHeadCellResize.ts +79 -79
  443. package/src/packages/components/Table/table/node/useTableNode.tsx +66 -66
  444. package/src/packages/components/Table/table/table.scss +430 -430
  445. package/src/packages/components/Table/table/use/useFixedShadow.ts +48 -48
  446. package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +639 -639
  447. package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +267 -267
  448. package/src/packages/components/Table/table/use/useTableDraggier.tsx +237 -237
  449. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +180 -180
  450. package/src/packages/components/Table/table/use/useTableLoading.tsx +39 -39
  451. package/src/packages/components/Table/table/use/useTableMethods.tsx +65 -65
  452. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +198 -198
  453. package/src/packages/components/Table/table/use/useTableScroll.tsx +49 -49
  454. package/src/packages/components/Table/table/utils/createTableHooks.ts +66 -66
  455. package/src/packages/components/Table/table/utils/table.utils.ts +278 -278
  456. package/src/packages/components/Table/table/utils/url.utils.ts +23 -23
  457. package/src/packages/components/TableOptionSpace/index.ts +5 -5
  458. package/src/packages/components/TableOptionUtils/index.ts +5 -5
  459. package/src/packages/components/Tag/index.tsx +77 -77
  460. package/src/packages/components/Tag/tag.scss +27 -27
  461. package/src/packages/components/Tag/tag.utils.ts +20 -20
  462. package/src/packages/components/ThemePrimaryColors/index.ts +5 -5
  463. package/src/packages/components/TimePicker/createRangeTimeRender.tsx +72 -72
  464. package/src/packages/components/TimePicker/createSeparateRangeTimeRender.tsx +96 -96
  465. package/src/packages/components/TimePicker/createSingleTimeRender.tsx +202 -202
  466. package/src/packages/components/TimePicker/index.tsx +65 -65
  467. package/src/packages/components/TimePicker/panel/TimeBaseColumn.tsx +136 -136
  468. package/src/packages/components/TimePicker/panel/TimeBasePanel.tsx +172 -172
  469. package/src/packages/components/TimePicker/panel/TimePanel.tsx +94 -94
  470. package/src/packages/components/TimePicker/panel/TimeRangePanel.tsx +141 -141
  471. package/src/packages/components/TimePicker/panel/time-base-column.scss +51 -51
  472. package/src/packages/components/TimePicker/panel/time-base-panel.scss +39 -39
  473. package/src/packages/components/TimePicker/panel/time-panel.utils.ts +16 -16
  474. package/src/packages/components/TimePicker/panel/time-range-panel.scss +9 -9
  475. package/src/packages/components/TimePicker/time.scss +10 -10
  476. package/src/packages/components/TimePicker/time.utils.ts +99 -99
  477. package/src/packages/components/TimePicker/useRangeTimeRender.tsx +235 -235
  478. package/src/packages/components/TimePicker/useTimeHooks.ts +11 -11
  479. package/src/packages/components/Toggle/index.tsx +112 -112
  480. package/src/packages/components/Toggle/toggle.scss +147 -147
  481. package/src/packages/components/Tooltip/index.tsx +118 -118
  482. package/src/packages/components/Tooltip/tooltip.scss +5 -5
  483. package/src/packages/components/Transition/index.tsx +133 -133
  484. package/src/packages/components/Tree/RenderTreeNode.tsx +176 -176
  485. package/src/packages/components/Tree/index.tsx +129 -129
  486. package/src/packages/components/Tree/tree.scss +259 -259
  487. package/src/packages/components/TreeCore/TreeCore.type.tsx +138 -138
  488. package/src/packages/components/TreeCore/createTreeCore.tsx +364 -364
  489. package/src/packages/components/TreeCore/createTreeDraggier.tsx +412 -412
  490. package/src/packages/components/TreeCore/createTreeHooks.ts +16 -16
  491. package/src/packages/components/TreeCore/createTreeMethods.tsx +421 -421
  492. package/src/packages/components/TreeCore/createTreeNode.tsx +239 -239
  493. package/src/packages/components/TreeCore/createTreeProps.ts +75 -75
  494. package/src/packages/components/TreeCore/createTreeUtils.ts +140 -140
  495. package/src/packages/components/TreeCore/fromatNodeData.ts +65 -65
  496. package/src/packages/components/TreeNodeWithMenu/index.tsx +91 -91
  497. package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +39 -39
  498. package/src/packages/components/TreeNodeWithMenu/treeNodeWithMenu.utils.ts +12 -12
  499. package/src/packages/components/Triangle/index.tsx +88 -88
  500. package/src/packages/components/Triangle/triangle.scss +12 -12
  501. package/src/packages/components/Upload/index.tsx +422 -422
  502. package/src/packages/components/Upload/upload.scss +185 -185
  503. package/src/packages/components/VirtualList/index.tsx +63 -63
  504. package/src/packages/components/VirtualList/useVirtualList.tsx +348 -348
  505. package/src/packages/components/VirtualList/virtual-list.scss +35 -35
  506. package/src/packages/components/VirtualTable/index.tsx +201 -201
  507. package/src/packages/components/VirtualTable/virtual-table.scss +180 -180
  508. package/src/packages/components/_Object/index.tsx +5 -5
  509. package/src/packages/components/buildPlainDefaultUrlConfig/index.tsx +5 -5
  510. package/src/packages/components/createAddressService/index.ts +5 -5
  511. package/src/packages/components/createHttp/http.utils.ts +56 -56
  512. package/src/packages/components/createHttp/index.tsx +26 -26
  513. package/src/packages/components/createObjectService/index.tsx +5 -5
  514. package/src/packages/components/createOvService/index.tsx +5 -5
  515. package/src/packages/components/createPlainAddressService/index.tsx +101 -101
  516. package/src/packages/components/createPopup/index.ts +5 -5
  517. package/src/packages/components/createProvider/index.ts +5 -5
  518. package/src/packages/components/createScrollUtils/index.tsx +163 -163
  519. package/src/packages/components/createTableOptionUser/index.tsx +5 -5
  520. package/src/packages/components/createUploadService/index.tsx +5 -5
  521. package/src/packages/components/i18n/index.tsx +5 -5
  522. package/src/packages/components/nextPopupId/index.ts +5 -5
  523. package/src/packages/components/useAutoScrollUtils/auto-scroll-utils.scss +48 -48
  524. package/src/packages/components/useAutoScrollUtils/index.tsx +86 -86
  525. package/src/packages/components/useDialog/DialogService.tsx +227 -227
  526. package/src/packages/components/useDialog/dialog-service.scss +50 -50
  527. package/src/packages/components/useDialog/dialog.service.utils.tsx +88 -88
  528. package/src/packages/components/useDialog/index.tsx +66 -66
  529. package/src/packages/components/useImage/ImageService.tsx +262 -262
  530. package/src/packages/components/useImage/index.tsx +28 -28
  531. package/src/packages/components/useMessage/Message.tsx +75 -75
  532. package/src/packages/components/useMessage/MessageContainer.tsx +64 -64
  533. package/src/packages/components/useMessage/MessageManager.tsx +58 -58
  534. package/src/packages/components/useMessage/index.tsx +51 -51
  535. package/src/packages/components/useMessage/message.scss +149 -149
  536. package/src/packages/components/useMessage/message.service.utils.tsx +43 -43
  537. package/src/packages/components/useNotice/Notice.tsx +91 -91
  538. package/src/packages/components/useNotice/NoticeContainer.tsx +65 -65
  539. package/src/packages/components/useNotice/NoticeManager.tsx +58 -58
  540. package/src/packages/components/useNotice/index.tsx +42 -42
  541. package/src/packages/components/useNotice/noitice.service.utils.tsx +48 -48
  542. package/src/packages/components/useNotice/notice.scss +158 -158
  543. package/src/packages/components/usePopup/PopupItem.tsx +404 -404
  544. package/src/packages/components/usePopup/index.tsx +1 -1
  545. package/src/packages/components/usePopup/popup-item.scss +225 -225
  546. package/src/packages/components/usePopup/refresh/applyPosition.ts +61 -61
  547. package/src/packages/components/usePopup/refresh/calcPosition.ts +85 -85
  548. package/src/packages/components/usePopup/refresh/refreshArrow.ts +112 -112
  549. package/src/packages/components/usePopup/refresh/refreshPopup.ts +77 -77
  550. package/src/packages/components/usePopup/trigger/useManagerTrigger.click.tsx +56 -56
  551. package/src/packages/components/usePopup/trigger/useManagerTrigger.clickOutside.tsx +44 -44
  552. package/src/packages/components/usePopup/trigger/useManagerTrigger.contextmenu.tsx +59 -59
  553. package/src/packages/components/usePopup/trigger/useManagerTrigger.focus.tsx +30 -30
  554. package/src/packages/components/usePopup/trigger/useManagerTrigger.hover.tsx +60 -60
  555. package/src/packages/components/usePopup/trigger/usePopupTrigger.tsx +56 -56
  556. package/src/packages/components/usePopup/trigger/useReferenceTrigger.tsx +84 -84
  557. package/src/packages/components/usePopup/usePopup.tsx +57 -57
  558. package/src/packages/components/usePopup/usePopupManager.tsx +313 -313
  559. package/src/packages/components/usePopup/utils/closeAllPopper.ts +5 -5
  560. package/src/packages/components/usePopup/utils/createPopperAttrsGetter.ts +5 -5
  561. package/src/packages/components/usePopup/utils/createPopupManagerHooks.tsx +65 -65
  562. package/src/packages/components/usePopup/utils/decodePlacement.ts +16 -16
  563. package/src/packages/components/usePopup/utils/getAvailableDirection.ts +91 -91
  564. package/src/packages/components/usePopup/utils/getBoundary.ts +25 -25
  565. package/src/packages/components/usePopup/utils/getRects.ts +24 -24
  566. package/src/packages/components/usePopup/utils/handleDirection.ts +10 -10
  567. package/src/packages/components/usePopup/utils/ids2map.ts +11 -11
  568. package/src/packages/components/usePopup/utils/popup.utils.ts +235 -235
  569. package/src/packages/components/usePopup/utils/stopPopup.ts +7 -7
  570. package/src/packages/components/usePopupEditor/index.tsx +116 -116
  571. package/src/packages/components/usePopupEditor/popup-editor.utils.ts +15 -15
  572. package/src/packages/components/usePopupManager/index.ts +5 -5
  573. package/src/packages/components/usePopupTrigger/index.tsx +5 -5
  574. package/src/packages/components/useReferenceTrigger/index.tsx +5 -5
  575. package/src/packages/components/useTooltip/index.tsx +178 -178
  576. package/src/packages/components/useWatchAutoClear/index.ts +5 -5
  577. package/src/packages/directives/ClickWave/click-wave.scss +57 -57
  578. package/src/packages/directives/ClickWave/index.tsx +78 -78
  579. package/src/packages/directives/ResizeDetector/index.tsx +100 -100
  580. package/src/packages/entry.tsx +203 -203
  581. package/src/packages/i18n/i18n.utils.ts +148 -148
  582. package/src/packages/i18n/index.ts +4 -4
  583. package/src/packages/i18n/lang/en-us.ts +247 -247
  584. package/src/packages/i18n/lang/zh-cn.ts +254 -254
  585. package/src/packages/index.tsx +5 -5
  586. package/src/packages/styles/application/application.public.scss +8 -8
  587. package/src/packages/styles/application/application.public.transition.scss +90 -90
  588. package/src/packages/styles/global.import.scss +133 -133
  589. package/src/packages/uses/createInputPopperAttrs.ts +60 -60
  590. package/src/packages/uses/useEdit.ts +89 -89
  591. package/src/packages/uses/useFocusHandler.ts +60 -60
  592. package/src/packages/uses/useFunctionWrapper.ts +29 -29
  593. package/src/packages/uses/useMultipleModel.tsx +63 -63
  594. package/src/packages/uses/useRenderReference.tsx +32 -32
  595. package/src/packages/uses/useStyle.tsx +76 -76
  596. package/src/packages/utils/ClientZoom.ts +50 -50
  597. package/src/packages/utils/FixInput.ts +3 -3
  598. package/src/packages/utils/InnerTransition.ts +13 -13
  599. package/src/packages/utils/LoadingText.ts +11 -11
  600. package/src/packages/utils/OpenController.ts +15 -15
  601. package/src/packages/utils/clearFields.ts +16 -16
  602. package/src/packages/utils/color.utils.ts +189 -189
  603. package/src/packages/utils/combineURL.ts +5 -5
  604. package/src/packages/utils/constant.tsx +5 -5
  605. package/src/packages/utils/createAnimate.ts +45 -45
  606. package/src/packages/utils/createCache.ts +32 -32
  607. package/src/packages/utils/createEffectiveHandler.ts +8 -8
  608. package/src/packages/utils/createError.ts +16 -16
  609. package/src/packages/utils/createFlagManager.ts +34 -34
  610. package/src/packages/utils/createKeyHandler.ts +20 -20
  611. package/src/packages/utils/createProvider.tsx +35 -35
  612. package/src/packages/utils/customDeepClone.ts +15 -15
  613. package/src/packages/utils/deepCloneRenderNode.ts +41 -41
  614. package/src/packages/utils/deepIterateObject.ts +14 -14
  615. package/src/packages/utils/doNothing.ts +3 -3
  616. package/src/packages/utils/findParentElement.ts +12 -12
  617. package/src/packages/utils/findReactElement.tsx +76 -76
  618. package/src/packages/utils/formatServiceOptions.ts +7 -7
  619. package/src/packages/utils/getDeviceInfo.ts +59 -59
  620. package/src/packages/utils/getElement.ts +17 -17
  621. package/src/packages/utils/getElementParents.ts +9 -9
  622. package/src/packages/utils/getElementRect.ts +32 -32
  623. package/src/packages/utils/getRowEl.ts +33 -33
  624. package/src/packages/utils/getScrollParent.ts +11 -11
  625. package/src/packages/utils/incrementalMerge.ts +8 -8
  626. package/src/packages/utils/installAllIcons.ts +19 -19
  627. package/src/packages/utils/installAllLazyIcons.ts +17 -17
  628. package/src/packages/utils/isObjectCommonMatch.ts +21 -21
  629. package/src/packages/utils/isSSR.tsx +3 -3
  630. package/src/packages/utils/iterate.ts +53 -53
  631. package/src/packages/utils/omit.ts +6 -6
  632. package/src/packages/utils/onParentElementsScroll.tsx +26 -26
  633. package/src/packages/utils/pick.ts +11 -11
  634. package/src/packages/utils/plainDate.ts +199 -199
  635. package/src/packages/utils/renderNothing.tsx +1 -1
  636. package/src/packages/utils/runOnce.tsx +14 -14
  637. package/src/packages/utils/type.ts +11 -11
  638. package/src/packages/utils/useMove.tsx +78 -78
  639. package/src/packages/utils/watchEffectAutoClear.ts +16 -16
  640. package/src/pages/data/address.json +39317 -39317
  641. package/src/pages/data/data-1.json +754 -754
  642. package/src/pages/data/data-2.json +3006 -3006
  643. package/src/pages/data/data-200.json +5205 -5205
  644. package/src/pages/data/data-2000.json +51953 -51953
  645. package/src/pages/data/data-50.json +2075 -2075
  646. package/src/pages/data/data.json +30001 -30001
  647. package/src/pages/data/demo.json +1701 -1701
  648. package/src/pages/data/mock.database.js +43 -43
  649. package/src/pages/data/mock.js +141 -141
  650. package/src/pages/data/tree.data.json +87 -87
  651. package/src/pages/env/config/local.js +3 -3
  652. package/src/pages/env/config/prod.js +3 -3
  653. package/src/pages/env/config/undefined.js +1 -1
  654. package/src/pages/env/env.d.ts +4 -4
  655. package/src/pages/env/index.ts +1 -1
  656. package/src/pages/history/createHistory.ts +94 -94
  657. package/src/pages/history/history.utils.ts +64 -64
  658. package/src/pages/index/App.tsx +17 -17
  659. package/src/pages/index/Demo/DemoLine.tsx +23 -23
  660. package/src/pages/index/Demo/DemoRow.scss +128 -128
  661. package/src/pages/index/Demo/DemoRow.tsx +71 -71
  662. package/src/pages/index/Demo/DemoRow.utils.ts +23 -23
  663. package/src/pages/index/Demo/DemoRowController.tsx +45 -45
  664. package/src/pages/index/Demo/index.ts +8 -8
  665. package/src/pages/index/app.scss +197 -197
  666. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +56 -56
  667. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +50 -50
  668. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +75 -75
  669. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +99 -99
  670. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +73 -73
  671. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +26 -26
  672. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +51 -51
  673. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +71 -71
  674. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +181 -181
  675. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +80 -80
  676. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +98 -98
  677. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +58 -58
  678. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +50 -50
  679. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +49 -49
  680. package/src/pages/index/components/bus/DemoAddress.tsx +181 -181
  681. package/src/pages/index/components/bus/DemoAddressCascade.tsx +132 -132
  682. package/src/pages/index/components/bus/DemoFilter.tsx +184 -184
  683. package/src/pages/index/components/columns/DemoPlcAddress.tsx +161 -161
  684. package/src/pages/index/components/columns/DemoPlcDate.tsx +363 -363
  685. package/src/pages/index/components/columns/DemoPlcSelect.tsx +505 -505
  686. package/src/pages/index/components/columns/DemoPlcTime.tsx +293 -293
  687. package/src/pages/index/components/columns/DemoTableColumns.tsx +88 -88
  688. package/src/pages/index/components/form/DemoFormBasic.tsx +516 -516
  689. package/src/pages/index/components/form/DemoFormBlur.tsx +204 -204
  690. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +54 -54
  691. package/src/pages/index/components/form/DemoFormEditControl.tsx +164 -164
  692. package/src/pages/index/components/form/DemoFormElement.tsx +207 -207
  693. package/src/pages/index/components/form/DemoFormLayout.scss +7 -7
  694. package/src/pages/index/components/form/DemoFormLayout.tsx +311 -311
  695. package/src/pages/index/components/form/DemoFormSimplify.tsx +587 -587
  696. package/src/pages/index/components/form/DemoFormSize.tsx +274 -274
  697. package/src/pages/index/components/form/DemoFormVertical.tsx +280 -280
  698. package/src/pages/index/components/normal/DemoAlert.tsx +66 -66
  699. package/src/pages/index/components/normal/DemoBadge.tsx +53 -53
  700. package/src/pages/index/components/normal/DemoButton.tsx +300 -300
  701. package/src/pages/index/components/normal/DemoCard.tsx +176 -176
  702. package/src/pages/index/components/normal/DemoCarousel.tsx +125 -125
  703. package/src/pages/index/components/normal/DemoCascade.tsx +880 -880
  704. package/src/pages/index/components/normal/DemoCheckbox.scss +24 -24
  705. package/src/pages/index/components/normal/DemoCheckbox.tsx +294 -294
  706. package/src/pages/index/components/normal/DemoCollapse.tsx +104 -104
  707. package/src/pages/index/components/normal/DemoColor.scss +20 -20
  708. package/src/pages/index/components/normal/DemoColor.tsx +82 -82
  709. package/src/pages/index/components/normal/DemoColorPicker.tsx +163 -163
  710. package/src/pages/index/components/normal/DemoDate.tsx +443 -443
  711. package/src/pages/index/components/normal/DemoDialog.tsx +507 -507
  712. package/src/pages/index/components/normal/DemoDropdown.tsx +463 -463
  713. package/src/pages/index/components/normal/DemoGrid.scss +26 -26
  714. package/src/pages/index/components/normal/DemoGrid.tsx +181 -181
  715. package/src/pages/index/components/normal/DemoIcon.tsx +39 -39
  716. package/src/pages/index/components/normal/DemoImage.tsx +122 -122
  717. package/src/pages/index/components/normal/DemoInput.tsx +790 -790
  718. package/src/pages/index/components/normal/DemoKeepAlive.tsx +505 -505
  719. package/src/pages/index/components/normal/DemoLayout.tsx +144 -144
  720. package/src/pages/index/components/normal/DemoList.scss +15 -15
  721. package/src/pages/index/components/normal/DemoList.tsx +82 -82
  722. package/src/pages/index/components/normal/DemoLoading.tsx +86 -86
  723. package/src/pages/index/components/normal/DemoNumber.tsx +266 -266
  724. package/src/pages/index/components/normal/DemoPagination.tsx +164 -164
  725. package/src/pages/index/components/normal/DemoPopup.tsx +695 -695
  726. package/src/pages/index/components/normal/DemoProgress.tsx +133 -133
  727. package/src/pages/index/components/normal/DemoRadio.scss +16 -16
  728. package/src/pages/index/components/normal/DemoRadio.tsx +188 -188
  729. package/src/pages/index/components/normal/DemoRate.tsx +77 -77
  730. package/src/pages/index/components/normal/DemoScroll.scss +22 -22
  731. package/src/pages/index/components/normal/DemoScroll.tsx +300 -300
  732. package/src/pages/index/components/normal/DemoSegment.tsx +71 -71
  733. package/src/pages/index/components/normal/DemoSelect.tsx +819 -819
  734. package/src/pages/index/components/normal/DemoSlider.tsx +128 -128
  735. package/src/pages/index/components/normal/DemoStep.scss +18 -18
  736. package/src/pages/index/components/normal/DemoStep.tsx +291 -291
  737. package/src/pages/index/components/normal/DemoTab.tsx +338 -338
  738. package/src/pages/index/components/normal/DemoTag.tsx +100 -100
  739. package/src/pages/index/components/normal/DemoTime.tsx +403 -403
  740. package/src/pages/index/components/normal/DemoToggle.tsx +56 -56
  741. package/src/pages/index/components/normal/DemoTooltip.tsx +120 -120
  742. package/src/pages/index/components/normal/DemoTree.tsx +1183 -1183
  743. package/src/pages/index/components/normal/DemoUpload.tsx +484 -484
  744. package/src/pages/index/components/normal/DemoVirtualList.tsx +378 -378
  745. package/src/pages/index/components/service/DemoDialogService.tsx +249 -249
  746. package/src/pages/index/components/service/DemoFileService.tsx +110 -110
  747. package/src/pages/index/components/service/DemoMessageService.tsx +100 -100
  748. package/src/pages/index/components/service/DemoNoticeService.tsx +99 -99
  749. package/src/pages/index/components/service/DemoPopupService.tsx +325 -325
  750. package/src/pages/index/components/table/DemoPlcOperation.tsx +307 -307
  751. package/src/pages/index/components/table/DemoTableBasic.tsx +220 -220
  752. package/src/pages/index/components/table/DemoTableCheck.tsx +78 -78
  753. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +18 -18
  754. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +112 -112
  755. package/src/pages/index/components/table/DemoTableColDraggable.tsx +80 -80
  756. package/src/pages/index/components/table/DemoTableEdit.tsx +136 -136
  757. package/src/pages/index/components/table/DemoTableExpand.tsx +181 -181
  758. package/src/pages/index/components/table/DemoTableFixed.tsx +131 -131
  759. package/src/pages/index/components/table/DemoTableFormatter.tsx +66 -66
  760. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +67 -67
  761. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +106 -106
  762. package/src/pages/index/components/table/DemoTableSlots.tsx +153 -153
  763. package/src/pages/index/components/table/DemoTableSpan.tsx +167 -167
  764. package/src/pages/index/components/table/DemoTableTree.tsx +976 -976
  765. package/src/pages/index/components/table/DemoVirtualTable.tsx +274 -274
  766. package/src/pages/index/components/test/DemoI18n.tsx +27 -27
  767. package/src/pages/index/components/test/DemoI18n2.jsx +11 -11
  768. package/src/pages/index/home/AppContent.tsx +69 -69
  769. package/src/pages/index/home/AppHead.tsx +105 -105
  770. package/src/pages/index/home/AppHome.tsx +16 -16
  771. package/src/pages/index/home/AppMenu.tsx +38 -38
  772. package/src/pages/index/home/menus.tsx +218 -218
  773. package/src/pages/index/main.tsx +23 -23
  774. package/src/pages/index/nav/$nav.ts +41 -41
  775. package/src/pages/index/pages.d.ts +6 -6
  776. package/src/pages/libs/iconfont-fontcls/demo.css +539 -539
  777. package/src/pages/libs/iconfont-fontcls/demo_index.html +303 -303
  778. package/src/pages/libs/iconfont-fontcls/iconfont.css +35 -35
  779. package/src/pages/libs/iconfont-fontcls/iconfont.json +44 -44
  780. package/src/pages/libs/iconfont-symbol/demo.css +539 -539
  781. package/src/pages/libs/iconfont-symbol/demo_index.html +303 -303
  782. package/src/pages/libs/iconfont-symbol/iconfont.css +35 -35
  783. package/src/pages/libs/iconfont-symbol/iconfont.json +44 -44
  784. package/src/pages/libs/install.iconfont-fontcls.tsx +11 -11
  785. package/src/pages/libs/install.iconfont-symbol.scss +7 -7
  786. package/src/pages/libs/install.iconfont-symbol.tsx +14 -14
  787. package/src/pages/module/address.ts +27 -27
  788. package/src/pages/module/http.ts +24 -24
  789. package/src/pages/module/index.ts +19 -19
  790. package/src/pages/module/object.ts +5 -5
  791. package/src/pages/module/ov.tsx +13 -13
  792. package/src/pages/module/upload.ts +9 -9
  793. package/src/pages/module/useTableOption.ts +28 -28
@@ -1,790 +1,790 @@
1
- import {computed, designComponent, designPage, PropType, reactive, useModel, useRefs, watch} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {$message, $notice, Button, Checkbox, Dropdown, DropdownOption, Icon, Input, InputGroup, Loading, Segment, SegmentGroup, Tag} from "../../../../packages";
4
- import {DemoLine} from "../../Demo/DemoLine";
5
- import './DemoInput.scss';
6
- import {delay} from "plain-utils/utils/delay";
7
- import {FixInput} from "../../../../packages/utils/FixInput";
8
-
9
- export const demo1 = designPage(() => {
10
-
11
- const state = reactive({
12
- val: 'hello world'
13
- });
14
-
15
- return () => (
16
- <DemoRow title="基本用法">
17
- <Input v-model={state.val} width="200"/> {state.val}
18
- </DemoRow>
19
- );
20
- });
21
-
22
-
23
- export const demoSize = designPage(() => {
24
-
25
- const state = reactive({
26
- val: 'hello world'
27
- });
28
-
29
- return () => (
30
- <DemoRow title="大小尺寸">
31
- <DemoLine>
32
- <div>
33
- <Input v-model={state.val} size="mini" width="200px"/>
34
- <Button label="提交" size="mini"/>
35
- </div>
36
- </DemoLine>
37
- <DemoLine>
38
- <div>
39
- <Input v-model={state.val} size="small" width="200px"/>
40
- <Button label="提交" size="small"/>
41
- </div>
42
- </DemoLine>
43
- <DemoLine>
44
- <div>
45
- <Input v-model={state.val} size="normal" width="200px"/>
46
- <Button label="提交" size="normal"/>
47
- </div>
48
- </DemoLine>
49
- <DemoLine>
50
- <div>
51
- <Input v-model={state.val} size="large" width="200px"/>
52
- <Button label="提交" size="large"/>
53
- </div>
54
- </DemoLine>
55
- </DemoRow>
56
- );
57
- });
58
-
59
- export const demoNoClear = designPage(() => {
60
-
61
- const state = reactive({
62
- val: 'hello world'
63
- });
64
-
65
- return () => (
66
- <DemoRow title="去掉清空按钮">
67
- <DemoLine>
68
- <Input v-model={state.val} width="200" noClear/> noClear
69
- </DemoLine>
70
- <DemoLine>
71
- <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" noClear/> noClear
72
- </DemoLine>
73
- <DemoLine>
74
- <Input v-model={state.val} width="200"/>
75
- </DemoLine>
76
- <DemoLine>
77
- <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200"/>
78
- </DemoLine>
79
-
80
- </DemoRow>
81
- );
82
- });
83
-
84
-
85
- export const demoIcon = designPage(() => {
86
-
87
- const state = reactive({
88
- val: 'hello world'
89
- });
90
-
91
- const handler = {
92
- onClickPrefixIcon: () => $message.primary('prefix'),
93
- onClickSuffixIcon: () => $message.warn('suffix'),
94
- onClear: () => $message.error('clear')
95
- };
96
-
97
- return () => (
98
- <DemoRow title="前置后置图标">
99
- <DemoLine>
100
- <Input v-model={state.val} width="200" prefixIcon="pi-search" {...handler}/> prefixIcon
101
- </DemoLine>
102
- <DemoLine>
103
- <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search" {...handler}/> suffixIcon
104
- </DemoLine>
105
- <DemoLine>
106
- <Input v-model={state.val} width="200" prefixIcon="pi-search" noClear {...handler}/> prefixIcon no clear
107
- </DemoLine>
108
- <DemoLine>
109
- <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search" noClear {...handler}/> suffixIcon no
110
- clear
111
- </DemoLine>
112
- <DemoLine>
113
- <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search"
114
- prefixIcon="pi-search" {...handler}/> prefixIcon and suffixIcon
115
- </DemoLine>
116
-
117
- </DemoRow>
118
- );
119
- });
120
-
121
- export const demoSuffix = designPage(() => {
122
-
123
- const Selector = designComponent({
124
- props: {
125
- modelValue: { type: String },
126
- options: { type: Array as PropType<{ label: string, icon: string }[]> },
127
- placement: {},
128
- size: {},
129
- },
130
- emits: {
131
- onUpdateModelValue: (val?: string) => true,
132
- },
133
- setup({ props, event: { emit } }) {
134
-
135
- const model = useModel(() => props.modelValue, emit.onUpdateModelValue);
136
-
137
- return () => (
138
- <Dropdown placement={props.placement as any || 'bottom-start'} size={props.size as any}>
139
- {{
140
- reference: ({ open }: { open?: boolean }) => <span
141
- style={{ paddingLeft: '12px' }}>{props.options?.find(i => i.label === model.value)?.label} <Icon
142
- icon={open ? 'pi-up' : 'pi-down'} style={{ marginLeft: '4px' }}/></span>,
143
- popper: () => <>
144
- {props.options?.map(option => (
145
- <DropdownOption key={option.label} label={option.label} icon={option.icon}
146
- onClick={() => model.value = option.label}/>
147
- ))}
148
- </>
149
- }}
150
- </Dropdown>
151
- );
152
- }
153
- });
154
-
155
- const payOptions = [
156
- { label: '微信支付', icon: 'pi-alipay-circle' },
157
- { label: '支付宝', icon: 'pi-wechatpay' },
158
- { label: '财付通', icon: 'pi-qq' },
159
- ];
160
-
161
- const state = reactive({
162
- val: 'hello world',
163
- size: 'normal' as any,
164
- });
165
-
166
- return () => (
167
- <DemoRow title="前置后置内容" key={state.size}>
168
- <DemoLine>
169
- <SegmentGroup v-model={state.size}>
170
- <Segment label="Mini" val="mini"/>
171
- <Segment label="Small" val="small"/>
172
- <Segment label="Normal" val="normal"/>
173
- <Segment label="Large" val="large"/>
174
- </SegmentGroup>
175
- </DemoLine>
176
- <DemoLine>
177
- <Input v-model={state.val} width="300px" size={state.size}>
178
- {{ prefix: () => (<span>汇款账户</span>) }}
179
- </Input>
180
- <span>prefix test</span>
181
- </DemoLine>
182
- <DemoLine>
183
- <Input v-model={state.val} width="300px" size={state.size}>
184
- {{ prefix: () => (<Selector options={payOptions} modelValue="支付宝" size={state.size}/>) }}
185
- </Input>
186
- <span>prefix dropdown</span>
187
- </DemoLine>
188
-
189
- <DemoLine>
190
- <Input v-model={state.val} width="300px" size={state.size}>
191
- {{ suffix: () => (<span>汇款账户</span>) }}
192
- </Input>
193
- <span>suffix test</span>
194
- </DemoLine>
195
- <DemoLine>
196
- <Input v-model={state.val} width="300px" size={state.size}>
197
- {{
198
- suffix: () => (<Selector options={payOptions} modelValue="支付宝" placement="bottom-end" size={state.size}/>)
199
- }}
200
- </Input>
201
- <span>suffix dropdown</span>
202
- </DemoLine>
203
- </DemoRow>
204
- );
205
- });
206
-
207
- export const demoStatus = designPage(() => {
208
-
209
- const state = reactive({
210
- val: 'hello world'
211
- });
212
-
213
- return () => (
214
- <DemoRow title="状态">
215
- <Input v-model={state.val} width="200"/>
216
- <Input v-model={state.val} status="primary" width="200"/>
217
- <Input v-model={state.val} status="success" width="200"/>
218
- <Input v-model={state.val} status="warn" width="200"/>
219
- <Input v-model={state.val} status="error" width="200"/>
220
- </DemoRow>
221
- );
222
- });
223
-
224
- export const demoBlock = designPage(() => {
225
-
226
- return () => (
227
- <DemoRow title="宽度">
228
- <div>
229
- <Input placeholder="80px" width="80px" noClear/>
230
- <br/>
231
- <br/>
232
- <Input placeholder="150" width="150px" noClear/>
233
- <br/>
234
- <br/>
235
- <Input placeholder="300px" width="300px" noClear/>
236
- <br/>
237
- <br/>
238
- <Input placeholder="Default" noClear/>
239
- </div>
240
- </DemoRow>
241
- );
242
- });
243
-
244
-
245
- export const demoThrottleEnter = designPage(() => {
246
-
247
- return () => (
248
- <DemoRow title="enter事件节流">
249
- <div>
250
- <Input placeholder="500ms" width="300" throttleEnter={500} onEnter={() => $message('enter')}/>
251
- <br/>
252
- <br/>
253
- <Input placeholder="1s" width="300" throttleEnter onEnter={() => $message('enter')}/>
254
- </div>
255
- </DemoRow>
256
- );
257
- });
258
-
259
- export const demoAsyncEnter = designPage(() => {
260
-
261
- const asyncEnterHandler = async () => {
262
- await delay(2000);
263
- console.log('done');
264
- };
265
-
266
- return () => (
267
- <DemoRow title="异步enter处理">
268
- <p>使用asyncHandler来处理异步的enter事件,会自动开启loading事件</p>
269
- <div>
270
- <Input width="300" asyncHandler={asyncEnterHandler}/>
271
- </div>
272
- </DemoRow>
273
- );
274
- });
275
-
276
- export const demoLoading = designPage(() => {
277
-
278
- const state = reactive({
279
- loading: false,
280
- });
281
-
282
- return () => (
283
- <DemoRow title="加载状态">
284
- <Checkbox label="open loading" v-model={state.loading}/>
285
- <Input width="300" loading={state.loading}/>
286
- </DemoRow>
287
- );
288
- });
289
-
290
- export const demoPassword = designPage(() => {
291
-
292
- const state = reactive({
293
- visible: false,
294
- text: '123456789',
295
- });
296
-
297
- return () => (
298
- <DemoRow title="密码输入框">
299
- <Input width="300" type={state.visible ? 'text' : 'password'} v-model={state.text} noClear>
300
- {{
301
- suffixIconContent: () => (
302
- <Icon icon={state.visible ? 'pi-eye-invisible' : 'pi-eye'} onClick={() => state.visible = !state.visible}
303
- className="input-suffix-icon"/>
304
- )
305
- }}
306
- </Input>
307
- </DemoRow>
308
- );
309
- });
310
-
311
-
312
- export const demoRange = designPage(() => {
313
-
314
- const useFocusHandler = (elGetter: () => HTMLElement | null | undefined) => {
315
- const state = reactive({
316
- isFocus: false,
317
- getEl: () => null as null | HTMLElement,
318
- });
319
- const handler = {
320
- onFocus: () => {
321
- state.isFocus = true;
322
- },
323
- onBlue: () => {
324
- state.isFocus = false;
325
- },
326
- };
327
- watch(() => elGetter(), (newEl) => {
328
- const oldEl = state.getEl();
329
- if (!!oldEl) {
330
- oldEl.removeEventListener('focus', handler.onFocus);
331
- oldEl.removeEventListener('blur', handler.onBlue);
332
- }
333
- if (!newEl) {
334
- return;
335
- }
336
- state.getEl = () => newEl || null;
337
- newEl.addEventListener('focus', handler.onFocus);
338
- newEl.addEventListener('blur', handler.onBlue);
339
- }, { immediate: true });
340
- const methods = {
341
- focus: () => state.getEl()?.focus(),
342
- blur: () => state.getEl()?.blur(),
343
- };
344
- return {
345
- state,
346
- ...methods,
347
- };
348
- };
349
-
350
- const { refs, onRef } = useRefs({ start: HTMLInputElement, end: HTMLInputElement });
351
-
352
- const startInput = useFocusHandler(() => refs.start);
353
- const endInput = useFocusHandler(() => refs.end);
354
-
355
- return () => (
356
- <DemoRow title="范围输入框">
357
- <div>
358
- <Input placeholder="300px" width="300px" isFocus={startInput.state.isFocus || endInput.state.isFocus}>
359
- <div className="input-box input-fill">
360
- <FixInput type="text" className="input-box input-fill" value="2022-05-01" style={{ textAlign: 'center' }}
361
- ref={onRef.start}/>
362
- <span>/</span>
363
- <FixInput type="text" className="input-box input-fill" value="2022-05-20" style={{ textAlign: 'center' }}
364
- ref={onRef.end}/>
365
- </div>
366
- </Input>
367
- </div>
368
- </DemoRow>
369
- );
370
- });
371
-
372
-
373
- export const demoMultiple = designPage(() => {
374
-
375
- const state = reactive({
376
- size: 'normal' as any,
377
- arrayStringValue: null,
378
- });
379
-
380
- return () => (
381
- <DemoRow title="多值输入框">
382
- <p>默认支持以空格,换行符中英文逗号分隔字符串。如果需要禁用这个行为,请设置 multipleSeparator 为 null</p>
383
- <DemoLine>
384
- <SegmentGroup v-model={state.size}>
385
- <Segment label="Mini" val="mini"/>
386
- <Segment label="Small" val="small"/>
387
- <Segment label="Normal" val="normal"/>
388
- <Segment label="Large" val="large"/>
389
- </SegmentGroup>
390
- </DemoLine>
391
- <div>
392
- <Input size={state.size} placeholder="normal input" width="300px"/><Button
393
- size={state.size}><span>normal input</span></Button>
394
- <br/>
395
- <br/>
396
- <Input size={state.size} modelValue={['标签001', '标签002', '标签003']} multiple width="300px"/><Button
397
- size={state.size}><span>multiple input</span></Button>
398
- <br/>
399
- <br/>
400
- <div><Input size={state.size} multiple width="300px"/><Button
401
- size={state.size}><span>empty multiple input</span></Button></div>
402
- <br/>
403
- <br/>
404
- <Input size={state.size} modelValue={['标签001', '标签002', '标签003', '标签004', '标签005', '标签006', '标签007']} multiple
405
- width="300px" tagsWrap/>
406
- <br/>
407
- <br/>
408
- <Input size={state.size} modelValue={['标签001', '标签002', '标签003', '标签004', '标签005', '标签006', '标签007']} multiple
409
- width="300px"/>
410
- <br/>
411
- <br/>
412
- <Input v-model={state.arrayStringValue} placeholder="绑定值类型为arraystring" valueType="arraystring" size={state.size} multiple width="300px"/>
413
- {JSON.stringify(state.arrayStringValue)}
414
- </div>
415
- </DemoRow>
416
- );
417
- });
418
-
419
- export const demoBindMultipleText = designPage(() => {
420
-
421
- const state = reactive({
422
- val: ['hello world'],
423
- inputText: '货拉拉拉不拉拉布拉多取决于拉布拉多在货拉拉上拉的多不多',
424
- });
425
-
426
- return () => (
427
- <DemoRow title="多值的时候绑定实时输入的文本">
428
- <Input v-model={state.val} width="200" multiple v-model:multipleText={state.inputText}
429
- placeholder="请输入标签"/>
430
- {state.val?.map((item, index) => <Tag key={index}>{item}</Tag>)}
431
- <div>
432
- <br/>
433
- <Input textarea v-model={state.inputText}/>
434
- </div>
435
- </DemoRow>
436
- );
437
- });
438
-
439
- export const demoTextarea = designPage(() => {
440
-
441
- const state = reactive({
442
- val: 'hello world'
443
- });
444
-
445
- return () => (
446
- <DemoRow title="文本域输入框">
447
- <div><Input v-model={state.val} width="300"/><Button label="normal input"/></div>
448
- <br/>
449
- <br/>
450
- <div>
451
- <Input v-model={state.val} width="300" textarea/>
452
- <Button label="textarea"/>
453
- </div>
454
- <br/>
455
- <br/>
456
- <div>
457
- <Input v-model={state.val} width="300" textarea maxHeight="200"/>
458
- <Button label="max height 200px"/>
459
- </div>
460
- <br/>
461
- <br/>
462
- <div>
463
- <Input v-model={state.val} width="300" textarea height="200"/>
464
- <Button label="height 200px"/>
465
- </div>
466
- <br/>
467
- <br/>
468
- <div>
469
- <Input v-model={state.val} width="300" textarea minHeight="100"/>
470
- <Button label="min height 100px"/>
471
- </div>
472
- </DemoRow>
473
- );
474
- });
475
-
476
- export const DemoPlaceholder = designPage(() => () => (
477
- <>
478
- <DemoRow title="placeholder">
479
- <div><Input placeholder="Placeholder"/></div>
480
- <br/>
481
- <br/>
482
- <div><Input placeholder="Placeholder" multiple/></div>
483
- <br/>
484
- <br/>
485
- <div><Input placeholder="Placeholder" textarea/></div>
486
- <br/>
487
- <br/>
488
- </DemoRow>
489
- </>
490
- ));
491
-
492
-
493
- export const DemoMaxLength = designPage(() => () => (
494
- <>
495
- <DemoRow title="最大文本长度">
496
- <div><Input placeholder="Placeholder" width="300" maxLength={100}/></div>
497
- <br/>
498
- <br/>
499
- <div><Input placeholder="Placeholder" width="300" multiple maxLength={3}/></div>
500
- <br/>
501
- <br/>
502
- <div><Input placeholder="Placeholder" width="300" textarea maxLength={100}/></div>
503
- <br/>
504
- <br/>
505
- </DemoRow>
506
- </>
507
- ));
508
-
509
-
510
- export const DemoVerifyCode = designPage(() => {
511
-
512
- const state = reactive({
513
- code: null
514
- });
515
-
516
- const sendVerifyCodeRequest = async () => {
517
- await delay(1000);
518
- $notice.primary('已经发送验证码,请注意查收!');
519
- };
520
-
521
- const getVerifyCode = (() => {
522
- const state = reactive({ count: null as number | null, loading: false });
523
- return Object.assign(async () => {
524
- if (!!state.loading || !!state.count) {
525
- return;
526
- }
527
- state.loading = true;
528
- await sendVerifyCodeRequest();
529
- state.loading = false;
530
- state.count = 60;
531
- const timer = setInterval(() => {
532
- if (!!state.count) {
533
- state.count--;
534
- }
535
- if (state.count === 0) {
536
- state.count = null;
537
- clearInterval(timer);
538
- }
539
- }, 1000);
540
- }, { state });
541
- })();
542
-
543
- return () => (
544
- <>
545
- <DemoRow title="验证码示例">
546
- <Input v-model={state.code} placeholder="请输入验证码" width="300" maxLength={6}>
547
- {{
548
- suffix: () => (
549
- <span onClick={getVerifyCode}>
550
- {getVerifyCode.state.loading ? <Loading/> : (
551
- <span>{!!getVerifyCode.state.count ? getVerifyCode.state.count + 's' :
552
- <span style={{ cursor: 'pointer' }}>获取验证码</span>}</span>
553
- )}
554
- </span>
555
- )
556
- }}
557
- </Input>
558
- </DemoRow>
559
- </>
560
- );
561
- });
562
-
563
- export const DemoGroup = designPage(() => () => (
564
- <DemoRow title="输入框组">
565
- <InputGroup>
566
- <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
567
- <Button label="Submit" mode="fill"/>
568
- </InputGroup>
569
- <br/>
570
- <br/>
571
- <InputGroup>
572
- <Input placeholder="Placeholder" multiple suffixIcon="pi-search" modelValue={['hello', 'world']}/>
573
- <Button label="Submit" mode="fill"/>
574
- </InputGroup>
575
- <br/>
576
- <br/>
577
- <InputGroup>
578
- <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world" fixedWidth width={120}/>
579
- <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
580
- <Button label="Submit" mode="fill"/>
581
- </InputGroup>
582
- </DemoRow>
583
- ));
584
-
585
-
586
- export const DemoNotEditable = designPage(() => {
587
-
588
- return () => (
589
- <DemoRow title="禁用">
590
- <p>input</p>
591
- <Input placeholder="Placeholder" disabled/>
592
- <br/>
593
- <br/>
594
- <Input placeholder="Placeholder" disabled modelValue="hello world"/>
595
- <br/>
596
- <br/>
597
-
598
- <p>multiple input</p>
599
- <Input placeholder="Placeholder" multiple disabled/>
600
- <br/>
601
- <br/>
602
- <Input placeholder="Placeholder" multiple disabled modelValue={['hello', 'world']}/>
603
- <br/>
604
- <br/>
605
-
606
- <p>textarea</p>
607
- <Input placeholder="Placeholder" disabled textarea/>
608
- <br/>
609
- <br/>
610
- <Input placeholder="Placeholder" disabled modelValue="hello world" textarea/>
611
- <br/>
612
- <br/>
613
-
614
- <p>input group</p>
615
- <InputGroup disabled>
616
- <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
617
- <Button label="Submit" mode="fill"/>
618
- </InputGroup>
619
- </DemoRow>
620
- );
621
- });
622
-
623
-
624
- export const DemoReadonly = designPage(() => {
625
-
626
- return () => (
627
- <DemoRow title="只读">
628
- <p>input</p>
629
- <Input placeholder="Placeholder" readonly/>
630
- <br/>
631
- <br/>
632
- <Input placeholder="Placeholder" readonly modelValue="hello world"/>
633
- <br/>
634
- <br/>
635
-
636
- <p>multiple input</p>
637
- <Input placeholder="Placeholder" multiple readonly/>
638
- <br/>
639
- <br/>
640
- <Input placeholder="Placeholder" multiple readonly modelValue={['hello', 'world']}/>
641
- <br/>
642
- <br/>
643
-
644
- <p>textarea</p>
645
- <Input placeholder="Placeholder" readonly textarea/>
646
- <br/>
647
- <br/>
648
- <Input placeholder="Placeholder" readonly modelValue="hello world" textarea/>
649
- <br/>
650
- <br/>
651
-
652
- <p>input group</p>
653
- <InputGroup readonly>
654
- <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
655
- <Button label="Submit" mode="fill"/>
656
- </InputGroup>
657
- </DemoRow>
658
- );
659
- });
660
-
661
- export const demoSwitchInputType = designPage(() => {
662
-
663
- const state = reactive({
664
- val: 'hello world' as any,
665
- type: 'input',
666
- });
667
-
668
- return () => (
669
- <DemoRow title="基本用法">
670
- <SegmentGroup v-model={state.type} onUpdateModelValue={((val: any) => {
671
- if (val === 'multiple') {
672
- state.val = ['hello'];
673
- } else {
674
- state.val = 'hello world';
675
- }
676
- }) as any}>
677
- <Segment label="input" val="input"/>
678
- <Segment label="textarea" val="textarea"/>
679
- <Segment label="multiple" val="multiple"/>
680
- </SegmentGroup>
681
- <Input v-model={state.val} width="200" textarea={state.type === 'textarea'} multiple={state.type === 'multiple'}/>
682
- {JSON.stringify(state.val)}
683
- </DemoRow>
684
- );
685
- });
686
-
687
- export const demoSuggestion = designPage(() => {
688
-
689
- const state = reactive({
690
- val: null as any,
691
- multipleValue: null as any,
692
- multipleSearchText: null as any,
693
- textarea: '',
694
- });
695
-
696
- const suggestion1 = computed(() => {
697
- const val = state.val?.trim();
698
- return !!val && !!val.length ? [
699
- `${val}`,
700
- `${val}${val}`,
701
- `${val}${val}${val}`,
702
- ] : [
703
- '重庆小面',
704
- '云南过桥米线',
705
- '陕西肉夹馍',
706
- '广东肠粉',
707
- '柳州螺蛳粉',
708
- ];
709
- });
710
-
711
- const suggestion2 = computed(() => {
712
- const val = state.multipleSearchText?.trim();
713
- return !!val && !!val.length ? [
714
- `${val}`,
715
- `${val}${val}`,
716
- `${val}${val}${val}`,
717
- ] : [
718
- '重庆小面',
719
- '云南过桥米线',
720
- '陕西肉夹馍',
721
- '广东肠粉',
722
- '柳州螺蛳粉',
723
- ];
724
- });
725
-
726
- const suggestion3 = computed(() => {
727
- const val = state.textarea?.trim();
728
- return !!val && !!val.length ? [
729
- `${val}`,
730
- `${val}${val}`,
731
- `${val}${val}${val}`,
732
- ] : [
733
- '重庆小面',
734
- '云南过桥米线',
735
- '陕西肉夹馍',
736
- '广东肠粉',
737
- '柳州螺蛳粉',
738
- ];
739
- });
740
-
741
- return () => (
742
- <DemoRow title="推荐输入(自动补全)">
743
- <DemoLine title="普通输入框">
744
- <Input v-model={state.val} width="200" suggestion={suggestion1.value}/> {state.val}
745
- </DemoLine>
746
- <DemoLine title="多值输入框">
747
- <Input v-model={state.multipleValue} width="200" suggestion={suggestion2.value} multiple v-model:multipleText={state.multipleSearchText}/> {state.multipleValue}
748
- </DemoLine>
749
- <DemoLine title="多行输入框">
750
- <Input v-model={state.textarea} width="200" suggestion={suggestion3.value} textarea/> {state.textarea}
751
- </DemoLine>
752
- </DemoRow>
753
- );
754
- });
755
-
756
- export const demoSuggestion2 = designPage(() => {
757
- const state = reactive({
758
- val: null as any,
759
- multipleValue: null as any,
760
- multipleSearchText: null as any,
761
- textarea: '',
762
- });
763
-
764
- const suggestion1 = computed(() => {
765
- let val = state.val?.trim();
766
- if (!val) {
767
- return [];
768
- }
769
- val = val.split('@')[0];
770
- if (!val) {
771
- return [];
772
- }
773
- return [
774
- `${val}@gmail.com`,
775
- `${val}@aliyun.com`,
776
- `${val}@qq.com`,
777
- `${val}@foxmail.com`,
778
- `${val}@163.com`,
779
- ];
780
- });
781
-
782
-
783
- return () => (
784
- <DemoRow title="邮箱自动补全">
785
- <DemoLine title="普通输入框">
786
- <Input v-model={state.val} width="200" suggestion={suggestion1.value}/> {state.val}
787
- </DemoLine>
788
- </DemoRow>
789
- );
790
- });
1
+ import {computed, designComponent, designPage, PropType, reactive, useModel, useRefs, watch} from "plain-design-composition";
2
+ import {DemoRow} from "../../Demo/DemoRow";
3
+ import {$message, $notice, Button, Checkbox, Dropdown, DropdownOption, Icon, Input, InputGroup, Loading, Segment, SegmentGroup, Tag} from "../../../../packages";
4
+ import {DemoLine} from "../../Demo/DemoLine";
5
+ import './DemoInput.scss';
6
+ import {delay} from "plain-utils/utils/delay";
7
+ import {FixInput} from "../../../../packages/utils/FixInput";
8
+
9
+ export const demo1 = designPage(() => {
10
+
11
+ const state = reactive({
12
+ val: 'hello world'
13
+ });
14
+
15
+ return () => (
16
+ <DemoRow title="基本用法">
17
+ <Input v-model={state.val} width="200"/> {state.val}
18
+ </DemoRow>
19
+ );
20
+ });
21
+
22
+
23
+ export const demoSize = designPage(() => {
24
+
25
+ const state = reactive({
26
+ val: 'hello world'
27
+ });
28
+
29
+ return () => (
30
+ <DemoRow title="大小尺寸">
31
+ <DemoLine>
32
+ <div>
33
+ <Input v-model={state.val} size="mini" width="200px"/>
34
+ <Button label="提交" size="mini"/>
35
+ </div>
36
+ </DemoLine>
37
+ <DemoLine>
38
+ <div>
39
+ <Input v-model={state.val} size="small" width="200px"/>
40
+ <Button label="提交" size="small"/>
41
+ </div>
42
+ </DemoLine>
43
+ <DemoLine>
44
+ <div>
45
+ <Input v-model={state.val} size="normal" width="200px"/>
46
+ <Button label="提交" size="normal"/>
47
+ </div>
48
+ </DemoLine>
49
+ <DemoLine>
50
+ <div>
51
+ <Input v-model={state.val} size="large" width="200px"/>
52
+ <Button label="提交" size="large"/>
53
+ </div>
54
+ </DemoLine>
55
+ </DemoRow>
56
+ );
57
+ });
58
+
59
+ export const demoNoClear = designPage(() => {
60
+
61
+ const state = reactive({
62
+ val: 'hello world'
63
+ });
64
+
65
+ return () => (
66
+ <DemoRow title="去掉清空按钮">
67
+ <DemoLine>
68
+ <Input v-model={state.val} width="200" noClear/> noClear
69
+ </DemoLine>
70
+ <DemoLine>
71
+ <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" noClear/> noClear
72
+ </DemoLine>
73
+ <DemoLine>
74
+ <Input v-model={state.val} width="200"/>
75
+ </DemoLine>
76
+ <DemoLine>
77
+ <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200"/>
78
+ </DemoLine>
79
+
80
+ </DemoRow>
81
+ );
82
+ });
83
+
84
+
85
+ export const demoIcon = designPage(() => {
86
+
87
+ const state = reactive({
88
+ val: 'hello world'
89
+ });
90
+
91
+ const handler = {
92
+ onClickPrefixIcon: () => $message.primary('prefix'),
93
+ onClickSuffixIcon: () => $message.warn('suffix'),
94
+ onClear: () => $message.error('clear')
95
+ };
96
+
97
+ return () => (
98
+ <DemoRow title="前置后置图标">
99
+ <DemoLine>
100
+ <Input v-model={state.val} width="200" prefixIcon="pi-search" {...handler}/> prefixIcon
101
+ </DemoLine>
102
+ <DemoLine>
103
+ <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search" {...handler}/> suffixIcon
104
+ </DemoLine>
105
+ <DemoLine>
106
+ <Input v-model={state.val} width="200" prefixIcon="pi-search" noClear {...handler}/> prefixIcon no clear
107
+ </DemoLine>
108
+ <DemoLine>
109
+ <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search" noClear {...handler}/> suffixIcon no
110
+ clear
111
+ </DemoLine>
112
+ <DemoLine>
113
+ <Input modelValue="桃花仙人种桃树,又摘桃花换酒钱" width="200" suffixIcon="pi-search"
114
+ prefixIcon="pi-search" {...handler}/> prefixIcon and suffixIcon
115
+ </DemoLine>
116
+
117
+ </DemoRow>
118
+ );
119
+ });
120
+
121
+ export const demoSuffix = designPage(() => {
122
+
123
+ const Selector = designComponent({
124
+ props: {
125
+ modelValue: { type: String },
126
+ options: { type: Array as PropType<{ label: string, icon: string }[]> },
127
+ placement: {},
128
+ size: {},
129
+ },
130
+ emits: {
131
+ onUpdateModelValue: (val?: string) => true,
132
+ },
133
+ setup({ props, event: { emit } }) {
134
+
135
+ const model = useModel(() => props.modelValue, emit.onUpdateModelValue);
136
+
137
+ return () => (
138
+ <Dropdown placement={props.placement as any || 'bottom-start'} size={props.size as any}>
139
+ {{
140
+ reference: ({ open }: { open?: boolean }) => <span
141
+ style={{ paddingLeft: '12px' }}>{props.options?.find(i => i.label === model.value)?.label} <Icon
142
+ icon={open ? 'pi-up' : 'pi-down'} style={{ marginLeft: '4px' }}/></span>,
143
+ popper: () => <>
144
+ {props.options?.map(option => (
145
+ <DropdownOption key={option.label} label={option.label} icon={option.icon}
146
+ onClick={() => model.value = option.label}/>
147
+ ))}
148
+ </>
149
+ }}
150
+ </Dropdown>
151
+ );
152
+ }
153
+ });
154
+
155
+ const payOptions = [
156
+ { label: '微信支付', icon: 'pi-alipay-circle' },
157
+ { label: '支付宝', icon: 'pi-wechatpay' },
158
+ { label: '财付通', icon: 'pi-qq' },
159
+ ];
160
+
161
+ const state = reactive({
162
+ val: 'hello world',
163
+ size: 'normal' as any,
164
+ });
165
+
166
+ return () => (
167
+ <DemoRow title="前置后置内容" key={state.size}>
168
+ <DemoLine>
169
+ <SegmentGroup v-model={state.size}>
170
+ <Segment label="Mini" val="mini"/>
171
+ <Segment label="Small" val="small"/>
172
+ <Segment label="Normal" val="normal"/>
173
+ <Segment label="Large" val="large"/>
174
+ </SegmentGroup>
175
+ </DemoLine>
176
+ <DemoLine>
177
+ <Input v-model={state.val} width="300px" size={state.size}>
178
+ {{ prefix: () => (<span>汇款账户</span>) }}
179
+ </Input>
180
+ <span>prefix test</span>
181
+ </DemoLine>
182
+ <DemoLine>
183
+ <Input v-model={state.val} width="300px" size={state.size}>
184
+ {{ prefix: () => (<Selector options={payOptions} modelValue="支付宝" size={state.size}/>) }}
185
+ </Input>
186
+ <span>prefix dropdown</span>
187
+ </DemoLine>
188
+
189
+ <DemoLine>
190
+ <Input v-model={state.val} width="300px" size={state.size}>
191
+ {{ suffix: () => (<span>汇款账户</span>) }}
192
+ </Input>
193
+ <span>suffix test</span>
194
+ </DemoLine>
195
+ <DemoLine>
196
+ <Input v-model={state.val} width="300px" size={state.size}>
197
+ {{
198
+ suffix: () => (<Selector options={payOptions} modelValue="支付宝" placement="bottom-end" size={state.size}/>)
199
+ }}
200
+ </Input>
201
+ <span>suffix dropdown</span>
202
+ </DemoLine>
203
+ </DemoRow>
204
+ );
205
+ });
206
+
207
+ export const demoStatus = designPage(() => {
208
+
209
+ const state = reactive({
210
+ val: 'hello world'
211
+ });
212
+
213
+ return () => (
214
+ <DemoRow title="状态">
215
+ <Input v-model={state.val} width="200"/>
216
+ <Input v-model={state.val} status="primary" width="200"/>
217
+ <Input v-model={state.val} status="success" width="200"/>
218
+ <Input v-model={state.val} status="warn" width="200"/>
219
+ <Input v-model={state.val} status="error" width="200"/>
220
+ </DemoRow>
221
+ );
222
+ });
223
+
224
+ export const demoBlock = designPage(() => {
225
+
226
+ return () => (
227
+ <DemoRow title="宽度">
228
+ <div>
229
+ <Input placeholder="80px" width="80px" noClear/>
230
+ <br/>
231
+ <br/>
232
+ <Input placeholder="150" width="150px" noClear/>
233
+ <br/>
234
+ <br/>
235
+ <Input placeholder="300px" width="300px" noClear/>
236
+ <br/>
237
+ <br/>
238
+ <Input placeholder="Default" noClear/>
239
+ </div>
240
+ </DemoRow>
241
+ );
242
+ });
243
+
244
+
245
+ export const demoThrottleEnter = designPage(() => {
246
+
247
+ return () => (
248
+ <DemoRow title="enter事件节流">
249
+ <div>
250
+ <Input placeholder="500ms" width="300" throttleEnter={500} onEnter={() => $message('enter')}/>
251
+ <br/>
252
+ <br/>
253
+ <Input placeholder="1s" width="300" throttleEnter onEnter={() => $message('enter')}/>
254
+ </div>
255
+ </DemoRow>
256
+ );
257
+ });
258
+
259
+ export const demoAsyncEnter = designPage(() => {
260
+
261
+ const asyncEnterHandler = async () => {
262
+ await delay(2000);
263
+ console.log('done');
264
+ };
265
+
266
+ return () => (
267
+ <DemoRow title="异步enter处理">
268
+ <p>使用asyncHandler来处理异步的enter事件,会自动开启loading事件</p>
269
+ <div>
270
+ <Input width="300" asyncHandler={asyncEnterHandler}/>
271
+ </div>
272
+ </DemoRow>
273
+ );
274
+ });
275
+
276
+ export const demoLoading = designPage(() => {
277
+
278
+ const state = reactive({
279
+ loading: false,
280
+ });
281
+
282
+ return () => (
283
+ <DemoRow title="加载状态">
284
+ <Checkbox label="open loading" v-model={state.loading}/>
285
+ <Input width="300" loading={state.loading}/>
286
+ </DemoRow>
287
+ );
288
+ });
289
+
290
+ export const demoPassword = designPage(() => {
291
+
292
+ const state = reactive({
293
+ visible: false,
294
+ text: '123456789',
295
+ });
296
+
297
+ return () => (
298
+ <DemoRow title="密码输入框">
299
+ <Input width="300" type={state.visible ? 'text' : 'password'} v-model={state.text} noClear>
300
+ {{
301
+ suffixIconContent: () => (
302
+ <Icon icon={state.visible ? 'pi-eye-invisible' : 'pi-eye'} onClick={() => state.visible = !state.visible}
303
+ className="input-suffix-icon"/>
304
+ )
305
+ }}
306
+ </Input>
307
+ </DemoRow>
308
+ );
309
+ });
310
+
311
+
312
+ export const demoRange = designPage(() => {
313
+
314
+ const useFocusHandler = (elGetter: () => HTMLElement | null | undefined) => {
315
+ const state = reactive({
316
+ isFocus: false,
317
+ getEl: () => null as null | HTMLElement,
318
+ });
319
+ const handler = {
320
+ onFocus: () => {
321
+ state.isFocus = true;
322
+ },
323
+ onBlue: () => {
324
+ state.isFocus = false;
325
+ },
326
+ };
327
+ watch(() => elGetter(), (newEl) => {
328
+ const oldEl = state.getEl();
329
+ if (!!oldEl) {
330
+ oldEl.removeEventListener('focus', handler.onFocus);
331
+ oldEl.removeEventListener('blur', handler.onBlue);
332
+ }
333
+ if (!newEl) {
334
+ return;
335
+ }
336
+ state.getEl = () => newEl || null;
337
+ newEl.addEventListener('focus', handler.onFocus);
338
+ newEl.addEventListener('blur', handler.onBlue);
339
+ }, { immediate: true });
340
+ const methods = {
341
+ focus: () => state.getEl()?.focus(),
342
+ blur: () => state.getEl()?.blur(),
343
+ };
344
+ return {
345
+ state,
346
+ ...methods,
347
+ };
348
+ };
349
+
350
+ const { refs, onRef } = useRefs({ start: HTMLInputElement, end: HTMLInputElement });
351
+
352
+ const startInput = useFocusHandler(() => refs.start);
353
+ const endInput = useFocusHandler(() => refs.end);
354
+
355
+ return () => (
356
+ <DemoRow title="范围输入框">
357
+ <div>
358
+ <Input placeholder="300px" width="300px" isFocus={startInput.state.isFocus || endInput.state.isFocus}>
359
+ <div className="input-box input-fill">
360
+ <FixInput type="text" className="input-box input-fill" value="2022-05-01" style={{ textAlign: 'center' }}
361
+ ref={onRef.start}/>
362
+ <span>/</span>
363
+ <FixInput type="text" className="input-box input-fill" value="2022-05-20" style={{ textAlign: 'center' }}
364
+ ref={onRef.end}/>
365
+ </div>
366
+ </Input>
367
+ </div>
368
+ </DemoRow>
369
+ );
370
+ });
371
+
372
+
373
+ export const demoMultiple = designPage(() => {
374
+
375
+ const state = reactive({
376
+ size: 'normal' as any,
377
+ arrayStringValue: null,
378
+ });
379
+
380
+ return () => (
381
+ <DemoRow title="多值输入框">
382
+ <p>默认支持以空格,换行符中英文逗号分隔字符串。如果需要禁用这个行为,请设置 multipleSeparator 为 null</p>
383
+ <DemoLine>
384
+ <SegmentGroup v-model={state.size}>
385
+ <Segment label="Mini" val="mini"/>
386
+ <Segment label="Small" val="small"/>
387
+ <Segment label="Normal" val="normal"/>
388
+ <Segment label="Large" val="large"/>
389
+ </SegmentGroup>
390
+ </DemoLine>
391
+ <div>
392
+ <Input size={state.size} placeholder="normal input" width="300px"/><Button
393
+ size={state.size}><span>normal input</span></Button>
394
+ <br/>
395
+ <br/>
396
+ <Input size={state.size} modelValue={['标签001', '标签002', '标签003']} multiple width="300px"/><Button
397
+ size={state.size}><span>multiple input</span></Button>
398
+ <br/>
399
+ <br/>
400
+ <div><Input size={state.size} multiple width="300px"/><Button
401
+ size={state.size}><span>empty multiple input</span></Button></div>
402
+ <br/>
403
+ <br/>
404
+ <Input size={state.size} modelValue={['标签001', '标签002', '标签003', '标签004', '标签005', '标签006', '标签007']} multiple
405
+ width="300px" tagsWrap/>
406
+ <br/>
407
+ <br/>
408
+ <Input size={state.size} modelValue={['标签001', '标签002', '标签003', '标签004', '标签005', '标签006', '标签007']} multiple
409
+ width="300px"/>
410
+ <br/>
411
+ <br/>
412
+ <Input v-model={state.arrayStringValue} placeholder="绑定值类型为arraystring" valueType="arraystring" size={state.size} multiple width="300px"/>
413
+ {JSON.stringify(state.arrayStringValue)}
414
+ </div>
415
+ </DemoRow>
416
+ );
417
+ });
418
+
419
+ export const demoBindMultipleText = designPage(() => {
420
+
421
+ const state = reactive({
422
+ val: ['hello world'],
423
+ inputText: '货拉拉拉不拉拉布拉多取决于拉布拉多在货拉拉上拉的多不多',
424
+ });
425
+
426
+ return () => (
427
+ <DemoRow title="多值的时候绑定实时输入的文本">
428
+ <Input v-model={state.val} width="200" multiple v-model:multipleText={state.inputText}
429
+ placeholder="请输入标签"/>
430
+ {state.val?.map((item, index) => <Tag key={index}>{item}</Tag>)}
431
+ <div>
432
+ <br/>
433
+ <Input textarea v-model={state.inputText}/>
434
+ </div>
435
+ </DemoRow>
436
+ );
437
+ });
438
+
439
+ export const demoTextarea = designPage(() => {
440
+
441
+ const state = reactive({
442
+ val: 'hello world'
443
+ });
444
+
445
+ return () => (
446
+ <DemoRow title="文本域输入框">
447
+ <div><Input v-model={state.val} width="300"/><Button label="normal input"/></div>
448
+ <br/>
449
+ <br/>
450
+ <div>
451
+ <Input v-model={state.val} width="300" textarea/>
452
+ <Button label="textarea"/>
453
+ </div>
454
+ <br/>
455
+ <br/>
456
+ <div>
457
+ <Input v-model={state.val} width="300" textarea maxHeight="200"/>
458
+ <Button label="max height 200px"/>
459
+ </div>
460
+ <br/>
461
+ <br/>
462
+ <div>
463
+ <Input v-model={state.val} width="300" textarea height="200"/>
464
+ <Button label="height 200px"/>
465
+ </div>
466
+ <br/>
467
+ <br/>
468
+ <div>
469
+ <Input v-model={state.val} width="300" textarea minHeight="100"/>
470
+ <Button label="min height 100px"/>
471
+ </div>
472
+ </DemoRow>
473
+ );
474
+ });
475
+
476
+ export const DemoPlaceholder = designPage(() => () => (
477
+ <>
478
+ <DemoRow title="placeholder">
479
+ <div><Input placeholder="Placeholder"/></div>
480
+ <br/>
481
+ <br/>
482
+ <div><Input placeholder="Placeholder" multiple/></div>
483
+ <br/>
484
+ <br/>
485
+ <div><Input placeholder="Placeholder" textarea/></div>
486
+ <br/>
487
+ <br/>
488
+ </DemoRow>
489
+ </>
490
+ ));
491
+
492
+
493
+ export const DemoMaxLength = designPage(() => () => (
494
+ <>
495
+ <DemoRow title="最大文本长度">
496
+ <div><Input placeholder="Placeholder" width="300" maxLength={100}/></div>
497
+ <br/>
498
+ <br/>
499
+ <div><Input placeholder="Placeholder" width="300" multiple maxLength={3}/></div>
500
+ <br/>
501
+ <br/>
502
+ <div><Input placeholder="Placeholder" width="300" textarea maxLength={100}/></div>
503
+ <br/>
504
+ <br/>
505
+ </DemoRow>
506
+ </>
507
+ ));
508
+
509
+
510
+ export const DemoVerifyCode = designPage(() => {
511
+
512
+ const state = reactive({
513
+ code: null
514
+ });
515
+
516
+ const sendVerifyCodeRequest = async () => {
517
+ await delay(1000);
518
+ $notice.primary('已经发送验证码,请注意查收!');
519
+ };
520
+
521
+ const getVerifyCode = (() => {
522
+ const state = reactive({ count: null as number | null, loading: false });
523
+ return Object.assign(async () => {
524
+ if (!!state.loading || !!state.count) {
525
+ return;
526
+ }
527
+ state.loading = true;
528
+ await sendVerifyCodeRequest();
529
+ state.loading = false;
530
+ state.count = 60;
531
+ const timer = setInterval(() => {
532
+ if (!!state.count) {
533
+ state.count--;
534
+ }
535
+ if (state.count === 0) {
536
+ state.count = null;
537
+ clearInterval(timer);
538
+ }
539
+ }, 1000);
540
+ }, { state });
541
+ })();
542
+
543
+ return () => (
544
+ <>
545
+ <DemoRow title="验证码示例">
546
+ <Input v-model={state.code} placeholder="请输入验证码" width="300" maxLength={6}>
547
+ {{
548
+ suffix: () => (
549
+ <span onClick={getVerifyCode}>
550
+ {getVerifyCode.state.loading ? <Loading/> : (
551
+ <span>{!!getVerifyCode.state.count ? getVerifyCode.state.count + 's' :
552
+ <span style={{ cursor: 'pointer' }}>获取验证码</span>}</span>
553
+ )}
554
+ </span>
555
+ )
556
+ }}
557
+ </Input>
558
+ </DemoRow>
559
+ </>
560
+ );
561
+ });
562
+
563
+ export const DemoGroup = designPage(() => () => (
564
+ <DemoRow title="输入框组">
565
+ <InputGroup>
566
+ <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
567
+ <Button label="Submit" mode="fill"/>
568
+ </InputGroup>
569
+ <br/>
570
+ <br/>
571
+ <InputGroup>
572
+ <Input placeholder="Placeholder" multiple suffixIcon="pi-search" modelValue={['hello', 'world']}/>
573
+ <Button label="Submit" mode="fill"/>
574
+ </InputGroup>
575
+ <br/>
576
+ <br/>
577
+ <InputGroup>
578
+ <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world" fixedWidth width={120}/>
579
+ <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
580
+ <Button label="Submit" mode="fill"/>
581
+ </InputGroup>
582
+ </DemoRow>
583
+ ));
584
+
585
+
586
+ export const DemoNotEditable = designPage(() => {
587
+
588
+ return () => (
589
+ <DemoRow title="禁用">
590
+ <p>input</p>
591
+ <Input placeholder="Placeholder" disabled/>
592
+ <br/>
593
+ <br/>
594
+ <Input placeholder="Placeholder" disabled modelValue="hello world"/>
595
+ <br/>
596
+ <br/>
597
+
598
+ <p>multiple input</p>
599
+ <Input placeholder="Placeholder" multiple disabled/>
600
+ <br/>
601
+ <br/>
602
+ <Input placeholder="Placeholder" multiple disabled modelValue={['hello', 'world']}/>
603
+ <br/>
604
+ <br/>
605
+
606
+ <p>textarea</p>
607
+ <Input placeholder="Placeholder" disabled textarea/>
608
+ <br/>
609
+ <br/>
610
+ <Input placeholder="Placeholder" disabled modelValue="hello world" textarea/>
611
+ <br/>
612
+ <br/>
613
+
614
+ <p>input group</p>
615
+ <InputGroup disabled>
616
+ <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
617
+ <Button label="Submit" mode="fill"/>
618
+ </InputGroup>
619
+ </DemoRow>
620
+ );
621
+ });
622
+
623
+
624
+ export const DemoReadonly = designPage(() => {
625
+
626
+ return () => (
627
+ <DemoRow title="只读">
628
+ <p>input</p>
629
+ <Input placeholder="Placeholder" readonly/>
630
+ <br/>
631
+ <br/>
632
+ <Input placeholder="Placeholder" readonly modelValue="hello world"/>
633
+ <br/>
634
+ <br/>
635
+
636
+ <p>multiple input</p>
637
+ <Input placeholder="Placeholder" multiple readonly/>
638
+ <br/>
639
+ <br/>
640
+ <Input placeholder="Placeholder" multiple readonly modelValue={['hello', 'world']}/>
641
+ <br/>
642
+ <br/>
643
+
644
+ <p>textarea</p>
645
+ <Input placeholder="Placeholder" readonly textarea/>
646
+ <br/>
647
+ <br/>
648
+ <Input placeholder="Placeholder" readonly modelValue="hello world" textarea/>
649
+ <br/>
650
+ <br/>
651
+
652
+ <p>input group</p>
653
+ <InputGroup readonly>
654
+ <Input placeholder="Placeholder" suffixIcon="pi-search" modelValue="hello world"/>
655
+ <Button label="Submit" mode="fill"/>
656
+ </InputGroup>
657
+ </DemoRow>
658
+ );
659
+ });
660
+
661
+ export const demoSwitchInputType = designPage(() => {
662
+
663
+ const state = reactive({
664
+ val: 'hello world' as any,
665
+ type: 'input',
666
+ });
667
+
668
+ return () => (
669
+ <DemoRow title="基本用法">
670
+ <SegmentGroup v-model={state.type} onUpdateModelValue={((val: any) => {
671
+ if (val === 'multiple') {
672
+ state.val = ['hello'];
673
+ } else {
674
+ state.val = 'hello world';
675
+ }
676
+ }) as any}>
677
+ <Segment label="input" val="input"/>
678
+ <Segment label="textarea" val="textarea"/>
679
+ <Segment label="multiple" val="multiple"/>
680
+ </SegmentGroup>
681
+ <Input v-model={state.val} width="200" textarea={state.type === 'textarea'} multiple={state.type === 'multiple'}/>
682
+ {JSON.stringify(state.val)}
683
+ </DemoRow>
684
+ );
685
+ });
686
+
687
+ export const demoSuggestion = designPage(() => {
688
+
689
+ const state = reactive({
690
+ val: null as any,
691
+ multipleValue: null as any,
692
+ multipleSearchText: null as any,
693
+ textarea: '',
694
+ });
695
+
696
+ const suggestion1 = computed(() => {
697
+ const val = state.val?.trim();
698
+ return !!val && !!val.length ? [
699
+ `${val}`,
700
+ `${val}${val}`,
701
+ `${val}${val}${val}`,
702
+ ] : [
703
+ '重庆小面',
704
+ '云南过桥米线',
705
+ '陕西肉夹馍',
706
+ '广东肠粉',
707
+ '柳州螺蛳粉',
708
+ ];
709
+ });
710
+
711
+ const suggestion2 = computed(() => {
712
+ const val = state.multipleSearchText?.trim();
713
+ return !!val && !!val.length ? [
714
+ `${val}`,
715
+ `${val}${val}`,
716
+ `${val}${val}${val}`,
717
+ ] : [
718
+ '重庆小面',
719
+ '云南过桥米线',
720
+ '陕西肉夹馍',
721
+ '广东肠粉',
722
+ '柳州螺蛳粉',
723
+ ];
724
+ });
725
+
726
+ const suggestion3 = computed(() => {
727
+ const val = state.textarea?.trim();
728
+ return !!val && !!val.length ? [
729
+ `${val}`,
730
+ `${val}${val}`,
731
+ `${val}${val}${val}`,
732
+ ] : [
733
+ '重庆小面',
734
+ '云南过桥米线',
735
+ '陕西肉夹馍',
736
+ '广东肠粉',
737
+ '柳州螺蛳粉',
738
+ ];
739
+ });
740
+
741
+ return () => (
742
+ <DemoRow title="推荐输入(自动补全)">
743
+ <DemoLine title="普通输入框">
744
+ <Input v-model={state.val} width="200" suggestion={suggestion1.value}/> {state.val}
745
+ </DemoLine>
746
+ <DemoLine title="多值输入框">
747
+ <Input v-model={state.multipleValue} width="200" suggestion={suggestion2.value} multiple v-model:multipleText={state.multipleSearchText}/> {state.multipleValue}
748
+ </DemoLine>
749
+ <DemoLine title="多行输入框">
750
+ <Input v-model={state.textarea} width="200" suggestion={suggestion3.value} textarea/> {state.textarea}
751
+ </DemoLine>
752
+ </DemoRow>
753
+ );
754
+ });
755
+
756
+ export const demoSuggestion2 = designPage(() => {
757
+ const state = reactive({
758
+ val: null as any,
759
+ multipleValue: null as any,
760
+ multipleSearchText: null as any,
761
+ textarea: '',
762
+ });
763
+
764
+ const suggestion1 = computed(() => {
765
+ let val = state.val?.trim();
766
+ if (!val) {
767
+ return [];
768
+ }
769
+ val = val.split('@')[0];
770
+ if (!val) {
771
+ return [];
772
+ }
773
+ return [
774
+ `${val}@gmail.com`,
775
+ `${val}@aliyun.com`,
776
+ `${val}@qq.com`,
777
+ `${val}@foxmail.com`,
778
+ `${val}@163.com`,
779
+ ];
780
+ });
781
+
782
+
783
+ return () => (
784
+ <DemoRow title="邮箱自动补全">
785
+ <DemoLine title="普通输入框">
786
+ <Input v-model={state.val} width="200" suggestion={suggestion1.value}/> {state.val}
787
+ </DemoLine>
788
+ </DemoRow>
789
+ );
790
+ });