plain-design 1.0.0-beta.147 → 1.0.0-beta.149

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/README.md +2 -2
  2. package/dist/plain-design.commonjs.min.js +1 -1
  3. package/dist/plain-design.min.css +1 -0
  4. package/dist/plain-design.min.js +1 -1
  5. package/dist/report.html +2 -2
  6. package/package.json +1 -1
  7. package/src/index.ts +1 -1
  8. package/src/packages/build.ts +7 -7
  9. package/src/packages/components/$address/address.utils.ts +31 -31
  10. package/src/packages/components/$address/createAddressService.tsx +208 -208
  11. package/src/packages/components/$address/index.tsx +7 -7
  12. package/src/packages/components/$configuration/index.tsx +60 -60
  13. package/src/packages/components/$dialog/index.tsx +7 -7
  14. package/src/packages/components/$file/index.tsx +255 -255
  15. package/src/packages/components/$image/index.tsx +7 -7
  16. package/src/packages/components/$loading/index.tsx +3 -3
  17. package/src/packages/components/$message/image.service.utils.tsx +161 -161
  18. package/src/packages/components/$message/index.tsx +7 -7
  19. package/src/packages/components/$notice/index.tsx +7 -7
  20. package/src/packages/components/$object/createObjectService.tsx +217 -217
  21. package/src/packages/components/$object/index.ts +5 -5
  22. package/src/packages/components/$object/object.conver.ts +56 -56
  23. package/src/packages/components/$object/object.service.utils.ts +56 -56
  24. package/src/packages/components/$ov/createOvService.ts +86 -86
  25. package/src/packages/components/$ov/index.tsx +5 -5
  26. package/src/packages/components/$ov/ov.utils.ts +11 -11
  27. package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +108 -108
  28. package/src/packages/components/$previewer/image-previewer-fixed-container.scss +18 -18
  29. package/src/packages/components/$previewer/index.tsx +52 -52
  30. package/src/packages/components/$search/SearchFooter.tsx +32 -32
  31. package/src/packages/components/$search/SearchList.tsx +207 -207
  32. package/src/packages/components/$search/SearchServicePanel.tsx +233 -233
  33. package/src/packages/components/$search/createSearchService.tsx +43 -43
  34. package/src/packages/components/$search/index.tsx +6 -6
  35. package/src/packages/components/$search/search-service.scss +221 -221
  36. package/src/packages/components/$search/search.utils.tsx +112 -112
  37. package/src/packages/components/$upload/createUploadService.tsx +57 -57
  38. package/src/packages/components/$upload/upload.utils.ts +18 -18
  39. package/src/packages/components/Address/index.tsx +138 -138
  40. package/src/packages/components/AddressCascade/address-cascade.utils.ts +44 -44
  41. package/src/packages/components/AddressCascade/createAddressCascade.hooks.ts +9 -9
  42. package/src/packages/components/AddressCascade/createAddressCascade.multiple.tsx +53 -53
  43. package/src/packages/components/AddressCascade/createAddressCascade.single.tsx +75 -75
  44. package/src/packages/components/AddressCascade/index.tsx +59 -59
  45. package/src/packages/components/AiChatBox/ai-chat-box.scss +74 -74
  46. package/src/packages/components/AiChatBox/index.tsx +154 -154
  47. package/src/packages/components/Alert/alert.scss +139 -139
  48. package/src/packages/components/Alert/index.tsx +93 -93
  49. package/src/packages/components/Application/application.scss +16 -16
  50. package/src/packages/components/Application/index.tsx +56 -56
  51. package/src/packages/components/Application/service/createApplicationService.tsx +47 -47
  52. package/src/packages/components/Application/service/createApplicationServiceComponent.tsx +41 -41
  53. package/src/packages/components/Application/service/createApplicationServiceManager.tsx +101 -101
  54. package/src/packages/components/Application/service/useApplicationService.tsx +126 -126
  55. package/src/packages/components/Application/theme/theme.ts +282 -282
  56. package/src/packages/components/Application/theme/theme.utils.ts +17 -17
  57. package/src/packages/components/Application/utils/application.utils.ts +21 -21
  58. package/src/packages/components/Application/utils/createServiceReadyObserver.ts +18 -18
  59. package/src/packages/components/ApplicationConfigurationProvider/index.tsx +5 -5
  60. package/src/packages/components/ArrowStep/index.tsx +73 -73
  61. package/src/packages/components/ArrowStepGroup/arrow-step.scss +119 -119
  62. package/src/packages/components/ArrowStepGroup/index.tsx +63 -63
  63. package/src/packages/components/AsyncFormatter/index.tsx +1 -1
  64. package/src/packages/components/AutoLoadingObserver/index.tsx +173 -173
  65. package/src/packages/components/AutoTable/AutoTable.tsx +56 -56
  66. package/src/packages/components/AutoTable/auto-table.scss +463 -463
  67. package/src/packages/components/AutoTable/createTableOptionUser.tsx +77 -77
  68. package/src/packages/components/AutoTable/filter/useTableOption.filter.form.tsx +217 -217
  69. package/src/packages/components/AutoTable/filter/useTableOption.filter.search.tsx +168 -168
  70. package/src/packages/components/AutoTable/filter/useTableOption.filter.state.ts +196 -196
  71. package/src/packages/components/AutoTable/index.tsx +4 -4
  72. package/src/packages/components/AutoTable/setting/useTableOption.setting.all.fitler.tsx +79 -79
  73. package/src/packages/components/AutoTable/setting/useTableOption.setting.cache.tsx +145 -145
  74. package/src/packages/components/AutoTable/setting/useTableOption.setting.config.tsx +260 -260
  75. package/src/packages/components/AutoTable/setting/useTableOption.setting.export.tsx +283 -283
  76. package/src/packages/components/AutoTable/setting/useTableOption.setting.import.tsx +100 -100
  77. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.filter.tsx +385 -385
  78. package/src/packages/components/AutoTable/setting/useTableOption.setting.senior.sort.tsx +123 -123
  79. package/src/packages/components/AutoTable/setting/useTableOption.setting.tsx +109 -109
  80. package/src/packages/components/AutoTable/setting/useTableOption.setting.utils.ts +40 -40
  81. package/src/packages/components/AutoTable/use/useTableOption.buttons.tsx +249 -249
  82. package/src/packages/components/AutoTable/use/useTableOption.cache.ts +235 -235
  83. package/src/packages/components/AutoTable/use/useTableOption.cache.utils.ts +83 -83
  84. package/src/packages/components/AutoTable/use/useTableOption.check.tsx +80 -80
  85. package/src/packages/components/AutoTable/use/useTableOption.column.popper.tsx +491 -491
  86. package/src/packages/components/AutoTable/use/useTableOption.confirm.tsx +122 -122
  87. package/src/packages/components/AutoTable/use/useTableOption.fill.tsx +153 -153
  88. package/src/packages/components/AutoTable/use/useTableOption.hooks.tsx +142 -142
  89. package/src/packages/components/AutoTable/use/useTableOption.loading.tsx +77 -77
  90. package/src/packages/components/AutoTable/use/useTableOption.methods.tsx +515 -515
  91. package/src/packages/components/AutoTable/use/useTableOption.pagination.tsx +191 -191
  92. package/src/packages/components/AutoTable/use/useTableOption.parent.tsx +134 -134
  93. package/src/packages/components/AutoTable/use/useTableOption.permission.tsx +16 -16
  94. package/src/packages/components/AutoTable/use/useTableOption.render.tsx +34 -34
  95. package/src/packages/components/AutoTable/use/useTableOption.sort.ts +198 -198
  96. package/src/packages/components/AutoTable/use/useTableOption.state.tsx +31 -31
  97. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +87 -87
  98. package/src/packages/components/AutoTable/use/useTableOption.tips.tsx +87 -87
  99. package/src/packages/components/AutoTable/use/useTableOptionKeyboard.tsx +111 -111
  100. package/src/packages/components/AutoTable/utils/AutoModule.ts +10 -10
  101. package/src/packages/components/AutoTable/utils/AutoTable.utils.ts +120 -120
  102. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +203 -203
  103. package/src/packages/components/AutoTable/utils/TableOption.url.ts +153 -153
  104. package/src/packages/components/AutoTable/utils/TableOption.utils.tsx +57 -57
  105. package/src/packages/components/AutoTable/utils/buildPlainDefaultUrlConfig.ts +134 -134
  106. package/src/packages/components/AutoWidthInput/auto-width-input.scss +25 -25
  107. package/src/packages/components/AutoWidthInput/index.tsx +67 -67
  108. package/src/packages/components/Badge/badge.scss +71 -71
  109. package/src/packages/components/Badge/index.tsx +52 -52
  110. package/src/packages/components/Box/box.scss +6 -6
  111. package/src/packages/components/Box/index.tsx +2 -1
  112. package/src/packages/components/Button/button.scss +203 -203
  113. package/src/packages/components/Button/index.tsx +213 -213
  114. package/src/packages/components/ButtonGroup/button-group.scss +73 -73
  115. package/src/packages/components/ButtonGroup/index.tsx +43 -43
  116. package/src/packages/components/Card/card.scss +122 -122
  117. package/src/packages/components/Card/index.tsx +74 -74
  118. package/src/packages/components/Carousel/carousel.scss +391 -391
  119. package/src/packages/components/Carousel/index.tsx +591 -591
  120. package/src/packages/components/CarouselItem/index.tsx +77 -77
  121. package/src/packages/components/Cascade/CascadeKeys.tsx +158 -158
  122. package/src/packages/components/Cascade/cascade.scss +111 -111
  123. package/src/packages/components/Cascade/cascade.utils.ts +68 -68
  124. package/src/packages/components/Cascade/createCascadeHooks.ts +12 -12
  125. package/src/packages/components/Cascade/createCascadePopper.tsx +120 -120
  126. package/src/packages/components/Cascade/createCascadeUtils.ts +15 -15
  127. package/src/packages/components/Cascade/createMultipleCascadeRender.tsx +156 -156
  128. package/src/packages/components/Cascade/createSingleCascadeRender.tsx +175 -175
  129. package/src/packages/components/Cascade/index.tsx +106 -106
  130. package/src/packages/components/CascadeKeys/index.tsx +5 -5
  131. package/src/packages/components/CascadePanel/cascade-panel.utils.ts +90 -90
  132. package/src/packages/components/CascadePanel/flat/CascadeFlatPanelNode.tsx +56 -56
  133. package/src/packages/components/CascadePanel/flat/cascade-flat-panel.scss +133 -133
  134. package/src/packages/components/CascadePanel/flat/createCascadeFlatRender.tsx +87 -87
  135. package/src/packages/components/CascadePanel/index.tsx +208 -208
  136. package/src/packages/components/CascadePanel/list/CascadeListPanelItem.tsx +93 -93
  137. package/src/packages/components/CascadePanel/list/CascadeListPanelNode.tsx +69 -69
  138. package/src/packages/components/CascadePanel/list/createCascadeListRender.tsx +31 -31
  139. package/src/packages/components/Checkbox/checkbox.scss +77 -77
  140. package/src/packages/components/Checkbox/index.tsx +141 -141
  141. package/src/packages/components/CheckboxGroup/index.tsx +205 -205
  142. package/src/packages/components/CheckboxInner/checkbox-inner.scss +55 -55
  143. package/src/packages/components/CheckboxInner/index.tsx +34 -34
  144. package/src/packages/components/ClientZoom/index.ts +5 -5
  145. package/src/packages/components/Collapse/collapse.scss +44 -44
  146. package/src/packages/components/Collapse/index.tsx +94 -94
  147. package/src/packages/components/CollapseGroup/index.tsx +70 -70
  148. package/src/packages/components/CollapseTransition/index.tsx +184 -184
  149. package/src/packages/components/ColorPicker/color-picker.scss +64 -64
  150. package/src/packages/components/ColorPicker/sub/ColorAlphaSlider.tsx +43 -43
  151. package/src/packages/components/ColorPicker/sub/ColorHueSlider.tsx +17 -17
  152. package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +163 -163
  153. package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +125 -125
  154. package/src/packages/components/ColorPicker/sub/color-alpha-slider.scss +8 -8
  155. package/src/packages/components/ColorPicker/sub/color-hue-slider.scss +3 -3
  156. package/src/packages/components/ColorPicker/sub/color-slider.scss +22 -22
  157. package/src/packages/components/ColorPicker/sub/color-sv-panel.scss +55 -55
  158. package/src/packages/components/ColorPicker/useColorPanelEditor.tsx +119 -119
  159. package/src/packages/components/ColorPicker/useColorPanelHistory.tsx +51 -51
  160. package/src/packages/components/ColorPicker/utils/PlainColor.ts +70 -70
  161. package/src/packages/components/ColorPicker/utils/color-picker.utils.tsx +27 -27
  162. package/src/packages/components/ConfirmPopup/confirm-popup.scss +16 -16
  163. package/src/packages/components/ConfirmPopup/index.tsx +72 -72
  164. package/src/packages/components/Corner/corner.scss +14 -14
  165. package/src/packages/components/Corner/index.tsx +80 -80
  166. package/src/packages/components/DatePicker/createDateRender.multiple.tsx +189 -189
  167. package/src/packages/components/DatePicker/createDateRender.single.tsx +169 -169
  168. package/src/packages/components/DatePicker/createRangeDateRender.range.tsx +114 -114
  169. package/src/packages/components/DatePicker/createRangeDateRender.separate.tsx +120 -120
  170. package/src/packages/components/DatePicker/date.mixin.scss +73 -73
  171. package/src/packages/components/DatePicker/date.scss +542 -542
  172. package/src/packages/components/DatePicker/date.utils.tsx +398 -398
  173. package/src/packages/components/DatePicker/index.tsx +84 -84
  174. package/src/packages/components/DatePicker/panel/DatePanel.tsx +99 -99
  175. package/src/packages/components/DatePicker/panel/DatePanelDate.tsx +278 -278
  176. package/src/packages/components/DatePicker/panel/DatePanelMonth.tsx +190 -190
  177. package/src/packages/components/DatePicker/panel/DatePanelQuarter.tsx +50 -50
  178. package/src/packages/components/DatePicker/panel/DatePanelRange.tsx +146 -146
  179. package/src/packages/components/DatePicker/panel/DatePanelWeek.tsx +52 -52
  180. package/src/packages/components/DatePicker/panel/DatePanelYear.tsx +100 -100
  181. package/src/packages/components/DatePicker/panel/useDatePanel.tsx +618 -618
  182. package/src/packages/components/DatePicker/panel/useDateWeek.tsx +153 -153
  183. package/src/packages/components/DatePicker/useRangeDateRender.tsx +318 -318
  184. package/src/packages/components/Dialog/dialog.scss +261 -261
  185. package/src/packages/components/Dialog/index.tsx +439 -439
  186. package/src/packages/components/Dialog/useDialogMovable.tsx +72 -72
  187. package/src/packages/components/Dialog/utils/dialog.mouse.ts +16 -16
  188. package/src/packages/components/Dialog/utils/dialog.utils.ts +10 -10
  189. package/src/packages/components/Dropdown/dropdown.public.scss +94 -94
  190. package/src/packages/components/Dropdown/dropdown.scss +13 -13
  191. package/src/packages/components/Dropdown/dropdown.utils.tsx +108 -108
  192. package/src/packages/components/Dropdown/index.tsx +174 -174
  193. package/src/packages/components/DropdownGroup/index.tsx +18 -18
  194. package/src/packages/components/DropdownOption/index.tsx +74 -74
  195. package/src/packages/components/DropdownSeparator/index.tsx +8 -8
  196. package/src/packages/components/Empty/empty.scss +14 -14
  197. package/src/packages/components/Empty/index.tsx +48 -48
  198. package/src/packages/components/FilterFormMultiple/filter-form-multiple.scss +36 -36
  199. package/src/packages/components/FilterFormMultiple/index.tsx +288 -288
  200. package/src/packages/components/FilterFormSingle/index.tsx +178 -178
  201. package/src/packages/components/FilterService/filter/filter.city.tsx +85 -85
  202. package/src/packages/components/FilterService/filter/filter.date.tsx +85 -85
  203. package/src/packages/components/FilterService/filter/filter.datetime.tsx +68 -68
  204. package/src/packages/components/FilterService/filter/filter.district.tsx +86 -86
  205. package/src/packages/components/FilterService/filter/filter.number.tsx +66 -66
  206. package/src/packages/components/FilterService/filter/filter.province.tsx +91 -91
  207. package/src/packages/components/FilterService/filter/filter.select.tsx +67 -67
  208. package/src/packages/components/FilterService/filter/filter.text.tsx +57 -57
  209. package/src/packages/components/FilterService/filter/fitler.object.tsx +115 -115
  210. package/src/packages/components/FilterService/index.tsx +250 -250
  211. package/src/packages/components/FilterService/utils/filter.service.utils.ts +138 -138
  212. package/src/packages/components/FilterService/utils/mergeQueryParam.ts +80 -80
  213. package/src/packages/components/Form/form.scss +256 -256
  214. package/src/packages/components/Form/index.tsx +74 -74
  215. package/src/packages/components/Form/layout/useFormLayout.tsx +332 -332
  216. package/src/packages/components/Form/types/any.tsx +54 -54
  217. package/src/packages/components/Form/types/array.tsx +55 -55
  218. package/src/packages/components/Form/types/arrayjson.tsx +15 -15
  219. package/src/packages/components/Form/types/arraystring.tsx +15 -15
  220. package/src/packages/components/Form/types/date.tsx +72 -72
  221. package/src/packages/components/Form/types/datetime.tsx +8 -8
  222. package/src/packages/components/Form/types/email.tsx +11 -11
  223. package/src/packages/components/Form/types/idcard.tsx +13 -13
  224. package/src/packages/components/Form/types/number.tsx +59 -59
  225. package/src/packages/components/Form/types/phone.tsx +11 -11
  226. package/src/packages/components/Form/types/qq.tsx +11 -11
  227. package/src/packages/components/Form/types/string.tsx +68 -68
  228. package/src/packages/components/Form/types/time.tsx +8 -8
  229. package/src/packages/components/Form/validate/createValidation.tsx +278 -278
  230. package/src/packages/components/Form/validate/useFormItemValidation.tsx +122 -122
  231. package/src/packages/components/Form/validate/useFormValidation.tsx +137 -137
  232. package/src/packages/components/Form/validate/validate.utils.tsx +439 -439
  233. package/src/packages/components/FormCascade/index.tsx +6 -6
  234. package/src/packages/components/FormCheckbox/index.tsx +6 -6
  235. package/src/packages/components/FormCheckboxGroup/index.tsx +6 -6
  236. package/src/packages/components/FormColorPicker/index.tsx +6 -6
  237. package/src/packages/components/FormDatePicker/index.tsx +6 -6
  238. package/src/packages/components/FormInput/index.tsx +6 -6
  239. package/src/packages/components/FormInputNumber/index.tsx +6 -6
  240. package/src/packages/components/FormItem/FormItemValidateMessage.tsx +16 -16
  241. package/src/packages/components/FormItem/createFormEditor.tsx +87 -87
  242. package/src/packages/components/FormItem/index.tsx +134 -134
  243. package/src/packages/components/FormRadio/index.tsx +6 -6
  244. package/src/packages/components/FormRadioGroup/index.tsx +6 -6
  245. package/src/packages/components/FormRate/index.tsx +6 -6
  246. package/src/packages/components/FormSelect/index.tsx +6 -6
  247. package/src/packages/components/FormSlider/index.tsx +6 -6
  248. package/src/packages/components/FormTimePicker/index.tsx +6 -6
  249. package/src/packages/components/FormToggle/index.tsx +6 -6
  250. package/src/packages/components/Formatter/index.tsx +64 -64
  251. package/src/packages/components/Grid/GridCol.tsx +73 -73
  252. package/src/packages/components/Grid/GridRow.tsx +91 -91
  253. package/src/packages/components/Grid/grid.scss +109 -109
  254. package/src/packages/components/Grid/grid.utils.ts +21 -21
  255. package/src/packages/components/GridCol/index.tsx +5 -5
  256. package/src/packages/components/GridRow/index.tsx +5 -5
  257. package/src/packages/components/Icon/icon.registry.tsx +21 -21
  258. package/src/packages/components/Icon/icon.scss +12 -12
  259. package/src/packages/components/IconPicker/DefaultIcons.ts +7 -0
  260. package/src/packages/components/IconPicker/icon-picker.scss +43 -0
  261. package/src/packages/components/IconPicker/index.tsx +189 -0
  262. package/src/packages/components/Illustration/index.tsx +28 -28
  263. package/src/packages/components/Image/image.scss +334 -334
  264. package/src/packages/components/Image/index.tsx +168 -168
  265. package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +574 -574
  266. package/src/packages/components/ImagePreviewer/ImagePreviewerButtonBar.tsx +140 -140
  267. package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +54 -54
  268. package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +202 -202
  269. package/src/packages/components/ImagePreviewer/PreviewerLoading.tsx +26 -26
  270. package/src/packages/components/ImagePreviewer/image-previewer.scss +244 -244
  271. package/src/packages/components/ImagePreviewer/image-previewer.utils.tsx +136 -136
  272. package/src/packages/components/ImagePreviewer/index.tsx +5 -5
  273. package/src/packages/components/ImagePreviewer/previewer-loading.scss +52 -52
  274. package/src/packages/components/ImageUploader/index.tsx +242 -242
  275. package/src/packages/components/Input/index.scss +446 -446
  276. package/src/packages/components/Input/index.tsx +153 -153
  277. package/src/packages/components/Input/input.utils.ts +119 -119
  278. package/src/packages/components/Input/useMultipleInput.tsx +126 -126
  279. package/src/packages/components/Input/useSingleInput.tsx +45 -45
  280. package/src/packages/components/Input/useSuggestionInput.tsx +218 -218
  281. package/src/packages/components/Input/useTextareaInput.tsx +155 -155
  282. package/src/packages/components/Input/uses/useInputEnterHandler.tsx +83 -83
  283. package/src/packages/components/Input/uses/useInputHooks.tsx +21 -21
  284. package/src/packages/components/Input/uses/useInputMaxLength.tsx +35 -35
  285. package/src/packages/components/Input/uses/useInputSuffixIcon.tsx +67 -67
  286. package/src/packages/components/InputGroup/index.tsx +31 -31
  287. package/src/packages/components/InputGroup/input-group.scss +46 -46
  288. package/src/packages/components/InputNumber/NumberResize.tsx +111 -111
  289. package/src/packages/components/InputNumber/index.tsx +36 -36
  290. package/src/packages/components/InputNumber/input-number.utils.tsx +96 -96
  291. package/src/packages/components/InputNumber/number.scss +95 -95
  292. package/src/packages/components/InputNumber/number.utils.ts +3 -3
  293. package/src/packages/components/InputNumber/useInputNumber.multiple.tsx +121 -121
  294. package/src/packages/components/InputNumber/useInputNumber.public.tsx +478 -478
  295. package/src/packages/components/InputNumber/useInputNumber.single.tsx +137 -137
  296. package/src/packages/components/KeepAlive/KeepAliveCacheItemWrapper.tsx +114 -114
  297. package/src/packages/components/KeepAlive/index.tsx +77 -77
  298. package/src/packages/components/KeepAlive/utils/keepalive.utils.ts +33 -33
  299. package/src/packages/components/Layout/index.tsx +38 -38
  300. package/src/packages/components/Layout/layout.scss +247 -247
  301. package/src/packages/components/Layout/layout.utils.ts +3 -3
  302. package/src/packages/components/LayoutSection/index.tsx +76 -76
  303. package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -184
  304. package/src/packages/components/List/index.tsx +74 -74
  305. package/src/packages/components/List/list.scss +3 -3
  306. package/src/packages/components/ListOption/index.tsx +20 -20
  307. package/src/packages/components/ListPanel/index.tsx +30 -30
  308. package/src/packages/components/ListPanel/list-panel.scss +20 -20
  309. package/src/packages/components/Loading/index.tsx +27 -27
  310. package/src/packages/components/Loading/loading.scss +7 -7
  311. package/src/packages/components/LoadingMask/index.tsx +101 -101
  312. package/src/packages/components/LoadingMask/loading-mask.scss +34 -34
  313. package/src/packages/components/NumberRange/index.tsx +93 -93
  314. package/src/packages/components/Object/createObjectHooks.tsx +13 -13
  315. package/src/packages/components/Object/createObjectRender.multiple.tsx +289 -289
  316. package/src/packages/components/Object/createObjectRender.single.tsx +219 -219
  317. package/src/packages/components/Object/index.tsx +104 -104
  318. package/src/packages/components/Object/object.scss +24 -24
  319. package/src/packages/components/Object/object.utils.ts +56 -56
  320. package/src/packages/components/OuterOperation/index.tsx +5 -5
  321. package/src/packages/components/Ov/index.tsx +23 -23
  322. package/src/packages/components/Ov/ov.utils.ts +9 -9
  323. package/src/packages/components/Ov/usePublicOv.tsx +35 -35
  324. package/src/packages/components/PageCard/index.tsx +48 -48
  325. package/src/packages/components/PageCard/page-card.scss +124 -124
  326. package/src/packages/components/PageCardContent/index.tsx +44 -44
  327. package/src/packages/components/PageCardTitle/index.tsx +51 -51
  328. package/src/packages/components/PageRenderList/index.tsx +22 -22
  329. package/src/packages/components/PageThemeUtils/deepmerge.ts +21 -21
  330. package/src/packages/components/PageThemeUtils/index.tsx +262 -262
  331. package/src/packages/components/Pagination/index.tsx +339 -339
  332. package/src/packages/components/Pagination/pagination.scss +126 -126
  333. package/src/packages/components/Paragraph/index.tsx +46 -46
  334. package/src/packages/components/Paragraph/paragraph.scss +12 -12
  335. package/src/packages/components/ParagraphItem/index.tsx +21 -21
  336. package/src/packages/components/Plc/index.tsx +4 -4
  337. package/src/packages/components/PlcAddress/index.tsx +4 -4
  338. package/src/packages/components/PlcAddressItem/index.tsx +4 -4
  339. package/src/packages/components/PlcCheck/index.tsx +5 -5
  340. package/src/packages/components/PlcCheckbox/index.tsx +4 -4
  341. package/src/packages/components/PlcColorPicker/index.tsx +4 -4
  342. package/src/packages/components/PlcDate/index.tsx +4 -4
  343. package/src/packages/components/PlcDateRange/index.tsx +4 -4
  344. package/src/packages/components/PlcDraggier/index.tsx +5 -5
  345. package/src/packages/components/PlcExpand/index.tsx +5 -5
  346. package/src/packages/components/PlcGroup/index.tsx +4 -4
  347. package/src/packages/components/PlcImage/index.tsx +86 -86
  348. package/src/packages/components/PlcIndex/index.tsx +5 -5
  349. package/src/packages/components/PlcInput/index.tsx +4 -4
  350. package/src/packages/components/PlcNumber/index.tsx +4 -4
  351. package/src/packages/components/PlcObject/index.tsx +53 -53
  352. package/src/packages/components/PlcOperation/index.tsx +5 -5
  353. package/src/packages/components/PlcOv/index.tsx +31 -31
  354. package/src/packages/components/PlcRate/index.tsx +4 -4
  355. package/src/packages/components/PlcSelect/index.tsx +4 -4
  356. package/src/packages/components/PlcTextarea/index.tsx +4 -4
  357. package/src/packages/components/PlcTime/index.tsx +4 -4
  358. package/src/packages/components/PlcTimeRange/index.tsx +4 -4
  359. package/src/packages/components/PlcToggle/index.tsx +4 -4
  360. package/src/packages/components/PlcTree/index.tsx +5 -5
  361. package/src/packages/components/Popup/PopupProvider.tsx +20 -20
  362. package/src/packages/components/Popup/index.tsx +403 -403
  363. package/src/packages/components/Popup/popup.scss +13 -13
  364. package/src/packages/components/ProgressBar/index.tsx +87 -87
  365. package/src/packages/components/ProgressBar/progress-bar.scss +40 -40
  366. package/src/packages/components/ProgressBar/progress.utils.ts +24 -24
  367. package/src/packages/components/ProgressCircle/index.tsx +188 -188
  368. package/src/packages/components/ProgressCircle/progress-circle.scss +44 -44
  369. package/src/packages/components/ProgressMini/index.tsx +98 -98
  370. package/src/packages/components/ProgressMini/progress-mini.scss +17 -17
  371. package/src/packages/components/Radio/index.tsx +137 -137
  372. package/src/packages/components/Radio/radio.scss +79 -79
  373. package/src/packages/components/RadioGroup/index.tsx +62 -62
  374. package/src/packages/components/RadioInner/index.tsx +31 -31
  375. package/src/packages/components/RadioInner/radio-inner.scss +17 -17
  376. package/src/packages/components/Rate/index.tsx +152 -152
  377. package/src/packages/components/Rate/rate.scss +32 -32
  378. package/src/packages/components/Reference/ReferenceProvider.tsx +13 -13
  379. package/src/packages/components/Reference/index.tsx +57 -57
  380. package/src/packages/components/RollingNumber/index.tsx +66 -66
  381. package/src/packages/components/Scroll/HorizontalScrollbar.tsx +96 -96
  382. package/src/packages/components/Scroll/VerticalScrollbar.tsx +102 -102
  383. package/src/packages/components/Scroll/index.tsx +419 -419
  384. package/src/packages/components/Scroll/scroll.scss +168 -168
  385. package/src/packages/components/Scroll/useAutoScroll.ts +68 -68
  386. package/src/packages/components/Segment/index.tsx +39 -39
  387. package/src/packages/components/Segment/segment.scss +46 -46
  388. package/src/packages/components/SegmentGroup/index.tsx +48 -48
  389. package/src/packages/components/Select/SelectPanel.tsx +78 -78
  390. package/src/packages/components/Select/createMultipleSelectRender.tsx +248 -248
  391. package/src/packages/components/Select/createPublicSelectRender.tsx +411 -411
  392. package/src/packages/components/Select/createSelectOptionDecoder.tsx +43 -43
  393. package/src/packages/components/Select/createSingleSelectRender.tsx +133 -133
  394. package/src/packages/components/Select/decodeSelectRenderNode.tsx +52 -52
  395. package/src/packages/components/Select/index.tsx +97 -97
  396. package/src/packages/components/Select/select.scss +101 -101
  397. package/src/packages/components/Select/select.utils.tsx +248 -248
  398. package/src/packages/components/SelectDisplay/index.tsx +30 -30
  399. package/src/packages/components/SelectGroup/index.tsx +37 -37
  400. package/src/packages/components/SelectOption/index.tsx +72 -72
  401. package/src/packages/components/Slider/index.tsx +123 -123
  402. package/src/packages/components/Slider/slider.scss +128 -128
  403. package/src/packages/components/Slider/slider.utils.tsx +71 -71
  404. package/src/packages/components/Slider/useSlider.range.tsx +211 -211
  405. package/src/packages/components/Slider/useSlider.single.tsx +148 -148
  406. package/src/packages/components/Slider/useSliderDotDragier.tsx +66 -66
  407. package/src/packages/components/SortList/index.tsx +191 -191
  408. package/src/packages/components/SortList/sort-list.scss +11 -11
  409. package/src/packages/components/Space/index.tsx +36 -36
  410. package/src/packages/components/Space/space.scss +39 -39
  411. package/src/packages/components/StackCard/index.tsx +416 -416
  412. package/src/packages/components/StackCard/stack-card.scss +40 -40
  413. package/src/packages/components/StackCardItem/index.tsx +24 -24
  414. package/src/packages/components/Step/index.tsx +120 -120
  415. package/src/packages/components/StepGroup/index.tsx +63 -63
  416. package/src/packages/components/StepGroup/step-group.scss +411 -411
  417. package/src/packages/components/StepGroup/step.utils.ts +44 -44
  418. package/src/packages/components/Tab/index.tsx +42 -42
  419. package/src/packages/components/TabGroup/TabsHeader.tsx +105 -105
  420. package/src/packages/components/TabGroup/TabsInner.tsx +60 -60
  421. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontal.tsx +94 -94
  422. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalCard.tsx +15 -15
  423. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalShadow.tsx +15 -15
  424. package/src/packages/components/TabGroup/header/horizontal/TabsHeaderHorizontalText.tsx +66 -66
  425. package/src/packages/components/TabGroup/header/horizontal/tabs-header-card.scss +85 -85
  426. package/src/packages/components/TabGroup/header/horizontal/tabs-header-horizontal.scss +59 -59
  427. package/src/packages/components/TabGroup/header/horizontal/tabs-header-shadow.scss +88 -88
  428. package/src/packages/components/TabGroup/header/horizontal/tabs-header-text.scss +50 -50
  429. package/src/packages/components/TabGroup/header/vertical/TabsHeaderVertical.tsx +24 -24
  430. package/src/packages/components/TabGroup/header/vertical/tabs-header-vertical.scss +116 -116
  431. package/src/packages/components/TabGroup/index.tsx +131 -131
  432. package/src/packages/components/TabGroup/tabs.scss +62 -62
  433. package/src/packages/components/TabGroup/tabs.utils.tsx +22 -22
  434. package/src/packages/components/Table/editor/PlcAddress.tsx +91 -91
  435. package/src/packages/components/Table/editor/PlcAddressItem.tsx +60 -60
  436. package/src/packages/components/Table/editor/PlcCheckbox.tsx +36 -36
  437. package/src/packages/components/Table/editor/PlcColorPicker.tsx +29 -29
  438. package/src/packages/components/Table/editor/PlcDate.tsx +97 -97
  439. package/src/packages/components/Table/editor/PlcDate.utils.tsx +45 -45
  440. package/src/packages/components/Table/editor/PlcDateRange.tsx +73 -73
  441. package/src/packages/components/Table/editor/PlcInput.tsx +21 -21
  442. package/src/packages/components/Table/editor/PlcNumber.tsx +23 -23
  443. package/src/packages/components/Table/editor/PlcRate.tsx +24 -24
  444. package/src/packages/components/Table/editor/PlcSelect.tsx +181 -181
  445. package/src/packages/components/Table/editor/PlcTextarea.tsx +22 -22
  446. package/src/packages/components/Table/editor/PlcTime.tsx +54 -54
  447. package/src/packages/components/Table/editor/PlcTime.utils.ts +15 -15
  448. package/src/packages/components/Table/editor/PlcTimeRange.tsx +66 -66
  449. package/src/packages/components/Table/editor/PlcToggle.tsx +40 -40
  450. package/src/packages/components/Table/index.tsx +4 -4
  451. package/src/packages/components/Table/plc/formatPlcList.tsx +92 -92
  452. package/src/packages/components/Table/plc/group/PlcGroup.tsx +20 -20
  453. package/src/packages/components/Table/plc/plc/Plc.tsx +19 -19
  454. package/src/packages/components/Table/plc/process/copyPlcList.ts +23 -23
  455. package/src/packages/components/Table/plc/process/getPltCellClass.ts +8 -8
  456. package/src/packages/components/Table/plc/process/processAutoFixed.ts +73 -73
  457. package/src/packages/components/Table/plc/process/processHeadPlcList.ts +110 -110
  458. package/src/packages/components/Table/plc/process/processPlcClassAndStyle.ts +43 -43
  459. package/src/packages/components/Table/plc/process/processPlcFixed.ts +81 -81
  460. package/src/packages/components/Table/plc/process/processPlcSort.ts +91 -91
  461. package/src/packages/components/Table/plc/use/useBasePlc.tsx +85 -85
  462. package/src/packages/components/Table/plc/use/useBasePlcGroup.tsx +70 -70
  463. package/src/packages/components/Table/plc/use/usePlc.tsx +136 -136
  464. package/src/packages/components/Table/plc/use/usePlcPropsState.tsx +112 -112
  465. package/src/packages/components/Table/plc/use/useTableAutoSpan.tsx +112 -112
  466. package/src/packages/components/Table/plc/useTablePlc.tsx +229 -229
  467. package/src/packages/components/Table/plc/utils/iteratePlcList.tsx +48 -48
  468. package/src/packages/components/Table/plc/utils/plc.render.ts +122 -122
  469. package/src/packages/components/Table/plc/utils/plc.scope-slots.ts +63 -63
  470. package/src/packages/components/Table/plc/utils/plc.utils.ts +302 -302
  471. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.hooks.tsx +16 -16
  472. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.multiple.tsx +280 -280
  473. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.single.tsx +89 -89
  474. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.tsx +61 -61
  475. package/src/packages/components/Table/standard/PlcCheck/PlcCheck.utils.ts +35 -35
  476. package/src/packages/components/Table/standard/PlcDraggier/PlcDraggier.tsx +55 -55
  477. package/src/packages/components/Table/standard/PlcExclusion.tsx +26 -26
  478. package/src/packages/components/Table/standard/PlcExpand.tsx +204 -204
  479. package/src/packages/components/Table/standard/PlcIndex.tsx +34 -34
  480. package/src/packages/components/Table/standard/PlcOperation/OuterOperation.tsx +210 -210
  481. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.tsx +391 -391
  482. package/src/packages/components/Table/standard/PlcOperation/PlcOperation.utils.tsx +159 -159
  483. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +39 -39
  484. package/src/packages/components/Table/standard/PlcOperation/useOperationPermission.ts +53 -53
  485. package/src/packages/components/Table/standard/PlcTree/PlcTree.autoWidth.tsx +52 -52
  486. package/src/packages/components/Table/standard/PlcTree/PlcTree.renderNode.tsx +81 -81
  487. package/src/packages/components/Table/standard/PlcTree/PlcTree.tsx +194 -194
  488. package/src/packages/components/Table/standard/PlcTree/PlcTree.utils.ts +59 -59
  489. package/src/packages/components/Table/standard/PlcTree/PlcTreeHeader.tsx +64 -64
  490. package/src/packages/components/Table/standard/PlcTree/RenderPlcTreeNode.tsx +114 -114
  491. package/src/packages/components/Table/table/Table.tsx +382 -382
  492. package/src/packages/components/Table/table/body/cell.tsx +310 -310
  493. package/src/packages/components/Table/table/body/row.tsx +47 -47
  494. package/src/packages/components/Table/table/body/useCellValue.tsx +145 -145
  495. package/src/packages/components/Table/table/head/head-cell.tsx +100 -100
  496. package/src/packages/components/Table/table/head/useHeadCellResize.ts +79 -79
  497. package/src/packages/components/Table/table/node/useTableNode.tsx +66 -66
  498. package/src/packages/components/Table/table/table.scss +438 -438
  499. package/src/packages/components/Table/table/use/useFixedShadow.ts +48 -48
  500. package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +639 -639
  501. package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +279 -279
  502. package/src/packages/components/Table/table/use/useTableDraggier.tsx +237 -237
  503. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +190 -190
  504. package/src/packages/components/Table/table/use/useTableLoading.tsx +39 -39
  505. package/src/packages/components/Table/table/use/useTableMethods.tsx +65 -65
  506. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +204 -204
  507. package/src/packages/components/Table/table/use/useTableScroll.tsx +49 -49
  508. package/src/packages/components/Table/table/utils/createTableHooks.ts +70 -70
  509. package/src/packages/components/Table/table/utils/table.utils.ts +286 -286
  510. package/src/packages/components/Table/table/utils/url.utils.ts +23 -23
  511. package/src/packages/components/TableOptionSpace/index.ts +5 -5
  512. package/src/packages/components/TableOptionUtils/index.ts +5 -5
  513. package/src/packages/components/Tag/tag.utils.ts +20 -20
  514. package/src/packages/components/ThemeColor/index.tsx +22 -22
  515. package/src/packages/components/ThemeColor/theme-color.scss +36 -36
  516. package/src/packages/components/ThemeColorSelector/index.tsx +53 -53
  517. package/src/packages/components/ThemeDarkSelector/index.tsx +37 -37
  518. package/src/packages/components/ThemeEditor/index.tsx +199 -199
  519. package/src/packages/components/ThemeEditor/theme-editor.scss +106 -106
  520. package/src/packages/components/ThemeLocaleSelector/index.tsx +41 -41
  521. package/src/packages/components/ThemePrimaryColors/index.ts +5 -5
  522. package/src/packages/components/ThemeShapeSelector/index.tsx +55 -55
  523. package/src/packages/components/ThemeSizeSelector/index.tsx +50 -50
  524. package/src/packages/components/TimePicker/createRangeTimeRender.tsx +80 -80
  525. package/src/packages/components/TimePicker/createSeparateRangeTimeRender.tsx +104 -104
  526. package/src/packages/components/TimePicker/createSingleTimeRender.tsx +202 -202
  527. package/src/packages/components/TimePicker/index.tsx +65 -65
  528. package/src/packages/components/TimePicker/panel/TimeBaseColumn.tsx +136 -136
  529. package/src/packages/components/TimePicker/panel/TimeBasePanel.tsx +172 -172
  530. package/src/packages/components/TimePicker/panel/TimePanel.tsx +94 -94
  531. package/src/packages/components/TimePicker/panel/TimeRangePanel.tsx +141 -141
  532. package/src/packages/components/TimePicker/panel/time-base-column.scss +51 -51
  533. package/src/packages/components/TimePicker/panel/time-base-panel.scss +39 -39
  534. package/src/packages/components/TimePicker/panel/time-panel.utils.ts +16 -16
  535. package/src/packages/components/TimePicker/panel/time-range-panel.scss +9 -9
  536. package/src/packages/components/TimePicker/time.scss +10 -10
  537. package/src/packages/components/TimePicker/time.utils.ts +100 -100
  538. package/src/packages/components/TimePicker/useRangeTimeRender.tsx +236 -236
  539. package/src/packages/components/TimePicker/useTimeHooks.ts +11 -11
  540. package/src/packages/components/Toggle/index.tsx +116 -116
  541. package/src/packages/components/Toggle/toggle.scss +151 -151
  542. package/src/packages/components/Tooltip/index.tsx +118 -118
  543. package/src/packages/components/Tooltip/tooltip.scss +5 -5
  544. package/src/packages/components/Transition/index.tsx +134 -134
  545. package/src/packages/components/Tree/RenderTreeNode.tsx +178 -178
  546. package/src/packages/components/Tree/index.tsx +130 -130
  547. package/src/packages/components/Tree/tree.scss +259 -259
  548. package/src/packages/components/TreeCore/TreeCore.type.tsx +140 -140
  549. package/src/packages/components/TreeCore/createTreeCore.tsx +364 -364
  550. package/src/packages/components/TreeCore/createTreeDraggier.tsx +412 -412
  551. package/src/packages/components/TreeCore/createTreeHooks.ts +16 -16
  552. package/src/packages/components/TreeCore/createTreeMethods.tsx +421 -421
  553. package/src/packages/components/TreeCore/createTreeNode.tsx +244 -244
  554. package/src/packages/components/TreeCore/createTreeProps.ts +76 -76
  555. package/src/packages/components/TreeCore/createTreeUtils.ts +140 -140
  556. package/src/packages/components/TreeCore/fromatNodeData.ts +65 -65
  557. package/src/packages/components/TreeNodeWithMenu/index.tsx +95 -95
  558. package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +39 -39
  559. package/src/packages/components/TreeNodeWithMenu/treeNodeWithMenu.utils.ts +12 -12
  560. package/src/packages/components/Triangle/index.tsx +88 -88
  561. package/src/packages/components/Triangle/triangle.scss +12 -12
  562. package/src/packages/components/Upload/index.tsx +422 -422
  563. package/src/packages/components/Upload/upload.scss +185 -185
  564. package/src/packages/components/VirtualList/createVirtualDraggier.ts +375 -375
  565. package/src/packages/components/VirtualList/index.tsx +109 -109
  566. package/src/packages/components/VirtualList/useVirtualList.tsx +440 -440
  567. package/src/packages/components/VirtualList/virtual-list.scss +58 -58
  568. package/src/packages/components/VirtualTable/index.tsx +220 -220
  569. package/src/packages/components/VirtualTable/virtual-table.scss +179 -179
  570. package/src/packages/components/_Object/index.tsx +5 -5
  571. package/src/packages/components/buildPlainDefaultUrlConfig/index.tsx +5 -5
  572. package/src/packages/components/createAddressService/index.ts +5 -5
  573. package/src/packages/components/createAutoScrollManager/index.tsx +41 -41
  574. package/src/packages/components/createHttp/http.utils.ts +56 -56
  575. package/src/packages/components/createHttp/index.tsx +29 -29
  576. package/src/packages/components/createObjectService/index.tsx +5 -5
  577. package/src/packages/components/createOvService/index.tsx +5 -5
  578. package/src/packages/components/createPlainAddressService/index.tsx +107 -107
  579. package/src/packages/components/createPopup/index.ts +5 -5
  580. package/src/packages/components/createRequestInterceptor/index.ts +139 -139
  581. package/src/packages/components/createScrollDraggier/index.ts +341 -341
  582. package/src/packages/components/createScrollUtils/index.tsx +163 -163
  583. package/src/packages/components/createSimpleDate/index.ts +49 -49
  584. package/src/packages/components/createTableOptionUser/index.tsx +5 -5
  585. package/src/packages/components/createTransitionHandler/index.ts +46 -46
  586. package/src/packages/components/createUploadService/index.tsx +5 -5
  587. package/src/packages/components/createVirtualDraggier/index.ts +5 -5
  588. package/src/packages/components/createWebDraggier/index.ts +5 -5
  589. package/src/packages/components/i18n/index.tsx +5 -5
  590. package/src/packages/components/loadFile/index.ts +20 -20
  591. package/src/packages/components/nextPopupId/index.ts +5 -5
  592. package/src/packages/components/useAutoScrollUtils/auto-scroll-utils.scss +48 -48
  593. package/src/packages/components/useAutoScrollUtils/index.tsx +86 -86
  594. package/src/packages/components/useContextmenuOptions/index.tsx +40 -40
  595. package/src/packages/components/useDialog/DialogService.tsx +227 -227
  596. package/src/packages/components/useDialog/dialog-service.scss +50 -50
  597. package/src/packages/components/useDialog/dialog.service.utils.tsx +88 -88
  598. package/src/packages/components/useDialog/index.tsx +66 -66
  599. package/src/packages/components/useImage/ImageService.tsx +285 -285
  600. package/src/packages/components/useImage/index.tsx +28 -28
  601. package/src/packages/components/useLoading/LoadingService.tsx +106 -106
  602. package/src/packages/components/useLoading/index.tsx +31 -31
  603. package/src/packages/components/useLoading/loading.service.scss +25 -25
  604. package/src/packages/components/useLoading/loading.service.utils.tsx +13 -13
  605. package/src/packages/components/useMessage/Message.tsx +77 -77
  606. package/src/packages/components/useMessage/MessageContainer.tsx +64 -64
  607. package/src/packages/components/useMessage/MessageManager.tsx +58 -58
  608. package/src/packages/components/useMessage/index.tsx +51 -51
  609. package/src/packages/components/useMessage/message.scss +149 -149
  610. package/src/packages/components/useMessage/message.service.utils.tsx +43 -43
  611. package/src/packages/components/useNotice/Notice.tsx +93 -93
  612. package/src/packages/components/useNotice/NoticeContainer.tsx +65 -65
  613. package/src/packages/components/useNotice/NoticeManager.tsx +58 -58
  614. package/src/packages/components/useNotice/index.tsx +42 -42
  615. package/src/packages/components/useNotice/noitice.service.utils.tsx +48 -48
  616. package/src/packages/components/useNotice/notice.scss +158 -158
  617. package/src/packages/components/usePageRender/index.tsx +3 -3
  618. package/src/packages/components/usePageRenderContext/index.tsx +8 -8
  619. package/src/packages/components/usePopup/PopupItem.tsx +432 -432
  620. package/src/packages/components/usePopup/index.tsx +1 -1
  621. package/src/packages/components/usePopup/popup-item.scss +252 -252
  622. package/src/packages/components/usePopup/refresh/MaxMinTopLeft.ts +38 -38
  623. package/src/packages/components/usePopup/refresh/applyPosition.ts +61 -61
  624. package/src/packages/components/usePopup/refresh/calcPosition.ts +88 -88
  625. package/src/packages/components/usePopup/refresh/refreshArrow.ts +112 -112
  626. package/src/packages/components/usePopup/refresh/refreshPopup.ts +79 -79
  627. package/src/packages/components/usePopup/trigger/useManagerTrigger.click.tsx +56 -56
  628. package/src/packages/components/usePopup/trigger/useManagerTrigger.clickOutside.tsx +39 -39
  629. package/src/packages/components/usePopup/trigger/useManagerTrigger.contextmenu.tsx +59 -59
  630. package/src/packages/components/usePopup/trigger/useManagerTrigger.focus.tsx +30 -30
  631. package/src/packages/components/usePopup/trigger/useManagerTrigger.hover.tsx +60 -60
  632. package/src/packages/components/usePopup/trigger/usePopupTrigger.tsx +56 -56
  633. package/src/packages/components/usePopup/trigger/useReferenceTrigger.tsx +90 -90
  634. package/src/packages/components/usePopup/usePopup.tsx +73 -73
  635. package/src/packages/components/usePopup/usePopupManager.tsx +325 -325
  636. package/src/packages/components/usePopup/utils/closeAllPopper.ts +5 -5
  637. package/src/packages/components/usePopup/utils/createPopperAttrsGetter.ts +5 -5
  638. package/src/packages/components/usePopup/utils/createPopupManagerHooks.tsx +65 -65
  639. package/src/packages/components/usePopup/utils/decodePlacement.ts +16 -16
  640. package/src/packages/components/usePopup/utils/getAvailableDirection.ts +91 -91
  641. package/src/packages/components/usePopup/utils/getBoundary.ts +25 -25
  642. package/src/packages/components/usePopup/utils/getRects.ts +24 -24
  643. package/src/packages/components/usePopup/utils/handleDirection.ts +10 -10
  644. package/src/packages/components/usePopup/utils/ids2map.ts +11 -11
  645. package/src/packages/components/usePopup/utils/popup.utils.ts +239 -239
  646. package/src/packages/components/usePopup/utils/stopPopup.ts +7 -7
  647. package/src/packages/components/usePopupEditor/index.tsx +113 -113
  648. package/src/packages/components/usePopupEditor/popup-editor.utils.ts +15 -15
  649. package/src/packages/components/usePopupManager/index.ts +5 -5
  650. package/src/packages/components/usePopupTrigger/index.tsx +5 -5
  651. package/src/packages/components/useReferenceTrigger/index.tsx +5 -5
  652. package/src/packages/components/useTableFilter/index.ts +73 -73
  653. package/src/packages/components/useTooltip/index.tsx +188 -188
  654. package/src/packages/components/useWatchAutoClear/index.ts +5 -5
  655. package/src/packages/directives/ClickWave/click-wave.scss +57 -57
  656. package/src/packages/directives/ClickWave/index.tsx +78 -78
  657. package/src/packages/directives/ResizeDetector/index.tsx +107 -107
  658. package/src/packages/entry.tsx +1 -0
  659. package/src/packages/i18n/i18n.utils.ts +272 -272
  660. package/src/packages/i18n/index.ts +5 -5
  661. package/src/packages/i18n/lang/en-us.ts +3 -0
  662. package/src/packages/i18n/lang/zh-cn.ts +3 -0
  663. package/src/packages/index.tsx +5 -5
  664. package/src/packages/styles/application/application.public.scss +15 -15
  665. package/src/packages/styles/application/application.public.transition.scss +90 -90
  666. package/src/packages/styles/global.import.scss +194 -194
  667. package/src/packages/uses/createInputPopperAttrs.ts +67 -60
  668. package/src/packages/uses/useCollapseStyles.tsx +56 -56
  669. package/src/packages/uses/useDragHorizontalScroll.ts +81 -81
  670. package/src/packages/uses/useEdit.ts +116 -116
  671. package/src/packages/uses/useFocusHandler.ts +73 -73
  672. package/src/packages/uses/useFunctionWrapper.ts +31 -31
  673. package/src/packages/uses/useMultipleModel.tsx +65 -65
  674. package/src/packages/uses/useRenderReference.tsx +32 -32
  675. package/src/packages/uses/useStyle.tsx +82 -82
  676. package/src/packages/utils/ClientZoom.ts +50 -50
  677. package/src/packages/utils/ComponentUtils.ts +10 -10
  678. package/src/packages/utils/FixInput.ts +3 -3
  679. package/src/packages/utils/InnerTransition.ts +13 -13
  680. package/src/packages/utils/LoadingText.ts +11 -11
  681. package/src/packages/utils/OpenController.ts +15 -15
  682. package/src/packages/utils/buildCycleIndexList.ts +31 -31
  683. package/src/packages/utils/clearFields.ts +16 -16
  684. package/src/packages/utils/color.utils.ts +189 -189
  685. package/src/packages/utils/combineURL.ts +5 -5
  686. package/src/packages/utils/constant.tsx +5 -5
  687. package/src/packages/utils/createAnimate.ts +45 -45
  688. package/src/packages/utils/createCache.ts +32 -32
  689. package/src/packages/utils/createDraggier.ts +256 -256
  690. package/src/packages/utils/createEffectiveHandler.ts +8 -8
  691. package/src/packages/utils/createError.ts +16 -16
  692. package/src/packages/utils/createFlagManager.ts +34 -34
  693. package/src/packages/utils/createKeyHandler.ts +20 -20
  694. package/src/packages/utils/createListUtils.ts +38 -38
  695. package/src/packages/utils/customDeepClone.ts +15 -15
  696. package/src/packages/utils/deepCloneRenderNode.ts +41 -41
  697. package/src/packages/utils/deepIterateObject.ts +14 -14
  698. package/src/packages/utils/findReactElement.tsx +76 -76
  699. package/src/packages/utils/getDeviceInfo.ts +59 -59
  700. package/src/packages/utils/getElementRect.ts +32 -32
  701. package/src/packages/utils/getRowEl.ts +33 -33
  702. package/src/packages/utils/incrementalMerge.ts +8 -8
  703. package/src/packages/utils/inheritSlots.ts +30 -30
  704. package/src/packages/utils/installAllIcons.ts +2 -1
  705. package/src/packages/utils/installAllLazyIcons.ts +17 -17
  706. package/src/packages/utils/isObjectCommonMatch.ts +21 -21
  707. package/src/packages/utils/isSSR.tsx +3 -3
  708. package/src/packages/utils/onParentElementsScroll.tsx +26 -26
  709. package/src/packages/utils/plainDate.ts +203 -203
  710. package/src/packages/utils/renderInputModeTextRangeValue.tsx +25 -25
  711. package/src/packages/utils/renderNothing.tsx +1 -1
  712. package/src/packages/utils/type.ts +11 -11
  713. package/src/packages/utils/useMove.tsx +78 -78
  714. package/src/packages/utils/watchEffectAutoClear.ts +28 -28
