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
@@ -1,6 +1,6 @@
1
1
  import {createCounter} from "plain-utils/utils/createCounter";
2
2
  import {createApplicationServiceComponent} from "../Application/service/createApplicationServiceComponent";
3
- import {computed, getComponentCls, iMouseEvent, nextIndex, onBeforeUnmount, onMounted, Portal, reactive, ref, useStyles} from "plain-design-composition";
3
+ import {computed, createHooks, getComponentCls, iHTMLDivElement, iMouseEvent, nextIndex, onBeforeUnmount, onMounted, Portal, reactive, ref, useRefs, useStyles} from "plain-design-composition";
4
4
  import {KeyboardService} from "../KeyboardService";
5
5
  import {Image} from "../Image";
6
6
  import {Tooltip} from "../Tooltip";
@@ -9,6 +9,7 @@ import i18n from "../i18n";
9
9
  import Transition from "../Transition";
10
10
  import {APPLICATION_SERVICE_CONTAINER_CLASS} from "../Application/utils/application.utils";
11
11
  import {ClientZoom} from "../ClientZoom";
12
+ import {createTransitionHandler} from "../createTransitionHandler";
12
13
 
13
14
  const nextCount = createCounter("image_preview");
14
15
 
@@ -22,9 +23,17 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
22
23
  name: 'image-preview-service',
