plain-design 1.0.0-beta.4 → 1.0.0-beta.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. package/dist/plain-design.commonjs.min.js +3 -3
  2. package/dist/plain-design.min.css +37 -29
  3. package/dist/plain-design.min.js +3 -3
  4. package/dist/report.html +5 -5
  5. package/package.json +9 -8
  6. package/src/packages/build.ts +2 -10
  7. package/src/packages/components/$object/createObjectService.tsx +31 -20
  8. package/src/packages/components/$object/object.service.utils.ts +7 -3
  9. package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +108 -0
  10. package/src/packages/components/$previewer/image-previewer-fixed-container.scss +18 -0
  11. package/src/packages/components/$previewer/index.tsx +52 -0
  12. package/src/packages/components/Alert/alert.scss +3 -3
  13. package/src/packages/components/Application/service/useApplicationService.tsx +2 -0
  14. package/src/packages/components/Application/theme/theme.ts +3 -3
  15. package/src/packages/components/ArrowStepGroup/arrow-step.scss +4 -4
  16. package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +1 -0
  17. package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +2 -0
  18. package/src/packages/components/AutoTable/use/useTableOption.state.tsx +1 -0
  19. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +3 -3
  20. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +4 -0
  21. package/src/packages/components/Badge/badge.scss +1 -1
  22. package/src/packages/components/Button/button.scss +2 -2
  23. package/src/packages/components/Card/card.scss +1 -1
  24. package/src/packages/components/Carousel/carousel.scss +391 -0
  25. package/src/packages/components/Carousel/index.tsx +569 -22
  26. package/src/packages/components/CarouselItem/index.tsx +77 -0
  27. package/src/packages/components/CascadePanel/list/CascadeListPanelItem.tsx +3 -3
  28. package/src/packages/components/CheckboxInner/checkbox-inner.scss +1 -1
  29. package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +8 -5
  30. package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +7 -4
  31. package/src/packages/components/DatePicker/date.scss +1 -1
  32. package/src/packages/components/Dialog/dialog.scss +1 -1
  33. package/src/packages/components/Dialog/index.tsx +4 -3
  34. package/src/packages/components/Dialog/useDialogMovable.tsx +7 -4
  35. package/src/packages/components/Dialog/utils/dialog.mouse.ts +4 -2
  36. package/src/packages/components/Dropdown/dropdown.public.scss +10 -0
  37. package/src/packages/components/Dropdown/dropdown.utils.tsx +3 -1
  38. package/src/packages/components/Dropdown/index.tsx +2 -2
  39. package/src/packages/components/DropdownOption/index.tsx +3 -3
  40. package/src/packages/components/DropdownSeparator/index.tsx +8 -0
  41. package/src/packages/components/FilterFormMultiple/index.tsx +31 -10
  42. package/src/packages/components/Image/image.scss +3 -3
  43. package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +574 -0
  44. package/src/packages/components/ImagePreviewer/ImagePreviewerButtonBar.tsx +140 -0
  45. package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +54 -0
  46. package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +202 -0
  47. package/src/packages/components/ImagePreviewer/PreviewerLoading.tsx +26 -0
  48. package/src/packages/components/ImagePreviewer/image-previewer.scss +244 -0
  49. package/src/packages/components/ImagePreviewer/image-previewer.utils.tsx +135 -0
  50. package/src/packages/components/ImagePreviewer/index.tsx +5 -0
  51. package/src/packages/components/ImagePreviewer/previewer-loading.scss +52 -0
  52. package/src/packages/components/Input/index.scss +2 -2
  53. package/src/packages/components/Input/useMultipleInput.tsx +2 -76
  54. package/src/packages/components/Input/useTextareaInput.tsx +10 -5
  55. package/src/packages/components/Input/uses/useInputHooks.tsx +11 -11
  56. package/src/packages/components/InputNumber/NumberResize.tsx +20 -3
  57. package/src/packages/components/InputNumber/input-number.utils.tsx +7 -5
  58. package/src/packages/components/InputNumber/number.scss +10 -1
  59. package/src/packages/components/InputNumber/useInputNumber.public.tsx +25 -6
  60. package/src/packages/components/Layout/index.tsx +31 -0
  61. package/src/packages/components/Layout/layout.scss +227 -0
  62. package/src/packages/components/Layout/layout.utils.ts +3 -0
  63. package/src/packages/components/LayoutSection/index.tsx +67 -0
  64. package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -0
  65. package/src/packages/components/LoadingMask/index.tsx +1 -1
  66. package/src/packages/components/PageThemeUtils/index.tsx +54 -14
  67. package/src/packages/components/Pagination/pagination.scss +2 -2
  68. package/src/packages/components/PlcOv/index.tsx +14 -4
  69. package/src/packages/components/Popup/index.tsx +24 -10
  70. package/src/packages/components/ProgressBar/progress-bar.scss +1 -1
  71. package/src/packages/components/Rate/index.tsx +3 -1
  72. package/src/packages/components/Scroll/HorizontalScrollbar.tsx +7 -3
  73. package/src/packages/components/Scroll/VerticalScrollbar.tsx +7 -3
  74. package/src/packages/components/Scroll/index.tsx +6 -6
  75. package/src/packages/components/Select/createPublicSelectRender.tsx +1 -1
  76. package/src/packages/components/Slider/slider.scss +1 -1
  77. package/src/packages/components/Slider/useSliderDotDragier.tsx +7 -4
  78. package/src/packages/components/SortList/index.tsx +191 -0
  79. package/src/packages/components/SortList/sort-list.scss +11 -0
  80. package/src/packages/components/StackCard/index.tsx +416 -0
  81. package/src/packages/components/StackCard/stack-card.scss +40 -0
  82. package/src/packages/components/StackCardItem/index.tsx +24 -0
  83. package/src/packages/components/StepGroup/step-group.scss +9 -9
  84. package/src/packages/components/TabGroup/TabsInner.tsx +5 -3
  85. package/src/packages/components/TabGroup/header/horizontal/tabs-header-horizontal.scss +0 -1
  86. package/src/packages/components/TabGroup/index.tsx +5 -1
  87. package/src/packages/components/TabGroup/tabs.scss +3 -0
  88. package/src/packages/components/Table/standard/PlcExpand.tsx +12 -20
  89. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +1 -1
  90. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +2 -0
  91. package/src/packages/components/Table/standard/PlcTree/RenderPlcTreeNode.tsx +2 -1
  92. package/src/packages/components/Table/table/Table.tsx +10 -3
  93. package/src/packages/components/Table/table/body/row.tsx +1 -1
  94. package/src/packages/components/Table/table/body/useCellValue.tsx +10 -6
  95. package/src/packages/components/Table/table/head/useHeadCellResize.ts +8 -3
  96. package/src/packages/components/Table/table/table.scss +2 -1
  97. package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +10 -5
  98. package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +12 -7
  99. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +1 -1
  100. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +1 -1
  101. package/src/packages/components/Table/table/utils/createTableHooks.ts +4 -2
  102. package/src/packages/components/Table/table/utils/table.utils.ts +6 -1
  103. package/src/packages/components/ThemeEditor/index.tsx +173 -0
  104. package/src/packages/components/ThemeEditor/theme-editor.scss +105 -0
  105. package/src/packages/components/ThemePrimaryColors/index.ts +5 -0
  106. package/src/packages/components/Tree/RenderTreeNode.tsx +8 -3
  107. package/src/packages/components/Tree/index.tsx +4 -3
  108. package/src/packages/components/Tree/tree.scss +42 -9
  109. package/src/packages/components/TreeCore/TreeCore.type.tsx +2 -0
  110. package/src/packages/components/TreeCore/createTreeCore.tsx +5 -1
  111. package/src/packages/components/TreeCore/createTreeDraggier.tsx +70 -56
  112. package/src/packages/components/TreeCore/createTreeMethods.tsx +1 -0
  113. package/src/packages/components/TreeCore/createTreeProps.ts +2 -1
  114. package/src/packages/components/TreeNodeWithMenu/index.tsx +91 -0
  115. package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +39 -0
  116. package/src/packages/components/TreeNodeWithMenu/treeNodeWithMenu.utils.ts +12 -0
  117. package/src/packages/components/VirtualList/index.tsx +15 -6
  118. package/src/packages/components/VirtualList/useVirtualList.tsx +182 -107
  119. package/src/packages/components/VirtualList/virtual-list.scss +31 -17
  120. package/src/packages/components/VirtualTable/index.tsx +7 -7
  121. package/src/packages/components/VirtualTable/virtual-table.scss +1 -2
  122. package/src/packages/components/createProvider/index.ts +5 -0
  123. package/src/packages/components/nextPopupId/index.ts +5 -0
  124. package/src/packages/components/useDialog/DialogService.tsx +13 -1
  125. package/src/packages/components/useDialog/index.tsx +1 -1
  126. package/src/packages/components/useImage/ImageService.tsx +7 -4
  127. package/src/packages/components/useMessage/Message.tsx +5 -1
  128. package/src/packages/components/useMessage/message.scss +5 -1
  129. package/src/packages/components/useNotice/notice.scss +2 -2
  130. package/src/packages/components/usePopup/PopupItem.tsx +45 -26
  131. package/src/packages/components/usePopup/popup-item.scss +5 -1
  132. package/src/packages/components/usePopup/usePopupManager.tsx +2 -1
  133. package/src/packages/components/usePopup/utils/popup.utils.ts +2 -1
  134. package/src/packages/components/usePopupManager/index.ts +5 -0
  135. package/src/packages/components/usePopupTrigger/index.tsx +5 -0
  136. package/src/packages/components/useReferenceTrigger/index.tsx +5 -0
  137. package/src/packages/components/useTooltip/index.tsx +2 -0
  138. package/src/packages/components/useWatchAutoClear/index.ts +5 -0
  139. package/src/packages/entry.tsx +48 -2
  140. package/src/packages/i18n/lang/en-us.ts +36 -0
  141. package/src/packages/i18n/lang/zh-cn.ts +36 -0
  142. package/src/packages/uses/useDragHorizontalScroll.ts +82 -0
  143. package/src/packages/uses/useEdit.ts +5 -1
  144. package/src/packages/uses/useStyle.tsx +10 -2
  145. package/src/packages/utils/ClientZoom.ts +24 -2
  146. package/src/packages/utils/ComponentUtils.ts +10 -0
  147. package/src/packages/utils/buildCycleIndexList.ts +31 -0
  148. package/src/packages/utils/getDeviceInfo.ts +44 -44
  149. package/src/packages/utils/getRectAutoFormat.ts +9 -0
  150. package/src/packages/utils/inheritSlots.ts +28 -0
  151. package/src/packages/utils/notNull.ts +9 -0
  152. package/src/packages/utils/useMove.tsx +10 -4
  153. package/src/packages/components/CarouselGroup/carousel.scss +0 -143
  154. package/src/packages/components/CarouselGroup/index.tsx +0 -274
  155. package/src/pages/data/address.json +0 -39317
  156. package/src/pages/data/data-1.json +0 -754
  157. package/src/pages/data/data-2.json +0 -3006
  158. package/src/pages/data/data-200.json +0 -5206
  159. package/src/pages/data/data-2000.json +0 -51954
  160. package/src/pages/data/data-50.json +0 -2075
  161. package/src/pages/data/data.json +0 -30002
  162. package/src/pages/data/demo.json +0 -1702
  163. package/src/pages/data/mock.database.js +0 -43
  164. package/src/pages/data/mock.js +0 -141
  165. package/src/pages/data/tree.data.json +0 -87
  166. package/src/pages/env/config/local.js +0 -3
  167. package/src/pages/env/config/prod.js +0 -3
  168. package/src/pages/env/config/undefined.js +0 -1
  169. package/src/pages/env/env.d.ts +0 -4
  170. package/src/pages/env/index.ts +0 -1
  171. package/src/pages/history/createHistory.ts +0 -94
  172. package/src/pages/history/history.utils.ts +0 -64
  173. package/src/pages/index/App.tsx +0 -17
  174. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  175. package/src/pages/index/Demo/DemoRow.scss +0 -128
  176. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  177. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  178. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  179. package/src/pages/index/Demo/index.ts +0 -8
  180. package/src/pages/index/app.scss +0 -192
  181. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -51
  182. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  183. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  184. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  185. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  186. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  187. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  188. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  189. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  190. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  191. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  192. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  193. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  194. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  195. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  196. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  197. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  198. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  199. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  200. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  201. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  202. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  203. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  204. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  205. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  206. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  207. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  208. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  209. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  210. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  211. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  212. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  213. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  214. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  215. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  216. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  217. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -125
  218. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  219. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  220. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  221. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  222. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  223. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  224. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  225. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  226. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  227. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -463
  228. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  229. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  230. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  231. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  232. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  233. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  234. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  235. package/src/pages/index/components/normal/DemoList.scss +0 -15
  236. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  237. package/src/pages/index/components/normal/DemoLoading.tsx +0 -83
  238. package/src/pages/index/components/normal/DemoNumber.tsx +0 -266
  239. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  240. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  241. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  242. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  243. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  244. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  245. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  246. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  247. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  248. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  249. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  250. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  251. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  252. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  253. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  254. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  255. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  256. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  257. package/src/pages/index/components/normal/DemoTree.tsx +0 -1099
  258. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  259. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -378
  260. package/src/pages/index/components/service/DemoDialogService.tsx +0 -248
  261. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  262. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  263. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  264. package/src/pages/index/components/service/DemoPopupService.tsx +0 -322
  265. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  266. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  267. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  268. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  269. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  270. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  271. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  272. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -181
  273. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  274. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  275. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  276. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  277. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  278. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  279. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  280. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  281. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  282. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  283. package/src/pages/index/home/AppContent.tsx +0 -69
  284. package/src/pages/index/home/AppHead.tsx +0 -104
  285. package/src/pages/index/home/AppHome.tsx +0 -16
  286. package/src/pages/index/home/AppMenu.tsx +0 -38
  287. package/src/pages/index/home/menus.tsx +0 -217
  288. package/src/pages/index/main.tsx +0 -23
  289. package/src/pages/index/nav/$nav.ts +0 -41
  290. package/src/pages/index/pages.d.ts +0 -6
  291. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  292. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  293. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  294. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  295. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  296. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  297. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  298. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  299. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  300. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  301. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  302. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  303. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  304. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  305. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  306. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  307. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  308. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  309. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  310. package/src/pages/module/address.ts +0 -27
  311. package/src/pages/module/http.ts +0 -24
  312. package/src/pages/module/index.ts +0 -19
  313. package/src/pages/module/object.ts +0 -5
  314. package/src/pages/module/ov.tsx +0 -13
  315. package/src/pages/module/upload.ts +0 -9
  316. package/src/pages/module/useTableOption.ts +0 -28
