plain-design 1.0.0-beta.10 → 1.0.0-beta.101

Sign up to get free protection for your applications and to get access to all the features.
Files changed (517) hide show
  1. package/dist/plain-design.commonjs.min.js +3 -3
  2. package/dist/plain-design.min.css +63 -48
  3. package/dist/plain-design.min.js +3 -3
  4. package/dist/report.html +5 -5
  5. package/package.json +49 -47
  6. package/src/packages/build.ts +2 -10
  7. package/src/packages/components/$address/createAddressService.tsx +20 -1
  8. package/src/packages/components/$file/index.tsx +1 -1
  9. package/src/packages/components/$loading/index.tsx +3 -0
  10. package/src/packages/components/$message/image.service.utils.tsx +2 -2
  11. package/src/packages/components/$object/createObjectService.tsx +38 -24
  12. package/src/packages/components/$object/object.service.utils.ts +7 -3
  13. package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +108 -0
  14. package/src/packages/components/$previewer/image-previewer-fixed-container.scss +18 -0
  15. package/src/packages/components/$previewer/index.tsx +52 -0
  16. package/src/packages/components/$search/SearchFooter.tsx +32 -0
  17. package/src/packages/components/$search/SearchList.tsx +207 -0
  18. package/src/packages/components/$search/SearchServicePanel.tsx +233 -0
  19. package/src/packages/components/$search/createSearchService.tsx +43 -0
  20. package/src/packages/components/$search/index.tsx +6 -0
  21. package/src/packages/components/$search/search-service.scss +220 -0
  22. package/src/packages/components/$search/search.utils.tsx +112 -0
  23. package/src/packages/components/$upload/createUploadService.tsx +1 -1
  24. package/src/packages/components/AddressCascade/createAddressCascade.multiple.tsx +1 -0
  25. package/src/packages/components/AddressCascade/createAddressCascade.single.tsx +1 -0
  26. package/src/packages/components/AddressCascade/index.tsx +2 -0
  27. package/src/packages/components/Alert/alert.scss +7 -4
  28. package/src/packages/components/Alert/index.tsx +4 -4
  29. package/src/packages/components/Application/index.tsx +6 -3
  30. package/src/packages/components/Application/service/createApplicationServiceManager.tsx +5 -2
  31. package/src/packages/components/Application/service/useApplicationService.tsx +2 -0
  32. package/src/packages/components/Application/theme/theme.ts +50 -28
  33. package/src/packages/components/Application/utils/application.utils.ts +2 -6
  34. package/src/packages/components/ArrowStepGroup/arrow-step.scss +17 -4
  35. package/src/packages/components/AutoLoadingObserver/index.tsx +173 -0
  36. package/src/packages/components/AutoTable/AutoTable.tsx +1 -1
  37. package/src/packages/components/AutoTable/auto-table.scss +62 -20
  38. package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +6 -7
  39. package/src/packages/components/AutoTable/filter/useTableOption.filter.search.tsx +5 -5
  40. package/src/packages/components/AutoTable/setting/useTableOption.setting.all.fitler.tsx +4 -4
  41. package/src/packages/components/AutoTable/setting/useTableOption.setting.cache.tsx +16 -16
  42. package/src/packages/components/AutoTable/setting/useTableOption.setting.config.tsx +11 -11
  43. package/src/packages/components/AutoTable/setting/useTableOption.setting.export.tsx +20 -20
  44. package/src/packages/components/AutoTable/setting/useTableOption.setting.import.tsx +1 -1
  45. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.filter.tsx +11 -11
  46. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.sort.tsx +7 -7
  47. package/src/packages/components/AutoTable/setting/useTableOption.setting.tsx +2 -2
  48. package/src/packages/components/AutoTable/use/useTableOption.buttons.tsx +30 -18
  49. package/src/packages/components/AutoTable/use/useTableOption.cache.ts +1 -1
  50. package/src/packages/components/AutoTable/use/useTableOption.check.tsx +1 -1
  51. package/src/packages/components/AutoTable/use/useTableOption.column.popper.tsx +10 -9
  52. package/src/packages/components/AutoTable/use/useTableOption.confirm.tsx +3 -3
  53. package/src/packages/components/AutoTable/use/useTableOption.fill.tsx +2 -1
  54. package/src/packages/components/AutoTable/use/useTableOption.hooks.tsx +9 -1
  55. package/src/packages/components/AutoTable/use/useTableOption.loading.tsx +9 -3
  56. package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +19 -17
  57. package/src/packages/components/AutoTable/use/useTableOption.pagination.tsx +8 -3
  58. package/src/packages/components/AutoTable/use/useTableOption.sort.ts +5 -5
  59. package/src/packages/components/AutoTable/use/useTableOption.state.tsx +1 -0
  60. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +10 -3
  61. package/src/packages/components/AutoTable/use/useTableOption.tips.tsx +1 -1
  62. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +4 -0
  63. package/src/packages/components/AutoTable/utils/TableOption.utils.tsx +1 -1
  64. package/src/packages/components/Badge/badge.scss +1 -1
  65. package/src/packages/components/Box/box.scss +6 -0
  66. package/src/packages/components/Box/index.tsx +30 -0
  67. package/src/packages/components/Button/button.scss +41 -9
  68. package/src/packages/components/Button/index.tsx +69 -11
  69. package/src/packages/components/ButtonGroup/button-group.scss +2 -2
  70. package/src/packages/components/ButtonGroup/index.tsx +1 -1
  71. package/src/packages/components/Card/card.scss +1 -1
  72. package/src/packages/components/Carousel/carousel.scss +391 -0
  73. package/src/packages/components/Carousel/index.tsx +569 -22
  74. package/src/packages/components/CarouselItem/index.tsx +77 -0
  75. package/src/packages/components/Cascade/cascade.scss +2 -2
  76. package/src/packages/components/Cascade/createMultipleCascadeRender.tsx +1 -1
  77. package/src/packages/components/Cascade/createSingleCascadeRender.tsx +2 -2
  78. package/src/packages/components/Cascade/index.tsx +1 -1
  79. package/src/packages/components/CascadePanel/flat/cascade-flat-panel.scss +22 -34
  80. package/src/packages/components/CascadePanel/flat/createCascadeFlatRender.tsx +1 -1
  81. package/src/packages/components/CascadePanel/list/CascadeListPanelItem.tsx +3 -3
  82. package/src/packages/components/Checkbox/checkbox.scss +4 -0
  83. package/src/packages/components/Checkbox/index.tsx +1 -1
  84. package/src/packages/components/CheckboxGroup/index.tsx +2 -2
  85. package/src/packages/components/CheckboxInner/checkbox-inner.scss +2 -1
  86. package/src/packages/components/ColorPicker/color-picker.scss +6 -0
  87. package/src/packages/components/ConfirmPopup/confirm-popup.scss +16 -0
  88. package/src/packages/components/ConfirmPopup/index.tsx +72 -0
  89. package/src/packages/components/Corner/corner.scss +14 -0
  90. package/src/packages/components/Corner/index.tsx +80 -0
  91. package/src/packages/components/DatePicker/createDateRender.multiple.tsx +1 -0
  92. package/src/packages/components/DatePicker/createDateRender.single.tsx +1 -0
  93. package/src/packages/components/DatePicker/createRangeDateRender.range.tsx +33 -25
  94. package/src/packages/components/DatePicker/createRangeDateRender.separate.tsx +11 -3
  95. package/src/packages/components/DatePicker/date.scss +2 -2
  96. package/src/packages/components/DatePicker/date.utils.tsx +4 -3
  97. package/src/packages/components/DatePicker/index.tsx +2 -2
  98. package/src/packages/components/DatePicker/panel/DatePanelDate.tsx +7 -7
  99. package/src/packages/components/DatePicker/panel/DatePanelMonth.tsx +12 -12
  100. package/src/packages/components/DatePicker/useRangeDateRender.tsx +1 -0
  101. package/src/packages/components/Dialog/dialog.scss +7 -4
  102. package/src/packages/components/Dialog/index.tsx +15 -25
  103. package/src/packages/components/Dropdown/dropdown.public.scss +10 -0
  104. package/src/packages/components/Dropdown/dropdown.utils.tsx +4 -3
  105. package/src/packages/components/Dropdown/index.tsx +2 -2
  106. package/src/packages/components/DropdownOption/index.tsx +3 -3
  107. package/src/packages/components/DropdownSeparator/index.tsx +8 -0
  108. package/src/packages/components/Empty/index.tsx +1 -1
  109. package/src/packages/components/FilterFormMultiple/filter-form-multiple.scss +10 -1
  110. package/src/packages/components/FilterFormMultiple/index.tsx +34 -13
  111. package/src/packages/components/FilterFormSingle/index.tsx +9 -4
  112. package/src/packages/components/FilterService/filter/filter.city.tsx +4 -4
  113. package/src/packages/components/FilterService/filter/filter.date.tsx +4 -4
  114. package/src/packages/components/FilterService/filter/filter.datetime.tsx +2 -2
  115. package/src/packages/components/FilterService/filter/filter.district.tsx +4 -4
  116. package/src/packages/components/FilterService/filter/filter.number.tsx +1 -1
  117. package/src/packages/components/FilterService/filter/filter.province.tsx +4 -4
  118. package/src/packages/components/FilterService/filter/filter.select.tsx +3 -3
  119. package/src/packages/components/FilterService/filter/filter.text.tsx +4 -4
  120. package/src/packages/components/FilterService/filter/fitler.object.tsx +4 -4
  121. package/src/packages/components/FilterService/index.tsx +7 -7
  122. package/src/packages/components/FilterService/utils/filter.service.utils.ts +1 -1
  123. package/src/packages/components/Form/form.scss +85 -2
  124. package/src/packages/components/Form/index.tsx +10 -1
  125. package/src/packages/components/Form/layout/useFormLayout.tsx +88 -23
  126. package/src/packages/components/Form/types/any.tsx +6 -6
  127. package/src/packages/components/Form/types/array.tsx +7 -7
  128. package/src/packages/components/Form/types/date.tsx +6 -6
  129. package/src/packages/components/Form/types/email.tsx +1 -1
  130. package/src/packages/components/Form/types/idcard.tsx +1 -1
  131. package/src/packages/components/Form/types/number.tsx +7 -7
  132. package/src/packages/components/Form/types/phone.tsx +1 -1
  133. package/src/packages/components/Form/types/qq.tsx +1 -1
  134. package/src/packages/components/Form/types/string.tsx +7 -7
  135. package/src/packages/components/Form/validate/createValidation.tsx +6 -2
  136. package/src/packages/components/Form/validate/useFormValidation.tsx +21 -16
  137. package/src/packages/components/Form/validate/validate.utils.tsx +4 -1
  138. package/src/packages/components/FormItem/FormItemValidateMessage.tsx +16 -0
  139. package/src/packages/components/FormItem/index.tsx +31 -18
  140. package/src/packages/components/Formatter/index.tsx +1 -1
  141. package/src/packages/components/Grid/GridCol.tsx +4 -3
  142. package/src/packages/components/Grid/GridRow.tsx +42 -6
  143. package/src/packages/components/Grid/grid.scss +2 -2
  144. package/src/packages/components/Image/image.scss +5 -4
  145. package/src/packages/components/Image/index.tsx +15 -14
  146. package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +574 -0
  147. package/src/packages/components/ImagePreviewer/ImagePreviewerButtonBar.tsx +140 -0
  148. package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +54 -0
  149. package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +202 -0
  150. package/src/packages/components/ImagePreviewer/PreviewerLoading.tsx +26 -0
  151. package/src/packages/components/ImagePreviewer/image-previewer.scss +244 -0
  152. package/src/packages/components/ImagePreviewer/image-previewer.utils.tsx +136 -0
  153. package/src/packages/components/ImagePreviewer/index.tsx +5 -0
  154. package/src/packages/components/ImagePreviewer/previewer-loading.scss +52 -0
  155. package/src/packages/components/ImageUploader/index.tsx +10 -8
  156. package/src/packages/components/Input/index.scss +57 -13
  157. package/src/packages/components/Input/index.tsx +22 -6
  158. package/src/packages/components/Input/input.utils.ts +3 -2
  159. package/src/packages/components/Input/useMultipleInput.tsx +17 -92
  160. package/src/packages/components/Input/useSingleInput.tsx +15 -13
  161. package/src/packages/components/Input/useTextareaInput.tsx +23 -20
  162. package/src/packages/components/Input/uses/useInputEnterHandler.tsx +1 -1
  163. package/src/packages/components/Input/uses/useInputHooks.tsx +11 -11
  164. package/src/packages/components/Input/uses/useInputSuffixIcon.tsx +12 -8
  165. package/src/packages/components/InputNumber/NumberResize.tsx +14 -1
  166. package/src/packages/components/InputNumber/index.tsx +1 -1
  167. package/src/packages/components/InputNumber/input-number.utils.tsx +7 -5
  168. package/src/packages/components/InputNumber/number.scss +17 -2
  169. package/src/packages/components/InputNumber/useInputNumber.public.tsx +25 -6
  170. package/src/packages/components/Loading/loading.scss +2 -0
  171. package/src/packages/components/LoadingMask/index.tsx +1 -1
  172. package/src/packages/components/Object/createObjectRender.multiple.tsx +1 -1
  173. package/src/packages/components/Object/createObjectRender.single.tsx +7 -3
  174. package/src/packages/components/Object/object.scss +15 -2
  175. package/src/packages/components/Object/object.utils.ts +3 -1
  176. package/src/packages/components/PageCard/index.tsx +48 -0
  177. package/src/packages/components/PageCard/page-card.scss +124 -0
  178. package/src/packages/components/PageCardContent/index.tsx +44 -0
  179. package/src/packages/components/PageCardTitle/index.tsx +51 -0
  180. package/src/packages/components/PageRenderList/index.tsx +22 -0
  181. package/src/packages/components/PageThemeUtils/deepmerge.ts +21 -0
  182. package/src/packages/components/PageThemeUtils/index.tsx +184 -49
  183. package/src/packages/components/Pagination/index.tsx +7 -7
  184. package/src/packages/components/Pagination/pagination.scss +4 -3
  185. package/src/packages/components/Paragraph/index.tsx +46 -0
  186. package/src/packages/components/Paragraph/paragraph.scss +12 -0
  187. package/src/packages/components/ParagraphItem/index.tsx +21 -0
  188. package/src/packages/components/PlcImage/index.tsx +8 -2
  189. package/src/packages/components/PlcObject/index.tsx +1 -1
  190. package/src/packages/components/PlcOv/index.tsx +14 -4
  191. package/src/packages/components/Popup/PopupProvider.tsx +1 -2
  192. package/src/packages/components/Popup/index.tsx +13 -3
  193. package/src/packages/components/ProgressBar/progress-bar.scss +1 -1
  194. package/src/packages/components/RollingNumber/index.tsx +66 -0
  195. package/src/packages/components/Scroll/index.tsx +47 -9
  196. package/src/packages/components/Scroll/scroll.scss +4 -2
  197. package/src/packages/components/Select/SelectPanel.tsx +4 -1
  198. package/src/packages/components/Select/createMultipleSelectRender.tsx +4 -4
  199. package/src/packages/components/Select/createPublicSelectRender.tsx +1 -1
  200. package/src/packages/components/Select/select.utils.tsx +1 -1
  201. package/src/packages/components/SelectDisplay/index.tsx +1 -1
  202. package/src/packages/components/SelectGroup/index.tsx +37 -0
  203. package/src/packages/components/Slider/index.tsx +1 -1
  204. package/src/packages/components/Slider/slider.scss +1 -1
  205. package/src/packages/components/SortList/index.tsx +191 -0
  206. package/src/packages/components/SortList/sort-list.scss +11 -0
  207. package/src/packages/components/Space/index.tsx +36 -0
  208. package/src/packages/components/Space/space.scss +39 -0
  209. package/src/packages/components/StackCard/index.tsx +416 -0
  210. package/src/packages/components/StackCard/stack-card.scss +40 -0
  211. package/src/packages/components/StackCardItem/index.tsx +24 -0
  212. package/src/packages/components/StepGroup/step-group.scss +9 -9
  213. package/src/packages/components/TabGroup/TabsInner.tsx +5 -3
  214. package/src/packages/components/TabGroup/header/horizontal/tabs-header-horizontal.scss +0 -1
  215. package/src/packages/components/TabGroup/index.tsx +5 -1
  216. package/src/packages/components/TabGroup/tabs.scss +26 -0
  217. package/src/packages/components/Table/editor/PlcAddress.tsx +7 -7
  218. package/src/packages/components/Table/editor/PlcDate.utils.tsx +1 -1
  219. package/src/packages/components/Table/editor/PlcTime.utils.ts +1 -1
  220. package/src/packages/components/Table/plc/use/useBasePlc.tsx +1 -1
  221. package/src/packages/components/Table/plc/useTablePlc.tsx +1 -1
  222. package/src/packages/components/Table/plc/utils/plc.utils.ts +1 -1
  223. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.multiple.tsx +4 -4
  224. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.tsx +1 -1
  225. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.utils.ts +1 -1
  226. package/src/packages/components/Table/standard/PlcExpand.tsx +20 -22
  227. package/src/packages/components/Table/standard/PlcIndex.tsx +1 -1
  228. package/src/packages/components/Table/standard/PlcOperation/OuterOperation.tsx +5 -4
  229. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +7 -7
  230. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.utils.tsx +2 -0
  231. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +5 -3
  232. package/src/packages/components/Table/standard/PlcTree/PlcTree.renderNode.tsx +7 -4
  233. package/src/packages/components/Table/standard/PlcTree/PlcTree.tsx +1 -1
  234. package/src/packages/components/Table/standard/PlcTree/PlcTree.utils.ts +1 -1
  235. package/src/packages/components/Table/standard/PlcTree/RenderPlcTreeNode.tsx +2 -1
  236. package/src/packages/components/Table/table/Table.tsx +11 -3
  237. package/src/packages/components/Table/table/body/cell.tsx +17 -12
  238. package/src/packages/components/Table/table/body/row.tsx +1 -1
  239. package/src/packages/components/Table/table/body/useCellValue.tsx +10 -6
  240. package/src/packages/components/Table/table/table.scss +20 -16
  241. package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +20 -8
  242. package/src/packages/components/Table/table/use/useTableDraggier.tsx +1 -1
  243. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +6 -4
  244. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +8 -8
  245. package/src/packages/components/Table/table/utils/createTableHooks.ts +4 -2
  246. package/src/packages/components/Table/table/utils/table.utils.ts +7 -1
  247. package/src/packages/components/ThemeColor/index.tsx +22 -0
  248. package/src/packages/components/ThemeColor/theme-color.scss +36 -0
  249. package/src/packages/components/ThemeColorSelector/index.tsx +53 -0
  250. package/src/packages/components/ThemeDarkSelector/index.tsx +37 -0
  251. package/src/packages/components/ThemeEditor/index.tsx +199 -0
  252. package/src/packages/components/ThemeEditor/theme-editor.scss +106 -0
  253. package/src/packages/components/ThemeLocaleSelector/index.tsx +41 -0
  254. package/src/packages/components/ThemeShapeSelector/index.tsx +55 -0
  255. package/src/packages/components/ThemeSizeSelector/index.tsx +50 -0
  256. package/src/packages/components/TimePicker/createRangeTimeRender.tsx +11 -3
  257. package/src/packages/components/TimePicker/createSeparateRangeTimeRender.tsx +11 -3
  258. package/src/packages/components/TimePicker/createSingleTimeRender.tsx +1 -0
  259. package/src/packages/components/TimePicker/index.tsx +1 -1
  260. package/src/packages/components/TimePicker/time.utils.ts +2 -1
  261. package/src/packages/components/TimePicker/useRangeTimeRender.tsx +1 -0
  262. package/src/packages/components/Toggle/index.tsx +6 -2
  263. package/src/packages/components/Toggle/toggle.scss +102 -98
  264. package/src/packages/components/Transition/index.tsx +2 -1
  265. package/src/packages/components/Tree/RenderTreeNode.tsx +7 -3
  266. package/src/packages/components/Tree/index.tsx +4 -3
  267. package/src/packages/components/Tree/tree.scss +8 -1
  268. package/src/packages/components/TreeCore/createTreeDraggier.tsx +62 -52
  269. package/src/packages/components/TreeCore/createTreeMethods.tsx +1 -0
  270. package/src/packages/components/TreeCore/createTreeProps.ts +1 -1
  271. package/src/packages/components/TreeCore/createTreeUtils.ts +1 -1
  272. package/src/packages/components/TreeNodeWithMenu/index.tsx +44 -6
  273. package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +1 -0
  274. package/src/packages/components/TreeNodeWithMenu/treeNodeWithMenu.utils.ts +12 -0
  275. package/src/packages/components/Upload/index.tsx +12 -12
  276. package/src/packages/components/VirtualList/createVirtualDraggier.ts +375 -0
  277. package/src/packages/components/VirtualList/index.tsx +56 -10
  278. package/src/packages/components/VirtualList/useVirtualList.tsx +239 -115
  279. package/src/packages/components/VirtualList/virtual-list.scss +41 -18
  280. package/src/packages/components/VirtualTable/index.tsx +29 -16
  281. package/src/packages/components/VirtualTable/virtual-table.scss +2 -3
  282. package/src/packages/components/createAutoScrollManager/index.tsx +41 -0
  283. package/src/packages/components/createHttp/index.tsx +4 -1
  284. package/src/packages/components/createPlainAddressService/index.tsx +12 -6
  285. package/src/packages/components/createRequestInterceptor/index.ts +139 -0
  286. package/src/packages/components/createScrollDraggier/index.ts +341 -0
  287. package/src/packages/components/createTransitionHandler/index.ts +46 -0
  288. package/src/packages/components/createVirtualDraggier/index.ts +5 -0
  289. package/src/packages/components/createWebDraggier/index.ts +5 -0
  290. package/src/packages/components/loadFile/index.ts +20 -0
  291. package/src/packages/components/useAutoScrollUtils/index.tsx +1 -1
  292. package/src/packages/components/useDialog/DialogService.tsx +22 -10
  293. package/src/packages/components/useDialog/index.tsx +2 -2
  294. package/src/packages/components/useImage/ImageService.tsx +35 -12
  295. package/src/packages/components/useLoading/LoadingService.tsx +106 -0
  296. package/src/packages/components/useLoading/index.tsx +31 -0
  297. package/src/packages/components/useLoading/loading.service.scss +25 -0
  298. package/src/packages/components/useLoading/loading.service.utils.tsx +13 -0
  299. package/src/packages/components/useMessage/Message.tsx +9 -3
  300. package/src/packages/components/useMessage/index.tsx +1 -1
  301. package/src/packages/components/useMessage/message.scss +7 -3
  302. package/src/packages/components/useNotice/Notice.tsx +4 -2
  303. package/src/packages/components/useNotice/index.tsx +2 -2
  304. package/src/packages/components/useNotice/notice.scss +3 -3
  305. package/src/packages/components/usePageRender/index.tsx +3 -0
  306. package/src/packages/components/usePageRenderContext/index.tsx +8 -0
  307. package/src/packages/components/usePopup/PopupItem.tsx +60 -28
  308. package/src/packages/components/usePopup/popup-item.scss +34 -3
  309. package/src/packages/components/usePopup/refresh/MaxMinTopLeft.ts +38 -0
  310. package/src/packages/components/usePopup/refresh/calcPosition.ts +7 -4
  311. package/src/packages/components/usePopup/refresh/refreshPopup.ts +3 -1
  312. package/src/packages/components/usePopup/trigger/useManagerTrigger.clickOutside.tsx +2 -2
  313. package/src/packages/components/usePopup/usePopup.tsx +23 -7
  314. package/src/packages/components/usePopup/usePopupManager.tsx +2 -1
  315. package/src/packages/components/usePopup/utils/popup.utils.ts +8 -4
  316. package/src/packages/components/useTooltip/index.tsx +14 -3
  317. package/src/packages/directives/ResizeDetector/index.tsx +10 -3
  318. package/src/packages/entry.tsx +95 -4
  319. package/src/packages/i18n/i18n.utils.ts +235 -111
  320. package/src/packages/i18n/index.ts +4 -3
  321. package/src/packages/i18n/lang/en-us.ts +257 -185
  322. package/src/packages/i18n/lang/zh-cn.ts +72 -0
  323. package/src/packages/styles/application/application.public.scss +7 -0
  324. package/src/packages/styles/global.import.scss +17 -1
  325. package/src/packages/uses/useCollapseStyles.tsx +56 -0
  326. package/src/packages/uses/useDragHorizontalScroll.ts +82 -0
  327. package/src/packages/uses/useEdit.ts +5 -1
  328. package/src/packages/uses/useStyle.tsx +20 -6
  329. package/src/packages/utils/ComponentUtils.ts +10 -0
  330. package/src/packages/utils/buildCycleIndexList.ts +31 -0
  331. package/src/packages/utils/createDraggier.ts +256 -0
  332. package/src/packages/utils/createListUtils.ts +38 -0
  333. package/src/packages/utils/findReactElement.tsx +2 -2
  334. package/src/packages/utils/getDeviceInfo.ts +44 -44
  335. package/src/packages/utils/inheritSlots.ts +28 -0
  336. package/src/packages/utils/onParentElementsScroll.tsx +1 -1
  337. package/src/packages/utils/plainDate.ts +6 -2
  338. package/src/packages/utils/renderInputModeTextRangeValue.tsx +25 -0
  339. package/src/packages/utils/watchEffectAutoClear.ts +19 -7
  340. package/src/packages/components/CarouselGroup/carousel.scss +0 -143
  341. package/src/packages/components/CarouselGroup/index.tsx +0 -274
  342. package/src/packages/components/createProvider/index.ts +0 -5
  343. package/src/packages/utils/createProvider.tsx +0 -35
  344. package/src/packages/utils/doNothing.ts +0 -3
  345. package/src/packages/utils/findParentElement.ts +0 -12
  346. package/src/packages/utils/formatServiceOptions.ts +0 -7
  347. package/src/packages/utils/getElement.ts +0 -17
  348. package/src/packages/utils/getElementParents.ts +0 -9
  349. package/src/packages/utils/getScrollParent.ts +0 -11
  350. package/src/packages/utils/iterate.ts +0 -53
  351. package/src/packages/utils/omit.ts +0 -6
  352. package/src/packages/utils/pick.ts +0 -11
  353. package/src/packages/utils/runOnce.tsx +0 -14
  354. package/src/pages/data/address.json +0 -39317
  355. package/src/pages/data/data-1.json +0 -754
  356. package/src/pages/data/data-2.json +0 -3006
  357. package/src/pages/data/data-200.json +0 -5206
  358. package/src/pages/data/data-2000.json +0 -51954
  359. package/src/pages/data/data-50.json +0 -2075
  360. package/src/pages/data/data.json +0 -30002
  361. package/src/pages/data/demo.json +0 -1702
  362. package/src/pages/data/mock.database.js +0 -43
  363. package/src/pages/data/mock.js +0 -141
  364. package/src/pages/data/tree.data.json +0 -87
  365. package/src/pages/env/config/local.js +0 -3
  366. package/src/pages/env/config/prod.js +0 -3
  367. package/src/pages/env/config/undefined.js +0 -1
  368. package/src/pages/env/env.d.ts +0 -4
  369. package/src/pages/env/index.ts +0 -1
  370. package/src/pages/history/createHistory.ts +0 -94
  371. package/src/pages/history/history.utils.ts +0 -64
  372. package/src/pages/index/App.tsx +0 -17
  373. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  374. package/src/pages/index/Demo/DemoRow.scss +0 -128
  375. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  376. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  377. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  378. package/src/pages/index/Demo/index.ts +0 -8
  379. package/src/pages/index/app.scss +0 -197
  380. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -51
  381. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  382. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  383. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  384. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  385. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  386. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  387. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  388. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  389. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  390. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  391. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  392. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  393. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  394. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  395. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  396. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  397. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  398. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  399. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  400. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  401. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  402. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  403. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  404. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  405. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  406. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  407. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  408. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  409. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  410. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  411. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  412. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  413. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  414. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  415. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  416. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -125
  417. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  418. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  419. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  420. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  421. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  422. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  423. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  424. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  425. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  426. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -463
  427. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  428. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  429. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  430. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  431. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  432. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  433. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  434. package/src/pages/index/components/normal/DemoLayout.tsx +0 -144
  435. package/src/pages/index/components/normal/DemoList.scss +0 -15
  436. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  437. package/src/pages/index/components/normal/DemoLoading.tsx +0 -86
  438. package/src/pages/index/components/normal/DemoNumber.tsx +0 -266
  439. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  440. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  441. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  442. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  443. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  444. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  445. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  446. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  447. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  448. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  449. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  450. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  451. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  452. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  453. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  454. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  455. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  456. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  457. package/src/pages/index/components/normal/DemoTree.tsx +0 -1168
  458. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  459. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -378
  460. package/src/pages/index/components/service/DemoDialogService.tsx +0 -248
  461. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  462. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  463. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  464. package/src/pages/index/components/service/DemoPopupService.tsx +0 -325
  465. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  466. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  467. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  468. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  469. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  470. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  471. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  472. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -181
  473. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  474. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  475. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  476. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  477. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  478. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  479. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  480. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  481. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  482. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  483. package/src/pages/index/home/AppContent.tsx +0 -69
  484. package/src/pages/index/home/AppHead.tsx +0 -105
  485. package/src/pages/index/home/AppHome.tsx +0 -16
  486. package/src/pages/index/home/AppMenu.tsx +0 -38
  487. package/src/pages/index/home/menus.tsx +0 -218
  488. package/src/pages/index/home/plain-design.png +0 -0
  489. package/src/pages/index/main.tsx +0 -23
  490. package/src/pages/index/nav/$nav.ts +0 -41
  491. package/src/pages/index/pages.d.ts +0 -6
  492. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  493. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  494. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  495. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  496. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  497. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  498. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  499. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  500. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  501. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  502. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  503. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  504. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  505. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  506. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  507. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  508. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  509. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  510. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  511. package/src/pages/module/address.ts +0 -27
  512. package/src/pages/module/http.ts +0 -24
  513. package/src/pages/module/index.ts +0 -19
  514. package/src/pages/module/object.ts +0 -5
  515. package/src/pages/module/ov.tsx +0 -13
  516. package/src/pages/module/upload.ts +0 -9
  517. package/src/pages/module/useTableOption.ts +0 -28