23
24
  setup: ({ option, destroy }) => {
24
25
 
26
+ const { refs, onRef } = useRefs({ el: iHTMLDivElement });
27
+
25
28
  const step = { scale: 0.2, rotate: 90, };
26
29
 
27
30
  const isShow = ref(false);
31
+ const isOpen = ref(false);
32
+
33
+ const hooks = {
34
+ onOpen: createHooks(),
35
+ onClose: createHooks(),
36
+ };
28
37
 
29
38
  const state = reactive({
30
39
  option,
@@ -65,6 +74,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
65
74
  await state.mounted;
66
75
  isShow.value = true;
67
76
  state.zIndex = nextIndex();
77
+ handleTransition();
68
78
 
69
79
  setTimeout(() => {
70
80
  const activeElement = document.activeElement as HTMLElement;
@@ -72,7 +82,10 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
72
82
  });
73
83
  };
74
84
 
75
- const hide = () => isShow.value = false;
85
+ const hide = () => {
86
+ isShow.value = false;
87
+ handleTransition();
88
+ };
76
89
 
77
90
  const resetAdjust = () => state.adjust = {
78
91
  scale: null as null | number, // 当前图片缩放大小
@@ -91,7 +104,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
91
104
 
92
105
  const buttons = [
93
106
  {
94
- label: i18n('image.rotation_90').d('逆时针旋转90°'),
107
+ label: i18n.$it('image.rotation_90').d('逆时针旋转90°'),
95
108
  icon: 'pi-rotate-left',
96
109
  onClick: () => {
97
110
  let { rotate } = state.adjust;
@@ -101,7 +114,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
101
114
  }
102
115
  },
103
116
  {
104
- label: i18n('image.rotation90').d('顺时针旋转90°'),
117
+ label: i18n.$it('image.rotation90').d('顺时针旋转90°'),
105
118
  icon: 'pi-rotate-right',
106
119
  onClick: () => {
107
120
  let { rotate } = state.adjust;
@@ -111,7 +124,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
111
124
  }
112
125
  },
113
126
  {
114
- label: i18n('base.zoomIn').d('放大'),
127
+ label: i18n.$it('base.zoomIn').d('放大'),
115
128
  icon: 'pi-zoom-in',
116
129
  onClick: () => {
117
130
  let { scale } = state.adjust;
@@ -119,7 +132,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
119
132
  }
120
133
  },
121
134
  {
122
- label: i18n('base.zoomOut').d('缩小'),
135
+ label: i18n.$it('base.zoomOut').d('缩小'),
123
136
  icon: 'pi-zoom-out',
124
137
  onClick: () => {
125
138
  let { scale } = state.adjust;
@@ -127,7 +140,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
127
140
  }
128
141
  },
129
142
  {
130
- label: i18n('image.prevPicture').d('上一张'),
143
+ label: i18n.$it('image.prevPicture').d('上一张'),
131
144
  icon: 'pi-left',
132
145
  show: () => isMultipleImages.value,
133
146
  onClick: () => {
@@ -138,7 +151,7 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
138
151
  },
139
152
  },
140
153
  {
141
- label: i18n('image.nextPicture').d('下一张'),
154
+ label: i18n.$it('image.nextPicture').d('下一张'),
142
155
  icon: 'pi-right',
143
156
  show: () => isMultipleImages.value,
144
157
  onClick: () => {
@@ -149,12 +162,12 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
149
162
  },
150
163
  },
151
164
  {
152
- label: i18n('base.reset').d('重置'),
165
+ label: i18n.$it('base.reset').d('重置'),
153
166
  icon: 'pi-sync',
154
167
  onClick: resetAdjust,
155
168
  },
156
169
  {
157
- label: i18n('base.close').d('关闭'),
170
+ label: i18n.$it('base.close').d('关闭'),
158
171
  icon: 'pi-close',
159
172
  onClick: hide,
160
173
  },
@@ -204,18 +217,28 @@ export const ImageService = createApplicationServiceComponent<ImageServicePrevie
204
217
  onClickMask: hide,
205
218
  };
206
219
 
220
+ const handleTransition = createTransitionHandler({
221
+ getTransitionElement: () => refs.el,
222
+ isOpen,
223
+ isShow,
224
+ onOpen: () => hooks.onOpen.exec(undefined),
225
+ onClose: () => hooks.onClose.exec(undefined),
226
+ });
227
+
207
228
  onBeforeUnmount(KeyboardService.listen({ esc: () => {isShow.value && hide();} }));
208
229
 
230
+ onBeforeUnmount(hooks.onClose.use(() => {destroy();}));
231
+
209
232
  return {
210
233
  refer: {
211
234
  isShow,
212
- isOpen: isShow,
235
+ isOpen,
213
236
  service,
214
237
  },
215
238
  render: () => (
216
239
  <Portal to={`.${getComponentCls(APPLICATION_SERVICE_CONTAINER_CLASS)}`}>
217
240
  <Transition name={getComponentCls('image-preview')} show={isShow.value}>
218
- <div className={getComponentCls('image-preview-service')} style={{ zIndex: state.zIndex }} onClick={handler.onClickMask}>
241
+ <div ref={onRef.el} className={getComponentCls('image-preview-service')} style={{ zIndex: state.zIndex }} onClick={handler.onClickMask}>
219
242
  <div className="image-preview-service-img-wrapper">
220
243
  <Transition switch name={getComponentCls('transition-scale')} key={state.count}>
221
244
  {/*不加这个div,switch动画没有效果,真是奇怪。Button可以,Card可以,就Image不行*/}
@@ -0,0 +1,106 @@
1
+ import {createApplicationServiceComponent} from "../Application/service/createApplicationServiceComponent";
2
+ import {closeLoadingServiceHook, iLoadingServiceOption} from "./loading.service.utils";
3
+ import {computed, createHooks, getComponentCls, iHTMLDivElement, onBeforeUnmount, reactive, ref, useClasses, useRefs, useStyles} from "plain-design-composition";
4
+ import {ThemeStatus} from "../../uses/useStyle";
5
+ import {createTransitionHandler} from "../createTransitionHandler";
6
+ import './loading.service.scss';
7
+ import {delay} from "plain-utils/utils/delay";
8
+ import {createEffects} from "plain-utils/utils/createEffects";
9
+
10
+ export const LoadingService = createApplicationServiceComponent<iLoadingServiceOption>({
11
+ name: 'loading-service',
12
+ setup({ option, destroy }) {
13
+
14
+ const { refs, onRef } = useRefs({ el: iHTMLDivElement });
15
+
16
+ const isShow = ref(false);
17
+ const isOpen = ref(false);
18
+
19
+ const { effects: setupEffects } = createEffects();
20
+ const { effects: timerEffects } = createEffects();
21
+
22
+ const state = reactive({
23
+ option,
24
+ percent: 0,
25
+ });
26
+
27
+ const classes = useClasses(() => [
28
+ getComponentCls('loading-service'),
29
+ {
30
+ 'loading-service-show': isShow.value
31
+ }
32
+ ]);
33
+
34
+ const innerStyles = useStyles(style => {style.transform = `scaleX(${state.percent})`;});
35
+
36
+ const hooks = {
37
+ onOpen: createHooks(),
38
+ onClose: createHooks(),
39
+ };
40
+
41
+ const targetOption = computed(() => {
42
+ return {
43
+ ...state.option,
44
+ status: state.option.status || ThemeStatus.primary,
45
+ maxTime: state.option.maxTime === undefined ? 60 * 1000 : state.option.maxTime
46
+ };
47
+ });
48
+
49
+ async function service(option: iLoadingServiceOption) {
50
+ state.option = option;
51
+ await delay(23);
52
+ isShow.value = true;
53
+ handleTransition();
54
+ await delay(78);
55
+ state.percent = 0.2;
56
+
57
+ if (targetOption.value.maxTime) {
58
+ const timer = setTimeout(() => hide(), targetOption.value.maxTime);
59
+ timerEffects.push(() => clearTimeout(timer));
60
+ }
61
+
62
+ const maxPercent = 0.9;
63
+ let spacePrefix = '0.0';
64
+ const interval = setInterval(() => {
65
+ const space = Number(`${spacePrefix}${Math.ceil(Math.random() * 10)}`);
66
+ state.percent = Math.min(maxPercent, state.percent + (space));
67
+ if (state.percent > 0.75 && spacePrefix.length === 3) {spacePrefix += '0';}
68
+ if (state.percent >= maxPercent) {clearInterval(interval);}
69
+ }, 500);
70
+ timerEffects.push(() => clearInterval(interval));
71
+ }
72
+
73
+ const hide = async () => {
74
+ state.percent = 1;
75
+ timerEffects.clear();
76
+ await delay(150);
77
+ isShow.value = false;
78
+ handleTransition();
79
+ };
80
+
81
+ const handleTransition = createTransitionHandler({
82
+ getTransitionElement: () => refs.el,
83
+ isShow, isOpen,
84
+ onOpen: () => hooks.onOpen.exec(undefined),
85
+ onClose: () => hooks.onClose.exec(undefined),
86
+ });
87
+
88
+ setupEffects.push(closeLoadingServiceHook.use(id => {(!id || (id === state.option.id)) && (hide());}));
89
+ setupEffects.push(hooks.onClose.use(() => {destroy();}));
90
+
91
+ onBeforeUnmount(setupEffects.clear);
92
+
93
+ return {
94
+ refer: {
95
+ service,
96
+ isShow,
97
+ isOpen,
98
+ },
99
+ render: () => (
100
+ <div ref={onRef.el} className={classes.value} data-service-id={state.option.id}>
101
+ <div className="loading-service-inner" style={innerStyles.value}/>
102
+ </div>
103
+ )
104
+ };
105
+ },
106
+ });
@@ -0,0 +1,31 @@
1
+ import {closeLoadingServiceHook, iLoadingServiceOption} from "./loading.service.utils";
2
+ import {createApplicationService} from "../Application/service/createApplicationService";
3
+ import {createApplicationServiceManager} from "../Application/service/createApplicationServiceManager";
4
+ import {LoadingService} from "./LoadingService";
5
+ import {createCounter} from "plain-utils/utils/createCounter";
6
+
7
+ interface iLoadingServiceFunction {
8
+ (option?: iLoadingServiceOption): () => void;
9
+ }
10
+
11
+ const nextLoadingId = createCounter('loading');
12
+
13
+ export const useLoading = createApplicationService(
14
+ 'loading',
15
+ createApplicationServiceManager({ name: 'loading', Service: LoadingService }),
16
+ (getManager) => {
17
+
18
+ const service: iLoadingServiceFunction = (_option) => {
19
+ const option: iLoadingServiceOption = _option || {};
20
+ !option.id && (option.id = nextLoadingId());
21
+
22
+ getManager().then(async manager => {await manager.service(option);});
23
+
24
+ return () => closeLoadingServiceHook.exec(option!.id!);
25
+ };
26
+
27
+ return { $loading: service };
28
+ },
29
+ );
30
+
31
+ export default useLoading;
@@ -0,0 +1,25 @@
1
+ @include comp(loading-service) {
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ right: 0;
6
+ height: 2px;
7
+ transition: all ease 300ms;
8
+
9
+ &:not(.loading-service-show) {
10
+ opacity: 0;
11
+ }
12
+
13
+ &.loading-service-show {
14
+ opacity: 1;
15
+ }
16
+
17
+ .loading-service-inner {
18
+ position: absolute;
19
+ inset: 0;
20
+ height: 100%;
21
+ background-color: plv(primary-6);
22
+ transition: all ease 500ms;
23
+ transform-origin: top left;
24
+ }
25
+ }
@@ -0,0 +1,13 @@
1
+ import {ThemeStatus} from "../../uses/useStyle";
2
+ import {createHooks} from "plain-design-composition";
3
+
4
+ export interface iLoadingServiceOption {
5
+ id?: string,
6
+ hold?: boolean,
7
+ status?: typeof ThemeStatus.TYPE,
8
+ color?: string,
9
+ maxTime?: number | null,
10
+ onClose?: () => void,
11
+ }
12
+
13
+ export const closeLoadingServiceHook = createHooks<(id?: string) => void>();
@@ -1,7 +1,8 @@
1
- import {designComponent, getComponentCls, iMouseEvent, nextIndex, onMounted, PropType, useClasses} from "plain-design-composition";
1
+ import {designComponent, getComponentCls, iMouseEvent, nextIndex, onBeforeUnmount, onMounted, PropType, useClasses} from "plain-design-composition";
2
2
  import {closeMessageServiceHook, iMessageServiceOption} from "./message.service.utils";
3
3
  import Icon from "../Icon";
4
4
  import './message.scss';
5
+ import {useStyle} from "../../uses/useStyle";
5
6
 
6
7
  export const Message = designComponent({
7
8
  name: 'message-service',
@@ -16,9 +17,12 @@ export const Message = designComponent({
16
17
 
17
18
  onMounted(() => emit.onReady());
18
19
 
20
+ const { styleComputed } = useStyle();
21
+
19
22
  const classes = useClasses(() => [
20
23
  getComponentCls('message'),
21
- `message-status-${props.option.status}`
24
+ `message-status-${props.option.status}`,
25
+ `message-size-${styleComputed.value.size}`
22
26
  ]);
23
27
  const styles = { zIndex: nextIndex() };
24
28
 
@@ -47,7 +51,9 @@ export const Message = designComponent({
47
51
  let closeTimer: number | null = null;
48
52
  !!props.option.time && (closeTimer = setTimeout(close, props.option.time) as any);
49
53
 
50
- closeMessageServiceHook.use(id => {(!id || id === props.option.id) && close();});
54
+ onBeforeUnmount(
55
+ closeMessageServiceHook.use(id => {(!id || id === props.option.id) && close();})
56
+ );
51
57
 
52
58
  return {
53
59
  refer: {
@@ -1,7 +1,7 @@
1
1
  import {createApplicationService} from "../Application/service/createApplicationService";
2
2
  import {MessageManager} from "./MessageManager";
3
3
  import {closeMessageServiceHook, iMessageServiceOption, MessageDirection, nextMessageId} from "./message.service.utils";
4
- import {formatOptions} from "../../utils/formatServiceOptions";
4
+ import {formatOptions} from "plain-utils/utils/formatServiceOptions";
5
5
  import {ThemeStatus} from "../../uses/useStyle";
6
6
  import {ThemeStatusIcons} from "../Application/theme/theme.utils";
7
7
 
@@ -61,7 +61,7 @@
61
61
  box-shadow: plv(message-box-shadow);
62
62
  position: relative;
63
63
  overflow: hidden;
64
- background-color: plv(background-lite);
64
+ background-color: plv(bg-4);
65
65
  color: plv(text-2);
66
66
  border-radius: plv(box-size-normal-border-radius);
67
67
 
@@ -85,7 +85,7 @@
85
85
  justify-content: center;
86
86
 
87
87
  @include prefix(icon) {
88
- color: plv(background-lite);
88
+ color: plv(bg-4);
89
89
  position: relative;
90
90
  z-index: 1;
91
91
 
@@ -128,7 +128,7 @@
128
128
  }
129
129
  .message-close {
130
130
  @include prefix(icon) {
131
- color: white;
131
+ color: plv(pbfc);
132
132
  }
133
133
 
134
134
  &:after {
@@ -142,4 +142,8 @@
142
142
  }
143
143
  }
144
144
  }
145
+
146
+ @include sizeMixin(message, (font-size)) {
147
+ padding: calc(#{plv(dropdown-size-#{$name}-padding-y)} * 2);
148
+ }
145
149
  }
@@ -1,5 +1,5 @@
1
1
  import './notice.scss';
2
- import {designComponent, getComponentCls, iMouseEvent, nextIndex, onMounted, PropType, useClasses} from "plain-design-composition";
2
+ import {designComponent, getComponentCls, iMouseEvent, nextIndex, onBeforeUnmount, onMounted, PropType, useClasses} from "plain-design-composition";
3
3
  import {closeNoticeServiceHook, iNoticeServiceOption} from "./noitice.service.utils";
4
4
  import Icon from "../Icon";
5
5
 
@@ -47,7 +47,9 @@ export const Notice = designComponent({
47
47
  let closeTimer: number | null = null;
48
48
  !!props.option.time && (closeTimer = setTimeout(close, props.option.time) as any);
49
49
 
50
- closeNoticeServiceHook.use(id => {(!id || id === props.option.id) && close();});
50
+ onBeforeUnmount(
51
+ closeNoticeServiceHook.use(id => {(!id || id === props.option.id) && close();})
52
+ );
51
53
 
52
54
  return {
53
55
  refer: {
@@ -1,7 +1,7 @@
1
1
  import {createApplicationService} from "../Application/service/createApplicationService";
2
2
  import {NoticeManager} from "./NoticeManager";
3
3
  import {closeNoticeServiceHook, iNoticeServiceOption, nextNoticeId, NoticeDirection} from "./noitice.service.utils";
4
- import {formatOptions} from "../../utils/formatServiceOptions";
4
+ import {formatOptions} from "plain-utils/utils/formatServiceOptions";
5
5
  import {i18n} from "../../i18n";
6
6
  import {ThemeStatus} from "../../uses/useStyle";
7
7
  import {ThemeStatusIcons} from "../Application/theme/theme.utils";
@@ -14,7 +14,7 @@ export const useNotice = createApplicationService(
14
14
  const service = (sourceOption: string | iNoticeServiceOption, externalOption?: iNoticeServiceOption): () => void => {
15
15
  const option = formatOptions(sourceOption, externalOption);
16
16
  option.id = nextNoticeId();
17
- if (option.title === undefined) {option.title = () => i18n('base.notice').d('提示');}
17
+ if (option.title === undefined) {option.title = () => i18n.$it('base.notice').d('提示');}
18
18
  if (option.time === undefined) {option.time = 3000;}
19
19
  if (option.status === undefined) {option.status = ThemeStatus.primary;}
20
20
  if (!!option.status && !option.icon) {option.icon = ThemeStatusIcons[option.status];}
@@ -40,7 +40,7 @@
40
40
  @include prefix(notice) {
41
41
  text-align: initial;
42
42
  pointer-events: auto;
43
- background-color: plv(background-lite);
43
+ background-color: plv(bg-4);
44
44
  display: inline-block;
45
45
  padding: plv(notice-padding);
46
46
  box-shadow: plv(notice-box-shadow);
@@ -65,7 +65,7 @@
65
65
  cursor: pointer;
66
66
 
67
67
  @include prefix(icon) {
68
- color: white;
68
+ color: plv(pbfc);
69
69
  position: relative;
70
70
  z-index: 1;
71
71
 
@@ -111,7 +111,7 @@
111
111
  font-size: plv(notice-content-font-size);
112
112
  padding-top: 16px;
113
113
  color: plv(text-2);
114
- line-height: 1.5715;
114
+ line-height: plv(line-height);
115
115
  }
116
116
 
117
117
  .notice-foot {
@@ -0,0 +1,3 @@
1
+ export function usePageRender() {
2
+
3
+ }
@@ -0,0 +1,8 @@
1
+ import {createRenderHook} from "plain-design-composition";
2
+
3
+ export function usePageRenderContext() {
4
+ const renderHook = createRenderHook();
5
+ return {
6
+ renderHook,
7
+ };
8
+ }
@@ -1,4 +1,4 @@
1
- import {designComponent, getComponentCls, iHTMLDivElement, iHTMLElement, iTransitionEvent, nextIndex, onBeforeUnmount, onMounted, Portal, PropType, reactive, SimpleFunction, useClassCache, useRefs, useStyleCache} from "plain-design-composition";
1
+ import {designComponent, getComponentCls, iHTMLDivElement, iHTMLElement, iMouseEvent, iTransitionEvent, nextIndex, onBeforeUnmount, onMounted, Portal, PropType, reactive, SimpleFunction, useClassCache, useRefs, useStyleCache} from "plain-design-composition";
2
2
  import {ePopupAnimation, iPopupOption, iPopupRefs, PopupItemProvide} from "./utils/popup.utils";
3
3
  import {createEffects} from "plain-utils/utils/createEffects";
4
4
  import {delay} from "plain-utils/utils/delay";
@@ -7,10 +7,10 @@ import {PopupManager} from "./usePopupManager";
7
7
  import {refreshPopup} from "./refresh/refreshPopup";
8
8
  import {getBoundary} from "./utils/getBoundary";
9
9
  import {useWatchAutoClear} from "../../utils/watchEffectAutoClear";
10
- import {getElementParents} from "../../utils/getElementParents";
10
+ import {getElementParents} from "plain-utils/dom/getElementParents";
11
11
  import {usePopupTrigger} from "./trigger/usePopupTrigger";
12
12
  import {APPLICATION_SERVICE_CONTAINER_CLASS} from "../Application/utils/application.utils";
13
- import {doNothing} from "../../utils/doNothing";
13
+ import {doNothing} from "plain-utils/utils/doNothing";
14
14
  import {unit} from "plain-utils/string/unit";
15
15
  import ApplicationConfigurationProvider from "../ApplicationConfigurationProvider";
16
16
 
@@ -82,6 +82,7 @@ export const PopupItem = designComponent({
82
82
  'popup-item-is-dark': !application.value.theme.dark && !state.option.status && !!state.option.dark,
83
83
  [`popup-item-status-${state.option.status}`]: !!state.option.status,
84
84
  'popup-item-dark-app': application.value.theme.dark,
85
+ 'popup-item-no-interactive': !state.option.interactive,
85
86
  }
86
87
  ]);
87
88
 
@@ -193,7 +194,7 @@ export const PopupItem = designComponent({
193
194
  clearTimeout(timer);
194
195
  timer = null;
195
196
  }
196
- methods.refresh(true);
197
+ methods.refresh(state.option.transformRefreshOnScroll);
197
198
  timer = setTimeout(() => {
198
199
  methods.refresh();
199
200
  }, 100);
@@ -262,6 +263,14 @@ export const PopupItem = designComponent({
262
263
  };
263
264
  return check;
264
265
  })(),
266
+ /**
267
+ * 阻止点击popup的事件冒泡,如果有div包裹popup几点,在react中即使popup不是这个div的子节点也会导致事件冒泡到div上
268
+ * @author 韦胜健
269
+ * @date 2023/8/10 11:27
270
+ */
271
+ onClickPopup: (e: iMouseEvent) => {
272
+ e.stopPropagation();
273
+ },
265
274
  };
266
275
 
267
276
  onMounted(async () => {
@@ -360,35 +369,58 @@ export const PopupItem = designComponent({
360
369
 
361
370
  PopupItemProvide.provide(state);
362
371
 
372
+ let prevContent: any;
373
+
363
374
  return () => (
364
- !!state.option.reference && <Portal to={`.${getComponentCls(APPLICATION_SERVICE_CONTAINER_CLASS)}`}>
365
- <div
366
- data-id={state.option.id}
367
- ref={onRef.popup}
368
- className={classes.value}
369
- data-popup-show={String(state.isShow)}
370
- onTransitionEnd={handler.onTransitionend}
371
- style={styles.value}
372
- >
373
- {/*slide的情况下,arrow得放body外面,避免被overflow:hidden*/}
374
- {!!state.option.arrowSize && !state.option.noArrow && state.option.animation !== ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
375
- <div
376
- ref={onRef.body}
377
- className="popup-item-body"
378
- >
379
- {/*scale的情况下,arrow得放body里边,一遍能够继承body的transform:scale*/}
380
- {!!state.option.arrowSize && !state.option.noArrow && state.option.animation === ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
375
+ !!state.option.reference && (
376
+ (() => {
377
+ const content = (
381
378
  <div
382
- ref={onRef.content}
383
- style={contentStyles.value}
384
- className="popup-item-content"
379
+ data-id={state.option.id}
380
+ ref={onRef.popup}
381
+ className={classes.value}
382
+ data-popup-show={String(state.isShow)}
385
383
  onTransitionEnd={handler.onTransitionend}
384
+ style={styles.value}
385
+ onClick={handler.onClickPopup}
386
386
  >
387
- {slots.default.isExist() ? slots.default() : state.option.render()}
387
+ {/*slide的情况下,arrow得放body外面,避免被overflow:hidden*/}
388
+ {!!state.option.arrowSize && !state.option.noArrow && state.option.animation !== ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
389
+ <div
390
+ ref={onRef.body}
391
+ className="popup-item-body"
392
+ >
393
+ {/*scale的情况下,arrow得放body里边,一遍能够继承body的transform:scale*/}
394
+ {!!state.option.arrowSize && !state.option.noArrow && state.option.animation === ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
395
+ <div
396
+ ref={onRef.content}
397
+ style={contentStyles.value}
398
+ className="popup-item-content"
399
+ onTransitionEnd={handler.onTransitionend}
400
+ >
401
+ {(() => {
402
+ /*关闭的时候如果content为空,则渲染最后一次不为空的content内容*/
403
+ let content = slots.default.isExist() ? slots.default() : state.option.render();
404
+ if (!content) {
405
+ if (!state.isShow) {
406
+ content = prevContent;
407
+ }
408
+ } else {
409
+ prevContent = content;
410
+ }
411
+ return content;
412
+ })()}
413
+ </div>
414
+ </div>
388
415
  </div>
389
- </div>
390
- </div>
391
- </Portal>
416
+ );
417
+ return state.option.appendToBody ? (
418
+ <Portal to={`.${getComponentCls(APPLICATION_SERVICE_CONTAINER_CLASS)}`}>
419
+ {content}
420
+ </Portal>
421
+ ) : content;
422
+ })()
423
+ )
392
424
  );
393
425
  },
394
426
  });