@@ -1,411 +1,411 @@
1
- import {reactive, RenderNode, useRefs} from "@peryl/react-compose";
2
- import {createSelectHover, iSelectCompositionParams, iSelectOptionProps, SelectDefaultVirtualRowSize, SelectUtils} from "./select.utils";
3
- import {decodeSelectRenderNode} from './decodeSelectRenderNode';
4
- import {Input} from "../Input";
5
- import {Scroll} from "../Scroll";
6
- import {SelectPanel} from "./SelectPanel";
7
- import {unit} from "@peryl/utils/unit";
8
- import {SelectOption} from "../SelectOption";
9
- import {VirtualList} from "../VirtualList";
10
- import {delay} from "@peryl/utils/delay";
11
- import {handleKeyboard} from "@peryl/utils/keyboard";
12
- import {useRenderReference} from "../../uses/useRenderReference";
13
- import {iEffects} from "@peryl/utils/createEffects";
14
- import {createPopupEditor} from "../usePopupEditor";
15
-
16
- export function createPublicSelectRender(
17
- {
18
- props,
19
- emit,
20
- hooks,
21
- getPublicPopperAttrs,
22
- slots,
23
- editComputed,
24
- styleComputed,
25
- scrollHeight,
26
- }: iSelectCompositionParams,
27
- {
28
- isActivated,
29
- model,
30
- handlePrevWhenNotShow,
31
- handleNextWhenNotShow,
32
- onSelectOption,
33
- alwaysShowOnClickReference,
34
- defaultCurrent,
35
- multiple,
36
- processRenderPanel,
37
- effects,
38
- }: {
39
- /**
40
- * 判断选项是否已经选中,用来provide给option组件判断自身是否已经选中
41
- * @author 韦胜健
42
- * @date 2022.8.1 22:25
43
- */
44
- isActivated: (optionProps: iSelectOptionProps) => boolean,
45
- /**
46
- * 非受控组件绑定值
47
- * @author 韦胜健
48
- * @date 2022/8/23 10:52
49
- */
50
- model: { value: any },
51
- /**
52
- * 处理没有打开popper的时候,input中上快捷键的点击动作,单选时直接切换值
53
- * @author 韦胜健
54
- * @date 2022/8/8 20:53
55
- */
56
- handlePrevWhenNotShow?: (e: KeyboardEvent) => void,
57
- /**
58
- * 吹了没有打开popper的时候,input中下快捷键的点击动作,单选时直接切换值
59
- * @author 韦胜健
60
- * @date 2022/8/8 20:53
61
- */
62
- handleNextWhenNotShow?: (e: KeyboardEvent) => void,
63
- /**
64
- * 处理选中某个选项的动作
65
- * @author 韦胜健
66
- * @date 2022/8/8 20:54
67
- */
68
- onSelectOption: (optionProps: iSelectOptionProps) => void,
69
- /**
70
- * 是否再点击reference的时候一直开启popper
71
- * @author 韦胜健
72
- * @date 2022/8/9 11:14
73
- */
74
- alwaysShowOnClickReference?: () => boolean,
75
- /**
76
- * 重置hover current的时候,current的默认值
77
- * @author 韦胜健
78
- * @date 2022/8/11 17:25
79
- */
80
- defaultCurrent: number | undefined,
81
- /**
82
- * 是否为多选
83
- * @author 韦胜健
84
- * @date 2022/8/12 10:04
85
- */
86
- multiple?: boolean,
87
- /**
88
- * 处理panel的render内容
89
- * @author 韦胜健
90
- * @date 2022/8/16 8:40
91
- */
92
- processRenderPanel?: (defaultRender: () => RenderNode) => RenderNode,
93
- /**
94
- * 副作用收集函数
95
- * @author 韦胜健
96
- * @date 2024.9.3 22:45
97
- */
98
- effects: iEffects,
99
- }) {
100
-
101
- const { refs, onRef } = useRefs({
102
- /*用来创建popper的reference对象*/
103
- input: Input,
104
- /*用来上移下移hover元素的时候滚动到目标位置,如果用的是虚拟列表,则不会有这个对象,暂定虚拟列表不支持滚动*/
105
- scroll: Scroll,
106
- }, { effects });
107
-
108
- const reference = useRenderReference();
109
-
110
- const state = reactive({
111
- /*给Panel用的搜索关键字,只有在输入change的时候这里才会有值*/
112
- searchText: null as any,
113
- /*当前是否focus*/
114
- isFocus: false,
115
- /*当前是否show*/
116
- isShow: false,
117
- });
118
-
119
- /**
120
- * 管理select option的hover状态
121
- * @author 韦胜健
122
- * @date 2022.7.23 19:49
123
- */
124
- const hover = createSelectHover({
125
- defaultCurrent,
126
- refs,
127
- scrollHeight: () => scrollHeight.value,
128
- getMatchOptionsLength: () => optionListHandler.getMatchOptionPropsList().length
129
- });
130
-
131
- const popper = createPopupEditor({
132
- option: {
133
- alwaysShowOnClickReference,
134
- popperAttrs: getPublicPopperAttrs,
135
- reference: () => (editComputed.value.disabled || editComputed.value.readonly) ? null : (reference.getReference() || refs.input?.refs.el),
136
- // reference: () => refs.input?.refs.el,
137
- onShow: () => {
138
- state.isShow = true;
139
- hooks.onPopperShow.exec(undefined);
140
- },
141
- onHide: () => {
142
- state.isShow = false;
143
- hooks.onPopperHide.exec(undefined);
144
- },
145
- onClose: () => {
146
- hooks.onPopperClose.exec(undefined);
147
- /*清空搜索关键字*/
148
- state.searchText = null;
149
- /*重置当前hover*/
150
- hover.resetCurrent();
151
- /*滚动回最开始的位置*/
152
- !!refs.scroll && refs.scroll.methods.scrollTop(0);
153
- },
154
- popper: () => {
155
- const { render, optionPropsList, matchOptionPropsList } = optionListHandler.decode();
156
- return (
157
- <SelectPanel
158
- multiple={multiple}
159
- onSelect={onSelectOption}
160
- onMouseDown={handler.onMousedownPanel}
161
- onEnterOption={hover.onEnterOption}
162
- size={styleComputed.value.size}
163
- optionAlign={props.optionAlign}
164
- searchText={state.searchText}
165
- isMatchSearch={props.isMatchSearch}
166
- current={hover.state.current}
167
- isActivated={isActivated}
168
- dataLength={optionPropsList.length}
169
- matchLength={matchOptionPropsList.length}
170
- noMatchLabel={props.noMatchLabel}
171
- noDataLabel={props.noDataLabel}
172
- loading={!!editComputed.value.loading}
173
- >
174
- {(() => {
175
- const passSlot: any = {};
176
- passSlot.default = () => (processRenderPanel ? processRenderPanel(render) : render());
177
- (['noMatch', 'noData', 'loadingContent'] as const).forEach((slotName) => {
178
- if (slots[slotName].isExist()) {passSlot[slotName] = slots[slotName];}
179
- });
180
- return passSlot;
181
- })()}
182
- </SelectPanel>
183
- );
184
- },
185
- },
186
- });
187
-
188
- effects.push(
189
- hooks.onTriggerShow.use(() => {popper.methods.show();})
190
- );
191
-
192
- effects.push(
193
- hooks.onTriggerHide.use(() => {popper.methods.hide();})
194
- );
195
-
196
- effects.push(() => popper.methods.dispose());
197
-
198
- /**
199
- * 从插槽内容中解析出来option信息
200
- * @author 韦胜健
201
- * @date 2022.7.23 20:07
202
- */
203
- const optionListHandler = (() => {
204
- const innerState = reactive({ renderKey: '', });
205
- /*所有的option的props数组,每次render的时候更新,是一个非响应式的静态数组*/
206
- let optionPropsList: iSelectOptionProps[] = [];
207
- /*匹配到搜搜关键字的option的props数组,每次render的时候更新,是一个非响应式的静态数组*/
208
- let matchOptionPropsList: iSelectOptionProps[] = [];
209
-
210
- function getMatchLabel(): any
211
- function getMatchLabel(isMultiple: true): any[]
212
- function getMatchLabel(isMultiple?: true): any {
213
- if (model.value == null) {return null;}
214
- if (!isMultiple) {
215
- return optionPropsList.find(isActivated)?.label || model.value;
216
- } else {
217
- return optionPropsList.filter(isActivated).map(i => i.label || i.val);
218
- }
219
- }
220
-
221
- function getActivated(): iSelectOptionProps[] {return optionPropsList.filter(isActivated);}
222
-
223
- return {
224
- decode: (): {
225
- optionPropsList: iSelectOptionProps[],
226
- matchOptionPropsList: iSelectOptionProps[],
227
- render: (() => RenderNode),
228
- } => {
229
- if (!!props.virtualData) {
230
- /**
231
- * 虚拟滚动
232
- * @author 韦胜健
233
- * @date 2022/7/25 10:53
234
- */
235
- optionPropsList = [...props.virtualData];
236
- matchOptionPropsList = optionPropsList.filter(i => SelectUtils.isMatchSearch(state.searchText, i, props));
237
- const render = () => {
238
- /*如果显示的选项大于6个,则使用虚拟滚动显示,否则直接显示*/
239
- return (matchOptionPropsList.length > props.scrollNum ?
240
- (<div style={{ height: unit(scrollHeight.value)! }}>
241
- <VirtualList data={matchOptionPropsList} size={(() => {
242
- const { virtualRowSize } = props;
243
- return virtualRowSize == null ? SelectDefaultVirtualRowSize[styleComputed.value.size] : virtualRowSize;
244
- })()}>
245
- {{ default: ({ item, index, vIndex }: { item: iSelectOptionProps, index: number, vIndex: number }) => <SelectOption {...item} index={index} key={vIndex}/> }}
246
- </VirtualList>
247
- </div>) : (
248
- matchOptionPropsList.map((i, index) => (<SelectOption {...i} index={index}/>))
249
- ));
250
- };
251
- return { optionPropsList, matchOptionPropsList, render };
252
- } else {
253
- /**
254
- * 非虚拟滚动,从node中解析select option props
255
- * @author 韦胜健
256
- * @date 2022/7/25 10:54
257
- */
258
- const ret = decodeSelectRenderNode({
259
- renderNode: slots.default(),
260
- searchText: state.searchText,
261
- props,
262
- onRefScroll: onRef.scroll,
263
- innerState,
264
- scrollHeight,
265
- });
266
- optionPropsList = ret.optionPropsList;
267
- matchOptionPropsList = ret.matchOptionPropsList;
268
- const currentRenderKey = optionPropsList.map(i => `${i.label}${i.val}`).join('');
269
- if (innerState.renderKey !== currentRenderKey) {innerState.renderKey = currentRenderKey;}
270
- return ret;
271
- }
272
- },
273
- getOptionPropsList: () => optionPropsList,
274
- getMatchOptionPropsList: () => matchOptionPropsList,
275
- getMatchLabel,
276
- getActivated,
277
- };
278
- })();
279
-
280
- const methods = {
281
- ...(() => {
282
- /*如果已经打开,则hover上一个option,(否则选中上一个option, 单选)*/
283
- const handlePrev = (e: KeyboardEvent) => {
284
- e.preventDefault();
285
- if (state.isShow) {
286
- /*当前已经打开,则移动panel中的高亮元素,enter或者space的时候再确定选中*/
287
- hover.prev();
288
- } else {
289
- handlePrevWhenNotShow?.(e);
290
- }
291
- };
292
- /*如果已经打开,则hover下一个option,(否则选中下一个option, 单选)*/
293
- const handleNext = (e: KeyboardEvent) => {
294
- e.preventDefault();
295
- if (state.isShow) {
296
- /*当前已经打开,则移动panel中的高亮元素,enter或者space的时候再确定选中*/
297
- hover.next();
298
- } else {
299
- handleNextWhenNotShow?.(e);
300
- }
301
- };
302
- return { handlePrev, handleNext };
303
- })()
304
- };
305
-
306
- const handler = {
307
- /**
308
- * input中的快捷键
309
- * @author 韦胜健
310
- * @date 2022/8/8 20:16
311
- */
312
- onInputKeydown: handleKeyboard<KeyboardEvent>({
313
- up: methods.handlePrev,
314
- down: methods.handleNext,
315
- enter: (): void => handler.onInputEnter(),
316
- esc: () => popper.methods.hide(),
317
- space: (e): void => {
318
- e.preventDefault();
319
- e.stopPropagation();
320
- handler.onInputEnter();
321
- },
322
- }),
323
- /**
324
- * 鼠标点下面板的动作,立即让input重新获取焦点
325
- * @author 韦胜健
326
- * @date 2022/8/8 20:15
327
- */
328
- onMousedownPanel: () => {delay().then(() => refs.input?.refs.input?.focus());},
329
- /**
330
- * 记录input focus
331
- * @author 韦胜健
332
- * @date 2022/8/8 20:16
333
- */
334
- onInputFocus: (e: FocusEvent) => {
335
- state.isFocus = true;
336
- emit.onFocus(e);
337
- },
338
- /**
339
- * 记录input focus
340
- * @author 韦胜健
341
- * @date 2022/8/8 20:16
342
- */
343
- onInputBlur: (e: FocusEvent) => {
344
- state.isFocus = false;
345
- emit.onBlur(e);
346
- },
347
- /**
348
- * change的时候应用搜索关键字
349
- * @author 韦胜健
350
- * @date 2022/8/8 20:16
351
- */
352
- onInputChange: (val: any) => {
353
- if (!!props.handleFilterChange) {
354
- props.handleFilterChange(val);
355
- } else {
356
- if (!props.disableFilter) {
357
- hover.resetCurrent();
358
- hooks.onInputTextChange.exec(val);
359
- /*应用搜索关键字*/
360
- state.searchText = val;
361
- }
362
- }
363
- /*没有不打开popper的话就打开popper*/
364
- if (!state.isShow) {
365
- popper.methods.show();
366
- }
367
- },
368
- /**
369
- * input回车动作
370
- * @author 韦胜健
371
- * @date 2022/8/8 20:16
372
- */
373
- onInputEnter: () => {
374
- /*enter按键的时候,如果已经打开则应用当前hover的值,没有则打开popper*/
375
- if (state.isShow) {
376
- const matchOptionPropsList = optionListHandler.getMatchOptionPropsList();
377
- if (hover.state.current == null || matchOptionPropsList[hover.state.current] == null) {
378
- popper.methods.toggle();
379
- } else {
380
- onSelectOption(matchOptionPropsList[hover.state.current]);
381
- }
382
- } else {
383
- popper.methods.show();
384
- }
385
- },
386
- /**
387
- * 清空绑定值
388
- * @author 韦胜健
389
- * @date 2022.7.23 19:54
390
- */
391
- onInputClear: () => {
392
- model.value = null;
393
- state.searchText = null;
394
- hooks.onInputClear.exec(undefined);
395
- },
396
- onSelectOption,
397
- isActivated,
398
- };
399
-
400
- return {
401
- refs,
402
- onRef,
403
- state,
404
- hover,
405
- popper,
406
- optionListHandler,
407
- methods,
408
- handler,
409
- reference,
410
- };
411
- }
1
+ import {reactive, RenderNode, useRefs} from "@peryl/react-compose";
2
+ import {createSelectHover, iSelectCompositionParams, iSelectOptionProps, SelectDefaultVirtualRowSize, SelectUtils} from "./select.utils";
3
+ import {decodeSelectRenderNode} from './decodeSelectRenderNode';
4
+ import {Input} from "../Input";
5
+ import {Scroll} from "../Scroll";
6
+ import {SelectPanel} from "./SelectPanel";
7
+ import {unit} from "@peryl/utils/unit";
8
+ import {SelectOption} from "../SelectOption";
9
+ import {VirtualList} from "../VirtualList";
10
+ import {delay} from "@peryl/utils/delay";
11
+ import {handleKeyboard} from "@peryl/utils/keyboard";
12
+ import {useRenderReference} from "../../uses/useRenderReference";
13
+ import {iEffects} from "@peryl/utils/createEffects";
14
+ import {createPopupEditor} from "../usePopupEditor";
15
+
16
+ export function createPublicSelectRender(
17
+ {
18
+ props,
19
+ emit,
20
+ hooks,
21
+ getPublicPopperAttrs,
22
+ slots,
23
+ editComputed,
24
+ styleComputed,
25
+ scrollHeight,
26
+ }: iSelectCompositionParams,
27
+ {
28
+ isActivated,
29
+ model,
30
+ handlePrevWhenNotShow,
31
+ handleNextWhenNotShow,
32
+ onSelectOption,
33
+ alwaysShowOnClickReference,
34
+ defaultCurrent,
35
+ multiple,
36
+ processRenderPanel,
37
+ effects,
38
+ }: {
39
+ /**
40
+ * 判断选项是否已经选中,用来provide给option组件判断自身是否已经选中
41
+ * @author 韦胜健
42
+ * @date 2022.8.1 22:25
43
+ */
44
+ isActivated: (optionProps: iSelectOptionProps) => boolean,
45
+ /**
46
+ * 非受控组件绑定值
47
+ * @author 韦胜健
48
+ * @date 2022/8/23 10:52
49
+ */
50
+ model: { value: any },
51
+ /**
52
+ * 处理没有打开popper的时候,input中上快捷键的点击动作,单选时直接切换值
53
+ * @author 韦胜健
54
+ * @date 2022/8/8 20:53
55
+ */
56
+ handlePrevWhenNotShow?: (e: KeyboardEvent) => void,
57
+ /**
58
+ * 吹了没有打开popper的时候,input中下快捷键的点击动作,单选时直接切换值
59
+ * @author 韦胜健
60
+ * @date 2022/8/8 20:53
61
+ */
62
+ handleNextWhenNotShow?: (e: KeyboardEvent) => void,
63
+ /**
64
+ * 处理选中某个选项的动作
65
+ * @author 韦胜健
66
+ * @date 2022/8/8 20:54
67
+ */
68
+ onSelectOption: (optionProps: iSelectOptionProps) => void,
69
+ /**
70
+ * 是否再点击reference的时候一直开启popper
71
+ * @author 韦胜健
72
+ * @date 2022/8/9 11:14
73
+ */
74
+ alwaysShowOnClickReference?: () => boolean,
75
+ /**
76
+ * 重置hover current的时候,current的默认值
77
+ * @author 韦胜健
78
+ * @date 2022/8/11 17:25
79
+ */
80
+ defaultCurrent: number | undefined,
81
+ /**
82
+ * 是否为多选
83
+ * @author 韦胜健
84
+ * @date 2022/8/12 10:04
85
+ */
86
+ multiple?: boolean,
87
+ /**
88
+ * 处理panel的render内容
89
+ * @author 韦胜健
90
+ * @date 2022/8/16 8:40
91
+ */
92
+ processRenderPanel?: (defaultRender: () => RenderNode) => RenderNode,
93
+ /**
94
+ * 副作用收集函数
95
+ * @author 韦胜健
96
+ * @date 2024.9.3 22:45
97
+ */
98
+ effects: iEffects,
99
+ }) {
100
+
101
+ const { refs, onRef } = useRefs({
102
+ /*用来创建popper的reference对象*/
103
+ input: Input,
104
+ /*用来上移下移hover元素的时候滚动到目标位置,如果用的是虚拟列表,则不会有这个对象,暂定虚拟列表不支持滚动*/
105
+ scroll: Scroll,
106
+ }, { effects });
107
+
108
+ const reference = useRenderReference();
109
+
110
+ const state = reactive({
111
+ /*给Panel用的搜索关键字,只有在输入change的时候这里才会有值*/
112
+ searchText: null as any,
113
+ /*当前是否focus*/
114
+ isFocus: false,
115
+ /*当前是否show*/
116
+ isShow: false,
117
+ });
118
+
119
+ /**
120
+ * 管理select option的hover状态
121
+ * @author 韦胜健
122
+ * @date 2022.7.23 19:49
123
+ */
124
+ const hover = createSelectHover({
125
+ defaultCurrent,
126
+ refs,
127
+ scrollHeight: () => scrollHeight.value,
128
+ getMatchOptionsLength: () => optionListHandler.getMatchOptionPropsList().length
129
+ });
130
+
131
+ const popper = createPopupEditor({
132
+ option: {
133
+ alwaysShowOnClickReference,
134
+ popperAttrs: getPublicPopperAttrs,
135
+ reference: () => (editComputed.value.disabled || editComputed.value.readonly) ? null : (reference.getReference() || refs.input?.refs.el),
136
+ // reference: () => refs.input?.refs.el,
137
+ onShow: () => {
138
+ state.isShow = true;
139
+ hooks.onPopperShow.exec(undefined);
140
+ },
141
+ onHide: () => {
142
+ state.isShow = false;
143
+ hooks.onPopperHide.exec(undefined);
144
+ },
145
+ onClose: () => {
146
+ hooks.onPopperClose.exec(undefined);
147
+ /*清空搜索关键字*/
148
+ state.searchText = null;
149
+ /*重置当前hover*/
150
+ hover.resetCurrent();
151
+ /*滚动回最开始的位置*/
152
+ !!refs.scroll && refs.scroll.methods.scrollTop(0);
153
+ },
154
+ popper: () => {
155
+ const { render, optionPropsList, matchOptionPropsList } = optionListHandler.decode();
156
+ return (
157
+ <SelectPanel
158
+ multiple={multiple}
159
+ onSelect={onSelectOption}
160
+ onMouseDown={handler.onMousedownPanel}
161
+ onEnterOption={hover.onEnterOption}
162
+ size={styleComputed.value.size}
163
+ optionAlign={props.optionAlign}
164
+ searchText={state.searchText}
165
+ isMatchSearch={props.isMatchSearch}
166
+ current={hover.state.current}
167
+ isActivated={isActivated}
168
+ dataLength={optionPropsList.length}
169
+ matchLength={matchOptionPropsList.length}
170
+ noMatchLabel={props.noMatchLabel}
171
+ noDataLabel={props.noDataLabel}
172
+ loading={!!editComputed.value.loading}
173
+ >
174
+ {(() => {
175
+ const passSlot: any = {};
176
+ passSlot.default = () => (processRenderPanel ? processRenderPanel(render) : render());
177
+ (['noMatch', 'noData', 'loadingContent'] as const).forEach((slotName) => {
178
+ if (slots[slotName].isExist()) {passSlot[slotName] = slots[slotName];}
179
+ });
180
+ return passSlot;
181
+ })()}
182
+ </SelectPanel>
183
+ );
184
+ },
185
+ },
186
+ });
187
+
188
+ effects.push(
189
+ hooks.onTriggerShow.use(() => {popper.methods.show();})
190
+ );
191
+
192
+ effects.push(
193
+ hooks.onTriggerHide.use(() => {popper.methods.hide();})
194
+ );
195
+
196
+ effects.push(() => popper.methods.dispose());
197
+
198
+ /**
199
+ * 从插槽内容中解析出来option信息
200
+ * @author 韦胜健
201
+ * @date 2022.7.23 20:07
202
+ */
203
+ const optionListHandler = (() => {
204
+ const innerState = reactive({ renderKey: '', });
205
+ /*所有的option的props数组,每次render的时候更新,是一个非响应式的静态数组*/
206
+ let optionPropsList: iSelectOptionProps[] = [];
207
+ /*匹配到搜搜关键字的option的props数组,每次render的时候更新,是一个非响应式的静态数组*/
208
+ let matchOptionPropsList: iSelectOptionProps[] = [];
209
+
210
+ function getMatchLabel(): any
211
+ function getMatchLabel(isMultiple: true): any[]
212
+ function getMatchLabel(isMultiple?: true): any {
213
+ if (model.value == null) {return null;}
214
+ if (!isMultiple) {
215
+ return optionPropsList.find(isActivated)?.label || model.value;
216
+ } else {
217
+ return optionPropsList.filter(isActivated).map(i => i.label || i.val);
218
+ }
219
+ }
220
+
221
+ function getActivated(): iSelectOptionProps[] {return optionPropsList.filter(isActivated);}
222
+
223
+ return {
224
+ decode: (): {
225
+ optionPropsList: iSelectOptionProps[],
226
+ matchOptionPropsList: iSelectOptionProps[],
227
+ render: (() => RenderNode),
228
+ } => {
229
+ if (!!props.virtualData) {
230
+ /**
231
+ * 虚拟滚动
232
+ * @author 韦胜健
233
+ * @date 2022/7/25 10:53
234
+ */
235
+ optionPropsList = [...props.virtualData];
236
+ matchOptionPropsList = optionPropsList.filter(i => SelectUtils.isMatchSearch(state.searchText, i, props));
237
+ const render = () => {
238
+ /*如果显示的选项大于6个,则使用虚拟滚动显示,否则直接显示*/
239
+ return (matchOptionPropsList.length > props.scrollNum ?
240
+ (<div style={{ height: unit(scrollHeight.value)! }}>
241
+ <VirtualList data={matchOptionPropsList} size={(() => {
242
+ const { virtualRowSize } = props;
243
+ return virtualRowSize == null ? SelectDefaultVirtualRowSize[styleComputed.value.size] : virtualRowSize;
244
+ })()}>
245
+ {{ default: ({ item, index, vIndex }: { item: iSelectOptionProps, index: number, vIndex: number }) => <SelectOption {...item} index={index} key={vIndex}/> }}
246
+ </VirtualList>
247
+ </div>) : (
248
+ matchOptionPropsList.map((i, index) => (<SelectOption {...i} index={index}/>))
249
+ ));
250
+ };
251
+ return { optionPropsList, matchOptionPropsList, render };
252
+ } else {
253
+ /**
254
+ * 非虚拟滚动,从node中解析select option props
255
+ * @author 韦胜健
256
+ * @date 2022/7/25 10:54
257
+ */
258
+ const ret = decodeSelectRenderNode({
259
+ renderNode: slots.default(),
260
+ searchText: state.searchText,
261
+ props,
262
+ onRefScroll: onRef.scroll,
263
+ innerState,
264
+ scrollHeight,
265
+ });
266
+ optionPropsList = ret.optionPropsList;
267
+ matchOptionPropsList = ret.matchOptionPropsList;
268
+ const currentRenderKey = optionPropsList.map(i => `${i.label}${i.val}`).join('');
269
+ if (innerState.renderKey !== currentRenderKey) {innerState.renderKey = currentRenderKey;}
270
+ return ret;
271
+ }
272
+ },
273
+ getOptionPropsList: () => optionPropsList,
274
+ getMatchOptionPropsList: () => matchOptionPropsList,
275
+ getMatchLabel,
276
+ getActivated,
277
+ };
278
+ })();
279
+
280
+ const methods = {
281
+ ...(() => {
282
+ /*如果已经打开,则hover上一个option,(否则选中上一个option, 单选)*/
283
+ const handlePrev = (e: KeyboardEvent) => {
284
+ e.preventDefault();
285
+ if (state.isShow) {
286
+ /*当前已经打开,则移动panel中的高亮元素,enter或者space的时候再确定选中*/
287
+ hover.prev();
288
+ } else {
289
+ handlePrevWhenNotShow?.(e);
290
+ }
291
+ };
292
+ /*如果已经打开,则hover下一个option,(否则选中下一个option, 单选)*/
293
+ const handleNext = (e: KeyboardEvent) => {
294
+ e.preventDefault();
295
+ if (state.isShow) {
296
+ /*当前已经打开,则移动panel中的高亮元素,enter或者space的时候再确定选中*/
297
+ hover.next();
298
+ } else {
299
+ handleNextWhenNotShow?.(e);
300
+ }
301
+ };
302
+ return { handlePrev, handleNext };
303
+ })()
304
+ };
305
+
306
+ const handler = {
307
+ /**
308
+ * input中的快捷键
309
+ * @author 韦胜健
310
+ * @date 2022/8/8 20:16
311
+ */
312
+ onInputKeydown: handleKeyboard<KeyboardEvent>({
313
+ up: methods.handlePrev,
314
+ down: methods.handleNext,
315
+ enter: (): void => handler.onInputEnter(),
316
+ esc: () => popper.methods.hide(),
317
+ space: (e): void => {
318
+ e.preventDefault();
319
+ e.stopPropagation();
320
+ handler.onInputEnter();
321
+ },
322
+ }),
323
+ /**
324
+ * 鼠标点下面板的动作,立即让input重新获取焦点
325
+ * @author 韦胜健
326
+ * @date 2022/8/8 20:15
327
+ */
328
+ onMousedownPanel: () => {delay().then(() => refs.input?.refs.input?.focus());},
329
+ /**
330
+ * 记录input focus
331
+ * @author 韦胜健
332
+ * @date 2022/8/8 20:16
333
+ */
334
+ onInputFocus: (e: FocusEvent) => {
335
+ state.isFocus = true;
336
+ emit.onFocus(e);
337
+ },
338
+ /**
339
+ * 记录input focus
340
+ * @author 韦胜健
341
+ * @date 2022/8/8 20:16
342
+ */
343
+ onInputBlur: (e: FocusEvent) => {
344
+ state.isFocus = false;
345
+ emit.onBlur(e);
346
+ },
347
+ /**
348
+ * change的时候应用搜索关键字
349
+ * @author 韦胜健
350
+ * @date 2022/8/8 20:16
351
+ */
352
+ onInputChange: (val: any) => {
353
+ if (!!props.handleFilterChange) {
354
+ props.handleFilterChange(val);
355
+ } else {
356
+ if (!props.disableFilter) {
357
+ hover.resetCurrent();
358
+ hooks.onInputTextChange.exec(val);
359
+ /*应用搜索关键字*/
360
+ state.searchText = val;
361
+ }
362
+ }
363
+ /*没有不打开popper的话就打开popper*/
364
+ if (!state.isShow) {
365
+ popper.methods.show();
366
+ }
367
+ },
368
+ /**
369
+ * input回车动作
370
+ * @author 韦胜健
371
+ * @date 2022/8/8 20:16
372
+ */
373
+ onInputEnter: () => {
374
+ /*enter按键的时候,如果已经打开则应用当前hover的值,没有则打开popper*/
375
+ if (state.isShow) {
376
+ const matchOptionPropsList = optionListHandler.getMatchOptionPropsList();
377
+ if (hover.state.current == null || matchOptionPropsList[hover.state.current] == null) {
378
+ popper.methods.toggle();
379
+ } else {
380
+ onSelectOption(matchOptionPropsList[hover.state.current]);
381
+ }
382
+ } else {
383
+ popper.methods.show();
384
+ }
385
+ },
386
+ /**
387
+ * 清空绑定值
388
+ * @author 韦胜健
389
+ * @date 2022.7.23 19:54
390
+ */
391
+ onInputClear: () => {
392
+ model.value = null;
393
+ state.searchText = null;
394
+ hooks.onInputClear.exec(undefined);
395
+ },
396
+ onSelectOption,
397
+ isActivated,
398
+ };
399
+
400
+ return {
401
+ refs,
402
+ onRef,
403
+ state,
404
+ hover,
405
+ popper,
406
+ optionListHandler,
407
+ methods,
408
+ handler,
409
+ reference,
410
+ };
411
+ }