@@ -0,0 +1,136 @@
1
+ import {PartialFields} from "../../utils/type";
2
+ import {createHooks} from "plain-design-composition";
3
+ import {createCounter} from 'plain-utils/utils/createCounter';
4
+ import {notNull} from "plain-utils/utils/notNull";
5
+
6
+ export const ImagePreviewerConstants = {
7
+ /*画廊高度,默认70px*/
8
+ DEFAULT_GALLERY_HEIGHT: 70,
9
+ /*画廊与大图之间的距离,默认24px*/
10
+ DEFAULT_SEPARATOR_HEIGHT: 0,
11
+ };
12
+
13
+ export interface iImagePreviewerOptionPartialFields {
14
+ imageElement?: null | HTMLImageElement, // 点击的图片原始dom对象,如果有传这个属性对象的话会有一个显示放大动画
15
+ galleryHeight: number, // 底部画廊的高度
16
+ separatorHeight: number, // 底部画廊距离图片显示区域的距离
17
+ autoHeight: boolean, // 自动高度,默认是true。这样设置之后图片会撑满宽度,高度自动;关闭的时候会设置高度100%,图片宽度自动
18
+ mask: boolean, // 显示背部遮罩
19
+ button?: boolean | { // 顶部按钮栏控制,button为false则禁用所有按钮;为对象则单独禁用某个按钮
20
+ zoomIn?: boolean, // 放大按钮
21
+ zoomOut?: boolean, // 缩小按钮
22
+ clockwise?: boolean, // 顺时针旋转按钮
23
+ anticlockwise?: boolean, // 逆时针旋转按钮
24
+ reset?: boolean, // 重置按钮
25
+ close?: boolean, // 关闭按钮
26
+ },
27
+ swipeButton?: boolean // 左右切换按钮控制,swipeButton为false则禁用前后按钮
28
+ gallery?: boolean, // 底部画廊控制,为false则禁用底部画廊
29
+ globalKeyboardEvent?: boolean // 监听全局的键盘事件,默认不监听全局键盘按键事件,而是等鼠标移入的时候才监听
30
+ maskColor?: string, // 遮罩颜色
31
+ disableZoomOnWheel?: boolean, // 禁用滚轮缩放
32
+ /*---------------------------------------以下为不可配置属性-------------------------------------------*/
33
+ id: string, // option唯一标识
34
+ oldSourceImageOpacity?: string // 原始的img对象的opacity属性值
35
+ }
36
+
37
+ export interface iImagePreviewerOption extends iImagePreviewerOptionPartialFields {
38
+ current: number; // 当前显示的元素索引
39
+ urls: { url: string, thumbUrl: string }[]; // 所有展示的图片,url为大图地址,thumbUrl为底部画廊图片预览地址
40
+ }
41
+
42
+ export type iImagePreviewerParamOption = string | string[] | iImagePreviewerOption['urls'] | Omit<PartialFields<iImagePreviewerOption, keyof iImagePreviewerOptionPartialFields>, 'urls'> & { urls: string[] | iImagePreviewerOption['urls'] }
43
+
44
+ export const ImagePreviewerHooks = {
45
+ /*PreviewerComponent挂载完毕事件*/
46
+ onImagePreviewerReady: createHooks<(data: { option: iImagePreviewerOption }) => void>()
47
+ };
48
+
49
+ const nextOptionId = createCounter('image_previewer');
50
+
51
+ export function createImagePreviewerOption(
52
+ param: iImagePreviewerParamOption,
53
+ imageElement?: HTMLImageElement,
54
+ defaultParam?: Partial<iImagePreviewerOption>
55
+ ): iImagePreviewerOption {
56
+ if (typeof param === "string") {
57
+ return {
58
+ id: nextOptionId(),
59
+ current: 0,
60
+ imageElement,
61
+ autoHeight: true,
62
+ mask: false,
63
+ urls: [{ url: param, thumbUrl: param }],
64
+ galleryHeight: ImagePreviewerConstants.DEFAULT_GALLERY_HEIGHT,
65
+ separatorHeight: ImagePreviewerConstants.DEFAULT_SEPARATOR_HEIGHT,
66
+ ...defaultParam,
67
+ };
68
+ }
69
+ if (Array.isArray(param)) {
70
+ return {
71
+ id: nextOptionId(),
72
+ current: 0,
73
+ imageElement,
74
+ autoHeight: true,
75
+ mask: false,
76
+ urls: param.map(p => typeof p === "string" ? { url: p, thumbUrl: p } : p),
77
+ galleryHeight: ImagePreviewerConstants.DEFAULT_GALLERY_HEIGHT,
78
+ separatorHeight: ImagePreviewerConstants.DEFAULT_SEPARATOR_HEIGHT,
79
+ ...defaultParam,
80
+ };
81
+ }
82
+ if (!!imageElement) {
83
+ param.imageElement = imageElement;
84
+ }
85
+ return {
86
+ autoHeight: true,
87
+ mask: false,
88
+ galleryHeight: notNull(param.galleryHeight, ImagePreviewerConstants.DEFAULT_GALLERY_HEIGHT),
89
+ separatorHeight: notNull(param.separatorHeight, ImagePreviewerConstants.DEFAULT_SEPARATOR_HEIGHT),
90
+ ...defaultParam,
91
+ ...param,
92
+ id: nextOptionId(),
93
+ urls: param.urls.map(p => typeof p === "string" ? { url: p, thumbUrl: p } : p),
94
+ };
95
+ }
96
+
97
+ /**
98
+ * 获取imageElement在containerElement容器中居中铺满的位置信息
99
+ * @author 韦胜健
100
+ * @date 2024/1/10 18:50
101
+ */
102
+ export const getCenterRect = (
103
+ {
104
+ imageElement, containerElement
105
+ }: {
106
+ imageElement: HTMLDivElement,
107
+ containerElement: HTMLDivElement | { containerRatio: number, containerHeight: number, containerWidth: number },
108
+ }
109
+ ) => {
110
+ const imageRatio = Number((imageElement.offsetWidth / imageElement.offsetHeight).toFixed(2));
111
+ const { containerRatio, containerHeight, containerWidth } = 'tagName' in containerElement ? (() => {
112
+ const containerRatio = Number((containerElement.offsetWidth / containerElement.offsetHeight).toFixed(2));
113
+ return {
114
+ containerRatio,
115
+ containerHeight: containerElement.offsetHeight,
116
+ containerWidth: containerElement.offsetWidth,
117
+ };
118
+ })() : containerElement;
119
+
120
+
121
+ if (imageRatio > containerRatio) {
122
+ /*宽度更宽,固定宽度为屏幕宽度缩放*/
123
+ const left = 0;
124
+ const width = containerWidth;
125
+ const height = Number((imageElement.offsetHeight / imageElement.offsetWidth * width).toFixed(0));
126
+ const top = Number(((containerHeight - height) / 2).toFixed(0));
127
+ return { top, left, width, height };
128
+ } else {
129
+ /*高度更高,固定高度将宽度缩放*/
130
+ const top = 0;
131
+ const height = containerHeight;
132
+ const width = Number((imageElement.offsetWidth / imageElement.offsetHeight * height).toFixed(0));
133
+ const left = Number(((containerWidth - width) / 2).toFixed(0));
134
+ return { top, left, width, height };
135
+ }
136
+ };
@@ -0,0 +1,5 @@
1
+ import {ImagePreviewer} from "./ImagePreviewer";
2
+
3
+ export default ImagePreviewer;
4
+
5
+ export {ImagePreviewer};
@@ -0,0 +1,52 @@
1
+ .previewer-loading {
2
+
3
+ $size: 1em;
4
+
5
+ height: $size;
6
+ width: $size;
7
+
8
+ .plain-loading-tag {
9
+ $centerRadius: (0.5*$size)/1.2;
10
+ $itemWidth: (0.35*$size)/1.2;
11
+ $itemHeight: (0.1*$size)/1.2;
12
+ $width: $centerRadius + $itemWidth * 2;
13
+ $height: $width;
14
+
15
+ width: $width;
16
+ height: $height;
17
+ position: relative;
18
+ display: block;
19
+
20
+ .plain-loading-inner {
21
+ background-color: currentColor;
22
+ display: inline-block;
23
+ width: $itemWidth;
24
+ height: $itemHeight;
25
+ margin-top: $itemHeight / 2 * -1;
26
+ margin-left: $centerRadius / 2;
27
+ top: 50%;
28
+ left: 50%;
29
+ position: absolute;
30
+ transform-origin: ($centerRadius / 2 * -1) ($itemHeight / 2);
31
+ @for $i from 1 through 12 {
32
+ &:nth-child(#{$i}) {
33
+ transform: rotate(($i - 1) * 30deg);
34
+ animation: plain-loading-tag 1s linear infinite #{-1 + $i / 12}s;
35
+ }
36
+ }
37
+ @keyframes plain-loading-tag {
38
+ 0% {
39
+ opacity: 1;
40
+ }
41
+ @for $i from 1 through 11 {
42
+ #{$i / 12 * 100}% {
43
+ opacity: 1 - $i / 12;
44
+ }
45
+ }
46
+ 100% {
47
+ opacity: 1;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
@@ -180,6 +180,13 @@ export const ImageUploader = designComponent({
180
180
  },
181
181
  };
182
182
 
183
+ const imageAttrs = computed(() => {
184
+ return Object.keys(ImagePropsOptions).reduce((prev, key) => {
185
+ prev[key] = (props as any)[key];
186
+ return prev;
187
+ }, {} as any);
188
+ });
189
+
183
190
  return {
184
191
  refer: {
185
192
  refs,
@@ -189,23 +196,18 @@ export const ImageUploader = designComponent({
189
196
  {(!!model.value || !!state.chooseBase64) && (
190
197
  <Image
191
198
  src={model.value || state.chooseBase64}
192
- fit={props.fit}
193
- alt={props.alt}
194
- position={props.position}
195
199
  previewOnClick={false}
196
- height={props.height}
197
- width={props.width}
198
- urlPrefix={urlPrefix.value}
199
200
  onClick={handler.onClickImage}
201
+ {...imageAttrs.value}
200
202
  />
201
203
  )}
202
204
  {state.status === eImageUploaderStatus.empty && <div className="image-uploader-empty" onClick={handler.onClick}>
203
205
  <Icon icon="pi-image"/>
204
- <span>{i18n('file.toBeUpload').d('待上传')}</span>
206
+ {!props.hideTips && <span>{i18n.$it('file.toBeUpload').d('待上传')}</span>}
205
207
  </div>}
206
208
  {state.status === eImageUploaderStatus.fail && <div className="image-uploader-fail" onClick={handler.onClick}>
207
209
  <Icon icon="pi-image-close"/>
208
- <span>{i18n('file.uploadFailed').d('上传失败')}</span>
210
+ {!props.hideTips && <span>{i18n.$it('file.uploadFailed').d('上传失败')}</span>}
209
211
  </div>}
210
212
  <div className="image-uploader-button-group">
211
213
  <div className="image-uploader-button" onClick={handler.onClick}>
@@ -41,7 +41,7 @@
41
41
  border: none;
42
42
  background-color: transparent;
43
43
  box-sizing: border-box;
44
- line-height: 1.5715;
44
+ line-height: plv(line-height);
45
45
  padding-top: 3px;
46
46
  padding-bottom: 3px;
47
47
  color: plv(text-2);
@@ -52,25 +52,41 @@
52
52
  flex: 1;
53
53
  }
54
54
 
55
+ .input-text {
56
+ word-break: break-all;
57
+ border: none !important;
58
+ }
59
+
60
+ .input-mode-text-separate-icon {
61
+ align-self: center;
62
+ margin: 0 0.5em;
63
+ }
64
+
55
65
  /*所有的直接子节点,垂直居中,加上左右边距,除了第一个直接子节点之外,其他节点都加上左边框*/
56
66
  & > div, & > span, & > input, & > textarea {
57
67
  box-sizing: border-box;
58
68
  display: flex;
59
69
  align-items: center;
60
- padding-right: plv(input-padding-x);
61
- padding-left: plv(input-padding-x);
62
70
 
63
71
  &:not(:first-child) {
64
72
  border-left: solid 1px plv(border-color);
65
73
  }
66
74
  }
67
75
 
76
+ &.input-mode-text {
77
+ & > div, & > span, & > input, & > textarea {
78
+ &:not(:first-child) {
79
+ border-left: none;
80
+ }
81
+ }
82
+ }
83
+
68
84
  /*prefix icon and suffix icon*/
69
85
 
70
86
  /*prefix icon右侧的input-box不需要左边框以及左边距*/
71
87
  .input-prefix-icon {
72
88
  & + .input-box {
73
- padding-left: 0;
89
+ padding-left: 0 !important;
74
90
  border-left: none;
75
91
  }
76
92
  }
@@ -179,9 +195,11 @@
179
195
  /*prefix icon以及suffix icon的宽度与高度相同,显示为正方形*/
180
196
  .input-prefix-icon {
181
197
  width: $height;
198
+ color: plv(text-2);
182
199
  }
183
200
  .input-suffix-icon-wrapper {
184
- width: 18px;
201
+ color: plv(text-2);
202
+ width: plv(input-clear-size-#{$name})
185
203
  }
186
204
 
187
205
  &.input-size-mini {
@@ -189,6 +207,16 @@
189
207
  line-height: 1.667;
190
208
  }
191
209
  }
210
+
211
+ /*所有的直接子节点,垂直居中,加上左右边距,除了第一个直接子节点之外,其他节点都加上左边框*/
212
+ &:not(.input-mode-text) {
213
+ & > div, & > span, & > input, & > textarea {
214
+ &:not(.input-suffix-icon-wrapper) {
215
+ padding-right: plv(input-padding-x-#{$name});
216
+ padding-left: plv(input-padding-x-#{$name});
217
+ }
218
+ }
219
+ }
192
220
  }
193
221
 
194
222
  /*input status*/
@@ -203,9 +231,11 @@
203
231
  background-color: plv(background-color);
204
232
  border-color: $color-3;
205
233
  }
206
- @include hover(input) {
207
- background-color: $color-light-3;
208
- border-color: $color-light-4;
234
+ &:not(.input-mode-text) {
235
+ @include hover(input) {
236
+ background-color: $color-light-3;
237
+ border-color: $color-light-4;
238
+ }
209
239
  }
210
240
  @include focus(input) {
211
241
  border-color: $color-5;
@@ -321,18 +351,32 @@
321
351
  align-items: center;
322
352
  justify-content: center;
323
353
  }
354
+
355
+ &.input-tag-container-wrap {
356
+ .input-tag {
357
+ height: auto;
358
+ min-height: calc(#{$height} - 8px);
359
+ white-space: nowrap;
360
+ word-break: break-all;
361
+ max-width: 100%;
362
+ }
363
+ }
324
364
  }
325
365
  }
326
366
 
327
- &:not(.input-empty) {
367
+ &:not(.input-empty):not(.input-mode-text) {
328
368
  .input-box.input-tag-container {
329
369
  padding-left: 3px;
370
+ padding-right: 0;
371
+ @include comp(auto-width-input) {
372
+ padding: 0 3px;
373
+ }
330
374
  }
331
375
  }
332
376
 
333
377
  &.input-empty {
334
378
  .input-tag-container {
335
- .custom-auto-width-input {
379
+ @include comp(auto-width-input) {
336
380
  flex: 1;
337
381
  }
338
382
  }
@@ -348,15 +392,15 @@
348
392
  padding: 0;
349
393
  height: auto;
350
394
 
351
- span, textarea {
395
+ .input-textarea-shadow, textarea {
352
396
  display: inline-block;
353
397
  padding: 3px 12px;
354
398
  box-sizing: border-box;
355
- line-height: 1.5715;
399
+ line-height: plv(line-height);
356
400
  word-break: break-all;
357
401
  }
358
402
 
359
- span {
403
+ .input-textarea-shadow {
360
404
  opacity: 0;
361
405
  pointer-events: none;
362
406
  min-height: calc(30px + 2em);
@@ -1,4 +1,4 @@
1
- import {computed, designComponent, getComponentCls, iHTMLDivElement, mergeAttrs, useClasses, useRefs, useStyles} from "plain-design-composition";
1
+ import {computed, designComponent, Fragment, getComponentCls, iHTMLDivElement, mergeAttrs, onMounted, useClasses, useRefs, useStyles} from "plain-design-composition";
2
2
  import './index.scss';
3
3
  import {ThemeStatus, useStyle} from "../../uses/useStyle";
4
4
  import {useEdit} from "../../uses/useEdit";
@@ -17,6 +17,7 @@ import {useFocusHandler} from "../../uses/useFocusHandler";
17
17
  import {useSuggestionInput} from "./useSuggestionInput";
18
18
  import {useMultipleModel} from "../../uses/useMultipleModel";
19
19
  import {useParentPopupId} from "../usePopup/utils/popup.utils";
20
+ import {delay} from "plain-utils/utils/delay";
20
21
 
21
22
  export const Input = designComponent({
22
23
  name: '-input',
@@ -29,7 +30,11 @@ export const Input = designComponent({
29
30
 
30
31
  const { refs, onRef } = useRefs(InputRefsOptions);
31
32
  const { styleComputed } = useStyle();
32
- const { editComputed, editState } = useEdit();
33
+ const { editComputed, editState } = useEdit({
34
+ adjust: (ret) => {
35
+ if (styleComputed.value.inputMode === 'text') {ret.readonly = true;}
36
+ },
37
+ });
33
38
  const parentPopupId = useParentPopupId();
34
39
  const model = useMultipleModel(() => props.modelValue, emit.onUpdateModelValue, props);
35
40
  const hooks = useInputHooks();
@@ -76,7 +81,7 @@ export const Input = designComponent({
76
81
  attrs.className,
77
82
  `input-size-${styleComputed.value.size}`,
78
83
  `input-shape-${styleComputed.value.shape}`,
79
- `input-mode-${props.mode || styleComputed.value.default.inputMode}`,
84
+ `input-mode-${styleComputed.value.inputMode}`,
80
85
  {
81
86
  [`input-status-${status.value}`]: !!status.value,
82
87
  [`input-align-${props.align}`]: !!props.align,
@@ -88,8 +93,12 @@ export const Input = designComponent({
88
93
  ]));
89
94
  const styles = useStyles((style) => {
90
95
  style.display = 'inline-flex';
91
- if (!!props.width) {
92
- style.width = unit(props.width);
96
+ if (styleComputed.value.inputMode === 'text') {
97
+ style.width = 'unset';
98
+ } else {
99
+ if (!!props.width) {
100
+ style.width = unit(props.width);
101
+ }
93
102
  }
94
103
  !!attrs.style && Object.assign(style, attrs.style);
95
104
  });
@@ -98,6 +107,13 @@ export const Input = designComponent({
98
107
  hooks.onInput.use(val => emit.onInput(val));
99
108
  hooks.onSuggestion.use(data => emit.onSuggestion(data));
100
109
 
110
+ onMounted(async () => {
111
+ await delay(78);
112
+ if (props.autoFocus) {
113
+ refs.input?.focus();
114
+ }
115
+ });
116
+
101
117
  return {
102
118
  refer: {
103
119
  model,
@@ -126,7 +142,7 @@ export const Input = designComponent({
126
142
  {content}
127
143
 
128
144
  {inputSuffixIcon.render()}
129
- {hooks.onRenderSuffix.exec(slots.suffix())}
145
+ {hooks.onRenderSuffix.exec(<Fragment key="slot_suffix">{slots.suffix()}</Fragment>)}
130
146
  </span>
131
147
  );
132
148
  },
@@ -11,7 +11,6 @@ export const InputPropsOption = {
11
11
 
12
12
  /*public*/
13
13
  type: { type: String }, // input type
14
- mode: { type: String as PropType<'flat' | 'stroke'> }, // input的样式类型,flat填充,stroke线型
15
14
  modelValue: {}, // 输入框双向绑定值
16
15
  placeValue: {}, // 与modelValue一起判断当前是否有值
17
16
  isFocus: { type: Boolean }, // 当前是否为获取焦点的状态
@@ -27,10 +26,12 @@ export const InputPropsOption = {
27
26
  multipleSeparator: { default: /[\s\n,,]/ }, // 多值输入的时候的分隔符。类型为字符串或者正则表达式;有这个分隔符的话,会自动按照这个分隔符对输入的文本分割
28
27
  fixedWidth: { type: Boolean }, // InputGroup下是否固定宽度
29
28
  bare: { type: Boolean }, // 去掉包裹节点
29
+ loadingType: { type: String }, // loading类型
30
+ autoFocus: { type: Boolean }, // 初始化时自动获取焦点
30
31
 
31
32
  /*clear*/
32
33
  noClear: { type: Boolean }, // 去掉清空按钮
33
- clearHandler: { type: Function as PropType<(e: iMouseEvent) => void> }, // 自定义处理清空逻辑
34
+ clearHandler: { type: Function as PropType<(e: iMouseEvent) => void> }, // 自定义处理清空逻辑
34
35
 
35
36
  /*textarea*/
36
37
  textarea: { type: Boolean }, // 当前是否为文本域输入框
@@ -1,19 +1,19 @@
1
1
  import {AutoWidthInput} from "../AutoWidthInput";
2
2
  import {iInputCompositionData, inputScrollEnd} from "./input.utils";
3
3
  import Icon from "../Icon";
4
- import {iHTMLElement, useClasses, useModel, useRefs, watch} from "plain-design-composition";
4
+ import {iHTMLElement, useClasses, useModel, useRefs} from "plain-design-composition";
5
5
  import {getKey, KEY} from "../KeyboardService";
6
6
  import {delay} from "plain-utils/utils/delay";
7
7
  import {createEffectiveHandler} from "../../utils/createEffectiveHandler";
8
8
  import {createEffects} from "plain-utils/utils/createEffects";
9
- import {ClientZoom} from "../..";
9
+ import {useDragHorizontalScroll} from "../../uses/useDragHorizontalScroll";
10
10
 
11
11
  /**
12
12
  * 渲染多值输入框
13
13
  * @author 韦胜健
14
14
  * @date 2022.5.22 10:06
15
15
  */
16
- export const useMultipleInput = createEffectiveHandler(({ hooks, props, model, refs, editComputed, emit }: iInputCompositionData) => {
16
+ export const useMultipleInput = createEffectiveHandler(({ hooks, props, model, refs, editComputed, emit, styleComputed }: iInputCompositionData) => {
17
17
 
18
18
  const text = useModel(() => props.multipleText as any, emit.onUpdateMultipleText);
19
19
  const { effects } = createEffects();
@@ -22,7 +22,7 @@ export const useMultipleInput = createEffectiveHandler(({ hooks, props, model, r
22
22
 
23
23
  const handler = {
24
24
  onRef: (input: typeof AutoWidthInput.use.class | null) => hooks.onRefInput.exec(input?.refs.input || null),
25
- onMousedownContainer: () => {delay(23).then(() => refs.input!.focus());},
25
+ onMousedownContainer: () => {delay(23).then(() => refs.input?.focus());},
26
26
  onRemoveTag: async (index: number) => {
27
27
  if (!editComputed.value.editable) {return;}
28
28
  if (!model.value || !model.value.length) {return; }
@@ -103,17 +103,19 @@ export const useMultipleInput = createEffectiveHandler(({ hooks, props, model, r
103
103
  {!!editComputed.value.editable && <Icon icon="pi-close" onClick={() => handler.onRemoveTag(index)}/>}
104
104
  </span>
105
105
  ))}
106
- <AutoWidthInput
107
- modelValue={text.value}
108
- onChange={handler.onChange}
109
- placeholder={editComputed.value.placeholder}
110
- disabled={!!editComputed.value.disabled}
111
- readonly={!!editComputed.value.readonly || !!props.customReadonly || !!editComputed.value.loading}
112
- {...props.nativeAttrs}
113
- ref={handler.onRef as any}
114
- key="auto-width-input"
115
- minWidth="1px"
116
- />
106
+ {styleComputed.value.inputMode !== 'text' && (
107
+ <AutoWidthInput
108
+ modelValue={text.value}
109
+ onChange={handler.onChange}
110
+ placeholder={!(model.value as any)?.length ? editComputed.value.placeholder : undefined}
111
+ disabled={!!editComputed.value.disabled}
112
+ readonly={!!editComputed.value.readonly || !!props.customReadonly || !!editComputed.value.loading}
113
+ {...props.nativeAttrs}
114
+ ref={handler.onRef as any}
115
+ key="auto-width-input"
116
+ minWidth="1px"
117
+ />
118
+ )}
117
119
  </span>
118
120
  )));
119
121
 
@@ -121,80 +123,3 @@ export const useMultipleInput = createEffectiveHandler(({ hooks, props, model, r
121
123
 
122
124
  return effects.clear;
123
125
  });
124
-
125
- function useDragHorizontalScroll(getEl: () => HTMLElement | null | undefined) {
126
-
127
- const staticState = {
128
- isDragging: false,
129
- el: null as null | undefined | HTMLElement,
130
- start: {
131
- x: 0,
132
- left: 0,
133
- width: 0,
134
- },
135
- move: {
136
- x: 0
137
- }
138
- };
139
-
140
- const { effects } = createEffects();
141
-
142
- const handler = {
143
- mousedown: (e: MouseEvent) => {
144
- const { clientX } = ClientZoom.getClientPosition(e);
145
- staticState.isDragging = false;
146
- staticState.start = {
147
- x: clientX,
148
- left: staticState.el!.scrollLeft,
149
- width: staticState.el!.scrollWidth,
150
- };
151
- document.documentElement.addEventListener('mousemove', handler.mousemove, true);
152
- document.documentElement.addEventListener('mouseup', handler.mouseup, true);
153
- },
154
- mousemove: (e: MouseEvent) => {
155
- const { clientX } = ClientZoom.getClientPosition(e);
156
- staticState.move.x = clientX;
157
- const durX = staticState.move.x - staticState.start.x;
158
- if (!staticState.isDragging) {
159
- if (Math.abs(durX) > 5) {
160
- staticState.isDragging = true;
161
- }
162
- }
163
- if (!staticState.isDragging) {
164
- return;
165
- }
166
- staticState.el!.scrollLeft = staticState.start.left - durX;
167
- },
168
- mouseup: () => {
169
- document.documentElement.removeEventListener('mousemove', handler.mousemove, true);
170
- document.documentElement.removeEventListener('mouseup', handler.mouseup, true);
171
- },
172
- onWheel: (e: WheelEvent) => {
173
- e.stopPropagation();
174
- e.preventDefault();
175
- const el = e.currentTarget as HTMLElement;
176
- const delta = e.deltaX + e.deltaY;
177
- el.scrollLeft += delta;
178
- },
179
- };
180
-
181
- effects.push(watch(() => getEl(), el => {
182
- if (!!staticState.el) {
183
- staticState.el.removeEventListener('mousedown', handler.mousedown);
184
- staticState.el.removeEventListener('wheel', handler.onWheel);
185
- }
186
- staticState.el = el;
187
- if (!staticState.el) {return;}
188
- staticState.el.addEventListener('mousedown', handler.mousedown);
189
- staticState.el.addEventListener('wheel', handler.onWheel);
190
- }));
191
-
192
- effects.push(() => {
193
- if (!!staticState.el) {
194
- staticState.el.removeEventListener('mousedown', handler.mousedown);
195
- staticState.el.removeEventListener('wheel', handler.onWheel);
196
- }
197
- });
198
-
199
- return effects.clear;
200
- }
@@ -4,7 +4,7 @@ import {createEffects} from "plain-utils/utils/createEffects";
4
4
  import {iKeyboardEvent} from "plain-design-composition";
5
5
  import {FixInput} from "../../utils/FixInput";
6
6
 
7
- export const useSingleInput = createEffectiveHandler(({ props, hooks, model, editComputed }: iInputCompositionData) => {
7
+ export const useSingleInput = createEffectiveHandler(({ props, hooks, model, editComputed, styleComputed }: iInputCompositionData) => {
8
8
  const { effects } = createEffects();
9
9
 
10
10
  const handler = {
@@ -24,18 +24,20 @@ export const useSingleInput = createEffectiveHandler(({ props, hooks, model, edi
24
24
  effects.push(hooks.onRenderDefault.use((prev) => <>
25
25
  {prev}
26
26
  {!props.multiple && !props.textarea && (
27
- <FixInput
28
- ref={handler.onRef}
29
- className="input-box input-fill"
30
- type={props.type || "text"}
31
- placeholder={editComputed.value.placeholder!}
32
- value={model.value}
33
- onInput={handler.onInput}
34
- disabled={!!editComputed.value.disabled}
35
- readOnly={!!editComputed.value.readonly || !!props.customReadonly || !!editComputed.value.loading}
36
- onKeyDown={handler.onKeydown}
37
- {...props.nativeAttrs}
38
- />
27
+ styleComputed.value.inputMode === 'text' ?
28
+ <span className="input-text">{model.value}</span> :
29
+ <FixInput
30
+ ref={handler.onRef}
31
+ className="input-box input-fill"
32
+ type={props.type || "text"}
33
+ placeholder={editComputed.value.placeholder!}
34
+ value={model.value}
35
+ onInput={handler.onInput}
36
+ disabled={!!editComputed.value.disabled}
37
+ readOnly={!!editComputed.value.readonly || !!props.customReadonly || !!editComputed.value.loading}
38
+ onKeyDown={handler.onKeydown}
39
+ {...props.nativeAttrs}
40
+ />
39
41
  )}
40
42
  </>));
41
43