@@ -2,6 +2,7 @@ import {designComponent, getComponentCls, iMouseEvent, nextIndex, onMounted, Pro
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
 
@@ -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
  }
@@ -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 {
@@ -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";
@@ -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 () => {
@@ -361,34 +370,44 @@ export const PopupItem = designComponent({
361
370
  PopupItemProvide.provide(state);
362
371
 
363
372
  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}/>)}
373
+ !!state.option.reference && (
374
+ (() => {
375
+ const content = (
381
376
  <div
382
- ref={onRef.content}
383
- style={contentStyles.value}
384
- className="popup-item-content"
377
+ data-id={state.option.id}
378
+ ref={onRef.popup}
379
+ className={classes.value}
380
+ data-popup-show={String(state.isShow)}
385
381
  onTransitionEnd={handler.onTransitionend}
382
+ style={styles.value}
383
+ onClick={handler.onClickPopup}
386
384
  >
387
- {slots.default.isExist() ? slots.default() : state.option.render()}
385
+ {/*slide的情况下,arrow得放body外面,避免被overflow:hidden*/}
386
+ {!!state.option.arrowSize && !state.option.noArrow && state.option.animation !== ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
387
+ <div
388
+ ref={onRef.body}
389
+ className="popup-item-body"
390
+ >
391
+ {/*scale的情况下,arrow得放body里边,一遍能够继承body的transform:scale*/}
392
+ {!!state.option.arrowSize && !state.option.noArrow && state.option.animation === ePopupAnimation.scale && (<div className="popup-item-arrow" ref={onRef.arrow}/>)}
393
+ <div
394
+ ref={onRef.content}
395
+ style={contentStyles.value}
396
+ className="popup-item-content"
397
+ onTransitionEnd={handler.onTransitionend}
398
+ >
399
+ {slots.default.isExist() ? slots.default() : state.option.render()}
400
+ </div>
401
+ </div>
388
402
  </div>
389
- </div>
390
- </div>
391
- </Portal>
403
+ );
404
+ return state.option.appendToBody ? (
405
+ <Portal to={`.${getComponentCls(APPLICATION_SERVICE_CONTAINER_CLASS)}`}>
406
+ {content}
407
+ </Portal>
408
+ ) : content;
409
+ })()
410
+ )
392
411
  );
393
412
  },
394
413
  });
@@ -97,7 +97,7 @@
97
97
 
98
98
  &.popup-item-is-dark {
99
99
  --#{componentName('popup-item-background')}: rgba(0, 0, 0, 0.88);
100
- color: white;
100
+ color: plv(pbfc);
101
101
  filter: none;
102
102
  }
103
103
 
@@ -112,6 +112,10 @@
112
112
  &.popup-item-no-border {
113
113
  filter: none !important;
114
114
  }
115
+
116
+ &.popup-item-no-interactive {
117
+ pointer-events: none;
118
+ }
115
119
  /*---------------------------------------animation-------------------------------------------*/
116
120
 
117
121
  &.popup-item-animation-fade {
@@ -62,7 +62,8 @@ export function usePopupManager({ getSize }: { getSize: () => typeof ThemeSize.T
62
62
  trigger: ePopupTrigger.hover,
63
63
  animation: ePopupAnimation.fade,
64
64
  destroyOnClose: true,
65
- to: 'body',
65
+ appendToBody: true,
66
+ transformRefreshOnScroll: true,
66
67
  offset: 0,
67
68
  offsetAlign: 0,
68
69
  autoSwitchDirection: true,
@@ -62,7 +62,8 @@ export interface iPopupDefaultOption {
62
62
  trigger: iPopupTrigger, // 触发类型
63
63
  animation: iPopupAnimation, // 动画类型
64
64
  destroyOnClose: boolean, // 关闭的时候销毁popup
65
- to: string, // 挂载到某个dom节点下
65
+ appendToBody: boolean, // 挂载到某个dom节点下
66
+ transformRefreshOnScroll: boolean, // scroll的时候refresh使用transform来优化
66
67
  offset: number, // 在direction方向上的距离
67
68
  offsetAlign: number, // 在align方向上的偏移距离
68
69
  autoSwitchDirection: boolean, // 当空间不够时,是否自动切换direction
@@ -0,0 +1,5 @@
1
+ import {usePopupManager} from "../usePopup/usePopupManager";
2
+
3
+ export default usePopupManager;
4
+
5
+ export {usePopupManager};
@@ -0,0 +1,5 @@
1
+ import {usePopupTrigger} from '../usePopup/trigger/usePopupTrigger';
2
+
3
+ export default usePopupTrigger;
4
+
5
+ export {usePopupTrigger};
@@ -0,0 +1,5 @@
1
+ import {useReferenceTrigger} from '../usePopup/trigger/useReferenceTrigger';
2
+
3
+ export default useReferenceTrigger;
4
+
5
+ export {useReferenceTrigger};
@@ -46,6 +46,8 @@ export function createTooltip(option: iTooltipServiceOption, popup: iPopupServic
46
46
  if (option.overflow) {
47
47
  if (staticState.reference!.scrollWidth > staticState.reference!.offsetWidth) {
48
48
  state.isOverflow = true;
49
+ } else {
50
+ state.isOverflow = false;
49
51
  }
50
52
  }
51
53
  },
@@ -0,0 +1,5 @@
1
+ import {useWatchAutoClear} from "../../utils/watchEffectAutoClear";
2
+
3
+ export {useWatchAutoClear};
4
+
5
+ export default useWatchAutoClear;
@@ -1,4 +1,5 @@
1
1
  import {setComponentPrefix} from "plain-design-composition";
2
+ import packageJson from '../../package.json';
2
3
 
3
4
  export {Application} from "./components/Application";
4
5
  export type {iApplicationConfiguration} from './components/Application/utils/application.utils';
@@ -27,13 +28,14 @@ export {RadioGroup} from "./components/RadioGroup";
27
28
  export {DropdownOption} from "./components/DropdownOption";
28
29
  export {Dropdown} from "./components/Dropdown";
29
30
  export {DropdownGroup} from "./components/DropdownGroup";
31
+ export {DropdownSeparator} from "./components/DropdownSeparator";
30
32
  export {VirtualList} from "./components/VirtualList";
31
33
  export {Segment} from "./components/Segment";
32
34
  export {SegmentGroup} from "./components/SegmentGroup";
33
35
  export {InputGroup} from "./components/InputGroup";
34
36
  export {Card} from "./components/Card";
37
+ export {CarouselItem} from "./components/CarouselItem";
35
38
  export {Carousel} from "./components/Carousel";
36
- export {CarouselGroup} from "./components/CarouselGroup";
37
39
  export {CollapseGroup} from "./components/CollapseGroup";
38
40
  export {Collapse} from "./components/Collapse";
39
41
  export {ProgressBar} from "./components/ProgressBar";
@@ -54,6 +56,7 @@ export {TabGroup} from './components/TabGroup';
54
56
  export {Tab} from './components/Tab';
55
57
  export {Tag} from './components/Tag';
56
58
  export {Tree} from './components/Tree';
59
+ export {TreeNodeWithMenu} from './components/TreeNodeWithMenu';
57
60
  export {ColorPicker} from './components/ColorPicker';
58
61
  export {TimePicker} from './components/TimePicker';
59
62
  export {DatePicker} from './components/DatePicker';
@@ -85,9 +88,32 @@ export {CascadePanel} from './components/CascadePanel';
85
88
  export {usePopup} from './components/usePopup';
86
89
  export {Popup} from './components/Popup';
87
90
  export {createPopup} from './components/createPopup';
91
+ export type {
92
+ iPopupAlign,
93
+ iPopupAnimation,
94
+ iPopupBoundary,
95
+ iPopupCustomOption,
96
+ iPopupDefaultOption,
97
+ iPopupDirection,
98
+ iPopupManager,
99
+ iPopupOption,
100
+ iPopupPlacement,
101
+ iPopupRects,
102
+ iPopupRefreshBuildParams,
103
+ iPopupRefreshParams,
104
+ iPopupRefs,
105
+ iPopupTrigger,
106
+ iPopupUseOption,
107
+ } from './components/usePopup/utils/popup.utils';
88
108
  export {createScrollUtils} from './components/createScrollUtils';
89
109
  export {useAutoScrollUtils} from './components/useAutoScrollUtils';
90
110
  export {ClientZoom} from './components/ClientZoom';
111
+ export {Layout} from './components/Layout';
112
+ export {LayoutSection} from './components/LayoutSection';
113
+ export {$previewer} from './components/$previewer';
114
+ export {StackCard} from './components/StackCard';
115
+ export {StackCardItem} from './components/StackCardItem';
116
+ export {SortList} from './components/SortList';
91
117
 
92
118
  export {VirtualTable} from './components/VirtualTable';
93
119
  export {Table} from './components/Table';
@@ -127,12 +153,18 @@ export type {iOvMeta} from './components/$ov/ov.utils';
127
153
  export {$configuration} from './components/$configuration';
128
154
  export {createAddressService} from './components/createAddressService';
129
155
  export {createHttp} from './components/createHttp';
156
+ export type {
157
+ iHttpRequestConfig,
158
+ iPlainResponseDataType,
159
+ iHttpResponseDataType
160
+ } from './components/createHttp/http.utils';
130
161
 
131
162
  export {Address} from './components/Address';
132
163
  export {AddressCascade} from './components/AddressCascade';
133
164
  export {eAddressTypeEnum} from './components/$address/address.utils';
134
165
  export type {iAddressSyncMeta, iAddressLazyMeta} from './components/$address/address.utils';
135
166
  export type {iPlainAddressData} from './components/createPlainAddressService';
167
+ export {Empty} from './components/Empty';
136
168
 
137
169
  export {FormInput} from './components/FormInput';
138
170
  export {FormSelect} from './components/FormSelect';
@@ -162,6 +194,20 @@ export type {
162
194
  iTableOptionCacheRegistryConfig,
163
195
  iTableOptionGetCacheParam
164
196
  } from './components/AutoTable/use/useTableOption.cache.utils';
165
- export {PageThemeUtils, ThemePrimaryColors} from './components/PageThemeUtils';
197
+ export {PageThemeUtils} from './components/PageThemeUtils';
198
+ export {ThemePrimaryColors} from './components/ThemePrimaryColors';
199
+ export {ThemeEditor} from './components/ThemeEditor';
200
+ export {useReferenceTrigger} from './components/useReferenceTrigger';
201
+ export {usePopupTrigger} from './components/usePopupTrigger';
202
+ export {useWatchAutoClear} from './components/useWatchAutoClear';
203
+ export {nextPopupId} from './components/nextPopupId';
204
+ export {createProvider} from './components/createProvider';
205
+ export {usePopupManager} from './components/usePopupManager';
206
+ export {useEdit, EditProps, EDIT_PROVIDER} from './uses/useEdit';
207
+ export type {tEditComputed, tEditControl, EditProvideData} from './uses/useEdit';
208
+ export {useStyle, StyleProps, ThemeShape, ThemeSize, ThemeStatus} from './uses/useStyle';
209
+ export type {tStyleComputed, UseStyleProvideData} from './uses/useStyle';
166
210
 
167
211
  setComponentPrefix(globalComponentPrefix);
212
+
213
+ export const version = packageJson.version;
@@ -244,4 +244,40 @@ export const EnUsLocale: tZhCnLocale = {
244
244
  queryTotal: 'query total',
245
245
  columnTitle: 'column title',
246
246
  },
247
+ theme: {
248
+ inputMode: 'INPUT MODE',
249
+ inputModeFlat: 'flat',
250
+ inputModelStroke: 'stroke',
251
+ primaryColor: 'PRIMARY COLOR',
252
+ size: 'SIZE',
253
+ sizeLarge: 'large',
254
+ sizeNormal: 'normal',
255
+ sizeSmall: 'small',
256
+ sizeMini: 'mini',
257
+ darkMode: 'DARK MODE',
258
+ darkModeOn: 'dark',
259
+ darkModeOff: 'light',
260
+ radiusMode: 'RADIUS MODE',
261
+ radiusModeRound: 'round',
262
+ radiusModeNormal: 'filet',
263
+ radiusModeNone: 'none',
264
+ scale: 'SCALE'
265
+ },
266
+ colorName: {
267
+ 默认主题: 'Default',
268
+ 薄暮: 'Twilight',
269
+ 火山: 'Volcano',
270
+ 日暮: 'Sunset',
271
+ 金盏花: 'MarigoldFlower',
272
+ 日出: 'sunrise',
273
+ 青柠: 'GreenLime',
274
+ 极光绿: 'AuroraGreen',
275
+ 明青: 'MingQing',
276
+ 拂晓蓝: 'FuXiaolan',
277
+ 极客蓝: 'GeekBlue',
278
+ 酱紫: 'SaucePurple',
279
+ 洋红: 'Magenta',
280
+ 极昼: 'Light',
281
+ 黑夜: 'Dark',
282
+ }
247
283
  };
@@ -242,6 +242,42 @@ export const ZhCnLocale = {
242
242
  queryTotal: '查询总数',
243
243
  columnTitle: '列标题',
244
244
  },
245
+ theme: {
246
+ inputMode: '输入框类型',
247
+ inputModeFlat: '填充',
248
+ inputModelStroke: '描边',
249
+ primaryColor: '主题色',
250
+ size: '大小尺寸',
251
+ sizeLarge: '大尺寸',
252
+ sizeNormal: '中等尺寸',
253
+ sizeSmall: '小尺寸',
254
+ sizeMini: '极小尺寸',
255
+ darkMode: '黑白主题',
256
+ darkModeOn: '黑色主题',
257
+ darkModeOff: '白色主题',
258
+ radiusMode: '圆角类型',
259
+ radiusModeRound: '圆角',
260
+ radiusModeNormal: '小圆角',
261
+ radiusModeNone: '无圆角',
262
+ scale: '大小缩放'
263
+ },
264
+ colorName: {
265
+ 默认主题: '默认主题',
266
+ 薄暮: '薄暮',
267
+ 火山: '火山',
268
+ 日暮: '日暮',
269
+ 金盏花: '金盏花',
270
+ 日出: '日出',
271
+ 青柠: '青柠',
272
+ 极光绿: '极光绿',
273
+ 明青: '明青',
274
+ 拂晓蓝: '拂晓蓝',
275
+ 极客蓝: '极客蓝',
276
+ 酱紫: '酱紫',
277
+ 洋红: '洋红',
278
+ 极昼: '极昼',
279
+ 黑夜: '黑夜',
280
+ }
245
281
  } as const;
246
282
 
247
283
  type ZhCnLocaleUtils<T> = { [k in keyof T]: T[k] extends string ? string : ZhCnLocaleUtils<T[k]> }
@@ -0,0 +1,82 @@
1
+ import {createEffects} from "plain-utils/utils/createEffects";
2
+ import {ClientZoom} from "../utils/ClientZoom";
3
+ import {watch} from "plain-design-composition";
4
+
5
+ export function useDragHorizontalScroll(getEl: () => HTMLElement | null | undefined, config?: { onDragStart: () => void, onDragEnd: () => void }) {
6
+
7
+ const staticState = {
8
+ isDragging: false,
9
+ el: null as null | undefined | HTMLElement,
10
+ start: {
11
+ x: 0,
12
+ left: 0,
13
+ width: 0,
14
+ },
15
+ move: {
16
+ x: 0
17
+ }
18
+ };
19
+
20
+ const { effects } = createEffects();
21
+
22
+ const handler = {
23
+ mousedown: (e: MouseEvent) => {
24
+ const { clientX } = ClientZoom.getClientPosition(e);
25
+ staticState.isDragging = false;
26
+ staticState.start = {
27
+ x: clientX,
28
+ left: staticState.el!.scrollLeft,
29
+ width: staticState.el!.scrollWidth,
30
+ };
31
+ document.documentElement.addEventListener('mousemove', handler.mousemove, true);
32
+ document.documentElement.addEventListener('mouseup', handler.mouseup, true);
33
+ },
34
+ mousemove: (e: MouseEvent) => {
35
+ const { clientX } = ClientZoom.getClientPosition(e);
36
+ staticState.move.x = clientX;
37
+ const durX = staticState.move.x - staticState.start.x;
38
+ if (!staticState.isDragging) {
39
+ if (Math.abs(durX) > 5) {
40
+ staticState.isDragging = true;
41
+ config?.onDragStart();
42
+ }
43
+ }
44
+ if (!staticState.isDragging) {
45
+ return;
46
+ }
47
+ staticState.el!.scrollLeft = staticState.start.left - durX;
48
+ },
49
+ mouseup: () => {
50
+ config?.onDragEnd();
51
+ document.documentElement.removeEventListener('mousemove', handler.mousemove, true);
52
+ document.documentElement.removeEventListener('mouseup', handler.mouseup, true);
53
+ },
54
+ onWheel: (e: WheelEvent) => {
55
+ e.stopPropagation();
56
+ e.preventDefault();
57
+ const el = e.currentTarget as HTMLElement;
58
+ const delta = e.deltaX + e.deltaY;
59
+ el.scrollLeft += delta;
60
+ },
61
+ };
62
+
63
+ effects.push(watch(() => getEl(), el => {
64
+ if (!!staticState.el) {
65
+ staticState.el.removeEventListener('mousedown', handler.mousedown);
66
+ staticState.el.removeEventListener('wheel', handler.onWheel);
67
+ }
68
+ staticState.el = el;
69
+ if (!staticState.el) {return;}
70
+ staticState.el.addEventListener('mousedown', handler.mousedown);
71
+ staticState.el.addEventListener('wheel', handler.onWheel);
72
+ }));
73
+
74
+ effects.push(() => {
75
+ if (!!staticState.el) {
76
+ staticState.el.removeEventListener('mousedown', handler.mousedown);
77
+ staticState.el.removeEventListener('wheel', handler.onWheel);
78
+ }
79
+ });
80
+
81
+ return effects.clear;
82
+ }
@@ -14,7 +14,7 @@ export const EditProps = {
14
14
  multiple: { type: Boolean }, // 是否多选
15
15
  } as const;
16
16
 
17
- interface EditProvideData {
17
+ export interface EditProvideData {
18
18
  disabled: boolean | null,
19
19
  readonly: boolean | null,
20
20
  loading: boolean | null,
@@ -74,6 +74,10 @@ export const useEdit = useFunctionWrapper(
74
74
  }
75
75
  }
76
76
 
77
+ onBeforeUnmount(() => {
78
+ editComputed.effect.stop();
79
+ });
80
+
77
81
  return {
78
82
  editState,
79
83
  editComputed,
@@ -1,4 +1,4 @@
1
- import {computed, inject, PropType, provide} from "plain-design-composition";
1
+ import {computed, inject, onBeforeUnmount, PropType, provide} from "plain-design-composition";
2
2
  import {useFunctionWrapper} from "./useFunctionWrapper";
3
3
  import {createEnum} from "plain-utils/utils/createEnum";
4
4
  import {ApplicationConfigurationProvider} from "../components/Application/utils/application.utils";
@@ -19,7 +19,7 @@ export const StyleProps = {
19
19
  status: { type: String as PropType<typeof ThemeStatus.TYPE> }, // 'secondary', 'primary', 'success', 'warn', 'error'
20
20
  } as const;
21
21
 
22
- interface UseStyleProvideData {
22
+ export interface UseStyleProvideData {
23
23
  shape: typeof ThemeShape.TYPE,
24
24
  size: typeof ThemeSize.TYPE,
25
25
  status?: typeof ThemeStatus.TYPE,
@@ -62,6 +62,14 @@ export const useStyle = useFunctionWrapper('style', (ctx, option: UseStyleOption
62
62
 
63
63
  provide(USE_STYLE_PROVIDER, styleComputed);
64
64
 
65
+ onBeforeUnmount(() => {
66
+ setTimeout(() => {
67
+ (styleComputed.value as any).ctx = null;
68
+ (styleComputed.value as any).parent = null;
69
+ styleComputed.effect.stop();
70
+ });
71
+ });
72
+
65
73
  return { styleComputed };
66
74
  });
67
75
 
@@ -1,8 +1,10 @@
1
+ import {iMouseEvent} from 'plain-design-composition';
2
+
1
3
  export const ClientZoom = (() => {
2
4
  let zoom: '' | number = '';
3
5
  return {
4
- get: () => {
5
- return zoom;
6
+ get: (): number => {
7
+ return zoom === '' ? 1 : zoom;
6
8
  },
7
9
  set: (_zoom: number | null) => {
8
10
  const __zoom = _zoom == null ? '' : _zoom;
@@ -24,5 +26,25 @@ export const ClientZoom = (() => {
24
26
  };
25
27
  }
26
28
  },
29
+ getClientPosition: (e: iMouseEvent | MouseEvent): { clientX: number, clientY: number, offsetX: number, offsetY: number, } => {
30
+ const { clientX, clientY, offsetX, offsetY } = 'nativeEvent' in e ? e.nativeEvent : e;
31
+ return {
32
+ clientX: ClientZoom.formatClientValue(clientX),
33
+ clientY: ClientZoom.formatClientValue(clientY),
34
+ offsetX: ClientZoom.formatClientValue(offsetX),
35
+ offsetY: ClientZoom.formatClientValue(offsetY),
36
+ };
37
+ },
38
+ formatClientValue: (val: number) => {
39
+ return ClientZoom.zoomPosition(val);
40
+ },
41
+ zoomPosition(val: number) {
42
+ const zoom = ClientZoom.get();
43
+ return Number((val / zoom).toFixed(2));
44
+ },
45
+ zoomSize(val: number) {
46
+ const zoom = ClientZoom.get();
47
+ return Number((val * zoom).toFixed(2));
48
+ },
27
49
  };
28
50
  })();
@@ -0,0 +1,10 @@
1
+ export const ComponentUtils = {
2
+ /**
3
+ * 适配taro ui的一些写法
4
+ * @author 韦胜健
5
+ * @date 2024/1/3 16:48
6
+ */
7
+ getElInfo: async (selector: string) => {
8
+ return document.querySelector(selector)!.getBoundingClientRect();
9
+ },
10
+ };
@@ -0,0 +1,31 @@
1
+ export function buildCycleIndexList({ length, current }: { length: number, current: number }) {
2
+
3
+ const sourceList = new Array(length).fill(null).map((_, index) => index);
4
+ const cycleIndexList = (() => {
5
+
6
+ if (sourceList.length <= 2) {
7
+ return sourceList;
8
+ }
9
+
10
+ const leftList = sourceList.slice(0, current);
11
+ const rightList = sourceList.slice(current + 1);
12
+
13
+ while (Math.abs(leftList.length - rightList.length) >= 2) {
14
+ if (leftList.length > rightList.length) {
15
+ rightList.push(leftList.shift()!);
16
+ } else {
17
+ leftList.unshift(rightList.pop()!);
18
+ }
19
+ }
20
+ return [...leftList, current, ...rightList];
21
+ })();
22
+
23
+ const currentIndexInCycle = cycleIndexList.indexOf(current);
24
+
25
+ const index2distance = cycleIndexList.reduce((prev, item, cycleIndex) => {
26
+ prev[item] = cycleIndex - currentIndexInCycle;
27
+ return prev;
28
+ }, {} as Record<number, number>);
29
+
30
+ return { cycleIndexList, currentIndexInCycle, index2distance };
31
+ }