naive-ui 2.30.3 → 2.30.6

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 (279) hide show
  1. package/dist/index.js +1829 -1088
  2. package/dist/index.prod.js +2 -2
  3. package/es/_internal/scrollbar/src/Scrollbar.js +5 -18
  4. package/es/_internal/select-menu/src/SelectGroupHeader.d.ts +1 -0
  5. package/es/_internal/select-menu/src/SelectGroupHeader.js +5 -3
  6. package/es/_internal/select-menu/src/SelectMenu.d.ts +3 -3
  7. package/es/_internal/select-menu/src/SelectMenu.js +6 -8
  8. package/es/_internal/select-menu/src/SelectOption.d.ts +1 -0
  9. package/es/_internal/select-menu/src/SelectOption.js +11 -5
  10. package/es/_internal/select-menu/src/interface.d.ts +3 -1
  11. package/es/_internal/selection/src/Selection.d.ts +0 -2
  12. package/es/_internal/selection/src/Selection.js +7 -5
  13. package/es/_mixins/use-theme.js +1 -1
  14. package/es/_utils/composable/index.d.ts +3 -5
  15. package/es/_utils/composable/index.js +3 -111
  16. package/es/_utils/composable/use-collection.d.ts +4 -0
  17. package/es/_utils/composable/use-collection.js +87 -0
  18. package/es/_utils/composable/use-deferred-true.d.ts +2 -0
  19. package/es/_utils/composable/use-deferred-true.js +25 -0
  20. package/es/_utils/composable/use-reactivated.d.ts +3 -0
  21. package/es/_utils/composable/use-reactivated.js +20 -0
  22. package/es/_utils/dom/index.d.ts +1 -0
  23. package/es/_utils/dom/index.js +1 -0
  24. package/es/_utils/dom/is-document.d.ts +1 -0
  25. package/es/_utils/dom/is-document.js +3 -0
  26. package/es/_utils/event/index.d.ts +2 -0
  27. package/es/_utils/event/index.js +7 -0
  28. package/es/_utils/index.d.ts +3 -1
  29. package/es/_utils/index.js +3 -1
  30. package/es/_utils/vue/index.d.ts +3 -0
  31. package/es/_utils/vue/index.js +3 -0
  32. package/es/_utils/vue/is-node-v-show-false.d.ts +2 -0
  33. package/es/_utils/vue/is-node-v-show-false.js +6 -0
  34. package/es/_utils/vue/merge-handlers.d.ts +1 -0
  35. package/es/_utils/vue/merge-handlers.js +15 -0
  36. package/es/{_internal/scrollbar/src/Wrapper.d.ts → _utils/vue/wrapper.d.ts} +0 -0
  37. package/es/{_internal/scrollbar/src/Wrapper.js → _utils/vue/wrapper.js} +0 -0
  38. package/es/back-top/src/BackTop.d.ts +1 -1
  39. package/es/back-top/src/BackTop.js +24 -31
  40. package/es/button/src/Button.js +7 -2
  41. package/es/cascader/src/Cascader.d.ts +2 -3
  42. package/es/cascader/src/Cascader.js +26 -22
  43. package/es/cascader/src/CascaderMenu.d.ts +2 -2
  44. package/es/cascader/src/CascaderMenu.js +2 -4
  45. package/es/color-picker/src/ColorInputUnit.js +1 -1
  46. package/es/data-table/src/DataTable.d.ts +792 -2
  47. package/es/data-table/src/DataTable.js +10 -5
  48. package/es/data-table/src/HeaderButton/FilterButton.d.ts +142 -0
  49. package/es/data-table/src/HeaderButton/FilterMenu.d.ts +142 -0
  50. package/es/data-table/src/MainTable.d.ts +2 -0
  51. package/es/data-table/src/MainTable.js +5 -1
  52. package/es/data-table/src/TableParts/Body.d.ts +144 -0
  53. package/es/data-table/src/TableParts/Body.js +15 -8
  54. package/es/data-table/src/TableParts/Cell.d.ts +295 -1
  55. package/es/data-table/src/TableParts/Cell.js +19 -6
  56. package/es/data-table/src/TableParts/Header.d.ts +143 -0
  57. package/es/data-table/src/TableParts/Header.js +6 -2
  58. package/es/data-table/src/interface.d.ts +14 -7
  59. package/es/data-table/src/styles/index.cssr.js +7 -2
  60. package/es/data-table/src/use-check.js +11 -3
  61. package/es/data-table/src/use-expand.d.ts +5 -3
  62. package/es/data-table/src/use-expand.js +22 -2
  63. package/es/data-table/src/utils.d.ts +2 -2
  64. package/es/data-table/src/utils.js +10 -8
  65. package/es/data-table/styles/light.d.ts +71 -0
  66. package/es/date-picker/src/DatePicker.d.ts +2 -1
  67. package/es/date-picker/src/DatePicker.js +20 -9
  68. package/es/date-picker/src/panel/month.js +3 -2
  69. package/es/drawer/src/Drawer.d.ts +1 -1
  70. package/es/drawer/src/Drawer.js +3 -3
  71. package/es/drawer/src/DrawerBodyWrapper.d.ts +2 -2
  72. package/es/dropdown/src/Dropdown.d.ts +4 -0
  73. package/es/dynamic-tags/src/DynamicTags.js +1 -1
  74. package/es/grid/src/Grid.d.ts +3 -0
  75. package/es/grid/src/Grid.js +47 -9
  76. package/es/grid/src/GridItem.js +2 -1
  77. package/es/image/src/Image.d.ts +10 -0
  78. package/es/image/src/Image.js +42 -8
  79. package/es/image/src/utils.d.ts +11 -0
  80. package/es/image/src/utils.js +81 -0
  81. package/es/input/src/Input.d.ts +6 -3
  82. package/es/input/src/Input.js +56 -31
  83. package/es/input/src/styles/input-group-label.cssr.js +2 -0
  84. package/es/input/src/utils.d.ts +7 -1
  85. package/es/input/src/utils.js +57 -2
  86. package/es/layout/src/Layout.d.ts +3 -1
  87. package/es/layout/src/Layout.js +22 -4
  88. package/es/layout/src/LayoutContent.d.ts +1 -0
  89. package/es/layout/src/LayoutSider.d.ts +1 -0
  90. package/es/layout/src/LayoutSider.js +22 -3
  91. package/es/menu/src/Menu.d.ts +1 -1
  92. package/es/modal/src/BodyWrapper.d.ts +15 -20
  93. package/es/modal/src/BodyWrapper.js +38 -33
  94. package/es/modal/src/Modal.js +14 -9
  95. package/es/pagination/src/Pagination.d.ts +806 -20
  96. package/es/pagination/src/Pagination.js +115 -52
  97. package/es/pagination/src/interface.d.ts +2 -2
  98. package/es/pagination/src/styles/index.cssr.js +12 -10
  99. package/es/pagination/src/utils.d.ts +15 -5
  100. package/es/pagination/src/utils.js +117 -50
  101. package/es/pagination/styles/dark.js +3 -1
  102. package/es/pagination/styles/light.d.ts +71 -0
  103. package/es/pagination/styles/light.js +3 -1
  104. package/es/popconfirm/src/Popconfirm.d.ts +4 -0
  105. package/es/popover/src/Popover.d.ts +5 -0
  106. package/es/popover/src/Popover.js +1 -0
  107. package/es/popover/src/PopoverBody.d.ts +4 -0
  108. package/es/popover/src/PopoverBody.js +18 -10
  109. package/es/popselect/src/Popselect.d.ts +24 -0
  110. package/es/popselect/src/Popselect.js +12 -7
  111. package/es/popselect/src/PopselectPanel.d.ts +22 -2
  112. package/es/popselect/src/PopselectPanel.js +12 -1
  113. package/es/select/src/Select.d.ts +1 -1
  114. package/es/select/src/Select.js +5 -2
  115. package/es/slider/src/Slider.d.ts +1 -1
  116. package/es/slider/src/Slider.js +13 -5
  117. package/es/slider/src/styles/index.cssr.js +26 -31
  118. package/es/space/src/Space.d.ts +26 -0
  119. package/es/space/src/Space.js +53 -43
  120. package/es/time-picker/src/TimePicker.d.ts +2 -1
  121. package/es/time-picker/src/TimePicker.js +18 -8
  122. package/es/tooltip/index.d.ts +1 -1
  123. package/es/tooltip/src/Tooltip.d.ts +4 -0
  124. package/es/tree/src/Tree.d.ts +2 -3
  125. package/es/tree/src/Tree.js +6 -8
  126. package/es/tree/src/TreeNode.js +4 -1
  127. package/es/tree/src/interface.d.ts +0 -1
  128. package/es/tree/src/keyboard.d.ts +0 -1
  129. package/es/tree/src/keyboard.js +6 -9
  130. package/es/tree-select/src/TreeSelect.d.ts +1 -3
  131. package/es/tree-select/src/TreeSelect.js +14 -16
  132. package/es/upload/src/UploadDragger.js +2 -2
  133. package/es/upload/src/UploadFile.d.ts +2 -2
  134. package/es/upload/src/UploadFile.js +9 -4
  135. package/es/upload/src/UploadTrigger.js +4 -3
  136. package/es/upload/src/styles/index.cssr.js +2 -2
  137. package/es/upload/src/utils.js +1 -15
  138. package/es/version.d.ts +1 -1
  139. package/es/version.js +1 -1
  140. package/lib/_internal/scrollbar/src/Scrollbar.js +6 -19
  141. package/lib/_internal/select-menu/src/SelectGroupHeader.d.ts +1 -0
  142. package/lib/_internal/select-menu/src/SelectGroupHeader.js +5 -3
  143. package/lib/_internal/select-menu/src/SelectMenu.d.ts +3 -3
  144. package/lib/_internal/select-menu/src/SelectMenu.js +5 -7
  145. package/lib/_internal/select-menu/src/SelectOption.d.ts +1 -0
  146. package/lib/_internal/select-menu/src/SelectOption.js +10 -4
  147. package/lib/_internal/select-menu/src/interface.d.ts +3 -1
  148. package/lib/_internal/selection/src/Selection.d.ts +0 -2
  149. package/lib/_internal/selection/src/Selection.js +6 -4
  150. package/lib/_mixins/use-theme.js +1 -1
  151. package/lib/_utils/composable/index.d.ts +3 -5
  152. package/lib/_utils/composable/index.js +9 -116
  153. package/lib/_utils/composable/use-collection.d.ts +4 -0
  154. package/lib/_utils/composable/use-collection.js +93 -0
  155. package/lib/_utils/composable/use-deferred-true.d.ts +2 -0
  156. package/lib/_utils/composable/use-deferred-true.js +29 -0
  157. package/lib/_utils/composable/use-reactivated.d.ts +3 -0
  158. package/lib/_utils/composable/use-reactivated.js +24 -0
  159. package/lib/_utils/dom/index.d.ts +1 -0
  160. package/lib/_utils/dom/index.js +5 -0
  161. package/lib/_utils/dom/is-document.d.ts +1 -0
  162. package/lib/_utils/dom/is-document.js +7 -0
  163. package/lib/_utils/event/index.d.ts +2 -0
  164. package/lib/_utils/event/index.js +12 -0
  165. package/lib/_utils/index.d.ts +3 -1
  166. package/lib/_utils/index.js +8 -1
  167. package/lib/_utils/vue/index.d.ts +3 -0
  168. package/lib/_utils/vue/index.js +7 -1
  169. package/lib/_utils/vue/is-node-v-show-false.d.ts +2 -0
  170. package/lib/_utils/vue/is-node-v-show-false.js +10 -0
  171. package/lib/_utils/vue/merge-handlers.d.ts +1 -0
  172. package/lib/_utils/vue/merge-handlers.js +19 -0
  173. package/lib/{_internal/scrollbar/src/Wrapper.d.ts → _utils/vue/wrapper.d.ts} +0 -0
  174. package/lib/{_internal/scrollbar/src/Wrapper.js → _utils/vue/wrapper.js} +0 -0
  175. package/lib/back-top/src/BackTop.d.ts +1 -1
  176. package/lib/back-top/src/BackTop.js +23 -30
  177. package/lib/button/src/Button.js +7 -2
  178. package/lib/cascader/src/Cascader.d.ts +2 -3
  179. package/lib/cascader/src/Cascader.js +25 -21
  180. package/lib/cascader/src/CascaderMenu.d.ts +2 -2
  181. package/lib/cascader/src/CascaderMenu.js +2 -4
  182. package/lib/color-picker/src/ColorInputUnit.js +1 -1
  183. package/lib/data-table/src/DataTable.d.ts +792 -2
  184. package/lib/data-table/src/DataTable.js +10 -5
  185. package/lib/data-table/src/HeaderButton/FilterButton.d.ts +142 -0
  186. package/lib/data-table/src/HeaderButton/FilterMenu.d.ts +142 -0
  187. package/lib/data-table/src/MainTable.d.ts +2 -0
  188. package/lib/data-table/src/MainTable.js +5 -1
  189. package/lib/data-table/src/TableParts/Body.d.ts +144 -0
  190. package/lib/data-table/src/TableParts/Body.js +15 -8
  191. package/lib/data-table/src/TableParts/Cell.d.ts +295 -1
  192. package/lib/data-table/src/TableParts/Cell.js +19 -6
  193. package/lib/data-table/src/TableParts/Header.d.ts +143 -0
  194. package/lib/data-table/src/TableParts/Header.js +6 -2
  195. package/lib/data-table/src/interface.d.ts +14 -7
  196. package/lib/data-table/src/styles/index.cssr.js +7 -2
  197. package/lib/data-table/src/use-check.js +11 -3
  198. package/lib/data-table/src/use-expand.d.ts +5 -3
  199. package/lib/data-table/src/use-expand.js +22 -2
  200. package/lib/data-table/src/utils.d.ts +2 -2
  201. package/lib/data-table/src/utils.js +11 -9
  202. package/lib/data-table/styles/light.d.ts +71 -0
  203. package/lib/date-picker/src/DatePicker.d.ts +2 -1
  204. package/lib/date-picker/src/DatePicker.js +19 -8
  205. package/lib/date-picker/src/panel/month.js +3 -2
  206. package/lib/drawer/src/Drawer.d.ts +1 -1
  207. package/lib/drawer/src/Drawer.js +2 -2
  208. package/lib/drawer/src/DrawerBodyWrapper.d.ts +2 -2
  209. package/lib/dropdown/src/Dropdown.d.ts +4 -0
  210. package/lib/dynamic-tags/src/DynamicTags.js +1 -1
  211. package/lib/grid/src/Grid.d.ts +3 -0
  212. package/lib/grid/src/Grid.js +45 -7
  213. package/lib/grid/src/GridItem.js +2 -1
  214. package/lib/image/src/Image.d.ts +10 -0
  215. package/lib/image/src/Image.js +41 -7
  216. package/lib/image/src/utils.d.ts +11 -0
  217. package/lib/image/src/utils.js +86 -0
  218. package/lib/input/src/Input.d.ts +6 -3
  219. package/lib/input/src/Input.js +55 -30
  220. package/lib/input/src/styles/input-group-label.cssr.js +2 -0
  221. package/lib/input/src/utils.d.ts +7 -1
  222. package/lib/input/src/utils.js +60 -4
  223. package/lib/layout/src/Layout.d.ts +3 -1
  224. package/lib/layout/src/Layout.js +22 -4
  225. package/lib/layout/src/LayoutContent.d.ts +1 -0
  226. package/lib/layout/src/LayoutSider.d.ts +1 -0
  227. package/lib/layout/src/LayoutSider.js +21 -2
  228. package/lib/menu/src/Menu.d.ts +1 -1
  229. package/lib/modal/src/BodyWrapper.d.ts +15 -20
  230. package/lib/modal/src/BodyWrapper.js +38 -33
  231. package/lib/modal/src/Modal.js +13 -8
  232. package/lib/pagination/src/Pagination.d.ts +806 -20
  233. package/lib/pagination/src/Pagination.js +114 -51
  234. package/lib/pagination/src/interface.d.ts +2 -2
  235. package/lib/pagination/src/styles/index.cssr.js +13 -11
  236. package/lib/pagination/src/utils.d.ts +15 -5
  237. package/lib/pagination/src/utils.js +118 -53
  238. package/lib/pagination/styles/dark.js +6 -4
  239. package/lib/pagination/styles/light.d.ts +71 -0
  240. package/lib/pagination/styles/light.js +6 -4
  241. package/lib/popconfirm/src/Popconfirm.d.ts +4 -0
  242. package/lib/popover/src/Popover.d.ts +5 -0
  243. package/lib/popover/src/Popover.js +1 -0
  244. package/lib/popover/src/PopoverBody.d.ts +4 -0
  245. package/lib/popover/src/PopoverBody.js +18 -10
  246. package/lib/popselect/src/Popselect.d.ts +24 -0
  247. package/lib/popselect/src/Popselect.js +10 -5
  248. package/lib/popselect/src/PopselectPanel.d.ts +22 -2
  249. package/lib/popselect/src/PopselectPanel.js +12 -1
  250. package/lib/select/src/Select.d.ts +1 -1
  251. package/lib/select/src/Select.js +4 -1
  252. package/lib/slider/src/Slider.d.ts +1 -1
  253. package/lib/slider/src/Slider.js +12 -4
  254. package/lib/slider/src/styles/index.cssr.js +26 -31
  255. package/lib/space/src/Space.d.ts +26 -0
  256. package/lib/space/src/Space.js +53 -43
  257. package/lib/time-picker/src/TimePicker.d.ts +2 -1
  258. package/lib/time-picker/src/TimePicker.js +17 -7
  259. package/lib/tooltip/index.d.ts +1 -1
  260. package/lib/tooltip/src/Tooltip.d.ts +4 -0
  261. package/lib/tree/src/Tree.d.ts +2 -3
  262. package/lib/tree/src/Tree.js +6 -8
  263. package/lib/tree/src/TreeNode.js +4 -1
  264. package/lib/tree/src/interface.d.ts +0 -1
  265. package/lib/tree/src/keyboard.d.ts +0 -1
  266. package/lib/tree/src/keyboard.js +6 -9
  267. package/lib/tree-select/src/TreeSelect.d.ts +1 -3
  268. package/lib/tree-select/src/TreeSelect.js +13 -15
  269. package/lib/upload/src/UploadDragger.js +2 -2
  270. package/lib/upload/src/UploadFile.d.ts +2 -2
  271. package/lib/upload/src/UploadFile.js +9 -4
  272. package/lib/upload/src/UploadTrigger.js +3 -2
  273. package/lib/upload/src/styles/index.cssr.js +2 -2
  274. package/lib/upload/src/utils.js +1 -15
  275. package/lib/version.d.ts +1 -1
  276. package/lib/version.js +1 -1
  277. package/package.json +2 -2
  278. package/volar.d.ts +0 -1
  279. package/web-types.json +73 -1
@@ -0,0 +1,7 @@
1
+ const eventSet = new WeakSet();
2
+ export function markEventEffectPerformed(event) {
3
+ eventSet.add(event);
4
+ }
5
+ export function eventEffectNotPerformed(event) {
6
+ return !eventSet.has(event);
7
+ }
@@ -1,4 +1,4 @@
1
- export { call, keep, omit, flatten, getSlot, getVNodeChildren, keysOf, render, getFirstSlotVNode, createDataKey, createRefSetter, createInjectionKey, resolveSlot, resolveSlotWithProps, resolveWrappedSlot, isSlotEmpty } from './vue';
1
+ export { call, keep, omit, flatten, getSlot, getVNodeChildren, keysOf, render, getFirstSlotVNode, createDataKey, createRefSetter, createInjectionKey, resolveSlot, resolveSlotWithProps, resolveWrappedSlot, isSlotEmpty, mergeEventHandlers, isNodeVShowFalse, Wrapper } from './vue';
2
2
  export type { MaybeArray } from './vue';
3
3
  export { warn, warnOnce, throwError, smallerSize, largerSize, getTitleAttribute } from './naive';
4
4
  export type { ExtractPublicPropTypes, ExtractInternalPropTypes, Mutable } from './naive';
@@ -6,4 +6,6 @@ export { formatLength, color2Class } from './css';
6
6
  export { createKey } from './cssr';
7
7
  export { isJsdom } from './env/is-jsdom';
8
8
  export { isBrowser } from './env/is-browser';
9
+ export { eventEffectNotPerformed, markEventEffectPerformed } from './event';
9
10
  export * from './composable';
11
+ export * from './dom';
@@ -1,7 +1,9 @@
1
- export { call, keep, omit, flatten, getSlot, getVNodeChildren, keysOf, render, getFirstSlotVNode, createDataKey, createRefSetter, createInjectionKey, resolveSlot, resolveSlotWithProps, resolveWrappedSlot, isSlotEmpty } from './vue';
1
+ export { call, keep, omit, flatten, getSlot, getVNodeChildren, keysOf, render, getFirstSlotVNode, createDataKey, createRefSetter, createInjectionKey, resolveSlot, resolveSlotWithProps, resolveWrappedSlot, isSlotEmpty, mergeEventHandlers, isNodeVShowFalse, Wrapper } from './vue';
2
2
  export { warn, warnOnce, throwError, smallerSize, largerSize, getTitleAttribute } from './naive';
3
3
  export { formatLength, color2Class } from './css';
4
4
  export { createKey } from './cssr';
5
5
  export { isJsdom } from './env/is-jsdom';
6
6
  export { isBrowser } from './env/is-browser';
7
+ export { eventEffectNotPerformed, markEventEffectPerformed } from './event';
7
8
  export * from './composable';
9
+ export * from './dom';
@@ -12,3 +12,6 @@ export { createRefSetter } from './create-ref-setter';
12
12
  export { createInjectionKey } from './create-injection-key';
13
13
  export { resolveSlot, resolveWrappedSlot, resolveSlotWithProps, isSlotEmpty } from './resolve-slot';
14
14
  export type { MaybeArray } from './call';
15
+ export { mergeEventHandlers } from './merge-handlers';
16
+ export { isNodeVShowFalse } from './is-node-v-show-false';
17
+ export { Wrapper } from './wrapper';
@@ -11,3 +11,6 @@ export { createDataKey } from './create-data-key';
11
11
  export { createRefSetter } from './create-ref-setter';
12
12
  export { createInjectionKey } from './create-injection-key';
13
13
  export { resolveSlot, resolveWrappedSlot, resolveSlotWithProps, isSlotEmpty } from './resolve-slot';
14
+ export { mergeEventHandlers } from './merge-handlers';
15
+ export { isNodeVShowFalse } from './is-node-v-show-false';
16
+ export { Wrapper } from './wrapper';
@@ -0,0 +1,2 @@
1
+ import { VNode } from 'vue';
2
+ export declare function isNodeVShowFalse(vNode: VNode): boolean;
@@ -0,0 +1,6 @@
1
+ import { vShow } from 'vue';
2
+ export function isNodeVShowFalse(vNode) {
3
+ var _a;
4
+ const showDir = (_a = vNode.dirs) === null || _a === void 0 ? void 0 : _a.find(({ dir }) => dir === vShow);
5
+ return !!(showDir && showDir.value === false);
6
+ }
@@ -0,0 +1 @@
1
+ export declare function mergeEventHandlers<T>(handlers: Array<undefined | ((e: T) => void)>): undefined | ((e: T) => void);
@@ -0,0 +1,15 @@
1
+ export function mergeEventHandlers(handlers) {
2
+ const filteredHandlers = handlers.filter((handler) => handler !== undefined);
3
+ if (filteredHandlers.length === 0)
4
+ return undefined;
5
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
6
+ if (filteredHandlers.length === 1)
7
+ return filteredHandlers[0];
8
+ return (e) => {
9
+ handlers.forEach((handler) => {
10
+ if (handler) {
11
+ handler(e);
12
+ }
13
+ });
14
+ };
15
+ }
@@ -159,7 +159,7 @@ declare const _default: import("vue").DefineComponent<{
159
159
  mergedClsPrefix: import("vue").ComputedRef<string>;
160
160
  handleAfterEnter: () => void;
161
161
  handleScroll: () => void;
162
- handleClick: (e: MouseEvent) => void;
162
+ handleClick: () => void;
163
163
  cssVars: import("vue").ComputedRef<{
164
164
  '--n-bezier': string;
165
165
  '--n-border-radius': string;
@@ -4,7 +4,7 @@ import { useIsMounted, useMergedState } from 'vooks';
4
4
  import { getScrollParent, unwrapElement } from 'seemly';
5
5
  import { useConfig, useTheme, useThemeClass } from '../../_mixins';
6
6
  import { NBaseIcon } from '../../_internal';
7
- import { lockHtmlScrollRightCompensationRef, formatLength, resolveSlot, warn, warnOnce } from '../../_utils';
7
+ import { lockHtmlScrollRightCompensationRef, formatLength, resolveSlot, isDocument, warn, warnOnce } from '../../_utils';
8
8
  import { backTopLight } from '../styles';
9
9
  import BackTopIcon from './BackTopIcon';
10
10
  import style from './styles/index.cssr';
@@ -50,15 +50,20 @@ export default defineComponent({
50
50
  }
51
51
  const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props);
52
52
  const scrollTopRef = ref(null);
53
- const uncontrolledShowRef = computed(() => {
54
- if (scrollTopRef.value === null)
55
- return false;
56
- return scrollTopRef.value >= props.visibilityHeight;
53
+ const uncontrolledShowRef = ref(false);
54
+ watchEffect(() => {
55
+ const { value: scrollTop } = scrollTopRef;
56
+ if (scrollTop === null) {
57
+ uncontrolledShowRef.value = false;
58
+ return;
59
+ }
60
+ uncontrolledShowRef.value = scrollTop >= props.visibilityHeight;
57
61
  });
58
62
  const DomInfoReadyRef = ref(false);
59
63
  watch(uncontrolledShowRef, (value) => {
64
+ var _a;
60
65
  if (DomInfoReadyRef.value) {
61
- props['onUpdate:show'](value);
66
+ (_a = props['onUpdate:show']) === null || _a === void 0 ? void 0 : _a.call(props, value);
62
67
  }
63
68
  });
64
69
  const controlledShowRef = toRef(props, 'show');
@@ -98,39 +103,27 @@ export default defineComponent({
98
103
  }
99
104
  return;
100
105
  }
101
- scrollElement = scrollEl;
106
+ scrollElement =
107
+ scrollEl === document.documentElement ? document : scrollEl;
102
108
  const { to } = props;
103
109
  const target = typeof to === 'string' ? document.querySelector(to) : to;
104
110
  if (process.env.NODE_ENV !== 'production' && !target) {
105
111
  warn('back-top', 'Target is not found.');
106
112
  }
107
- if (scrollEl) {
108
- scrollEl.addEventListener('scroll', handleScroll);
109
- handleScroll();
110
- }
113
+ scrollElement.addEventListener('scroll', handleScroll);
114
+ handleScroll();
111
115
  }
112
- function handleClick(e) {
113
- if (scrollElement.nodeName === '#document') {
114
- ;
115
- scrollElement.documentElement.scrollTo({
116
- top: 0,
117
- behavior: 'smooth'
118
- });
119
- }
120
- else {
121
- scrollElement.scrollTo({
122
- top: 0,
123
- behavior: 'smooth'
124
- });
125
- }
116
+ function handleClick() {
117
+ ;
118
+ (isDocument(scrollElement)
119
+ ? document.documentElement
120
+ : scrollElement).scrollTo({
121
+ top: 0,
122
+ behavior: 'smooth'
123
+ });
126
124
  }
127
125
  function handleScroll() {
128
- if (scrollElement.nodeName === '#document') {
129
- scrollTopRef.value = scrollElement.documentElement.scrollTop;
130
- }
131
- else {
132
- scrollTopRef.value = scrollElement.scrollTop;
133
- }
126
+ scrollTopRef.value = (isDocument(scrollElement) ? document.documentElement : scrollElement).scrollTop;
134
127
  if (!DomInfoReadyRef.value) {
135
128
  void nextTick(() => {
136
129
  DomInfoReadyRef.value = true;
@@ -77,11 +77,16 @@ const Button = defineComponent({
77
77
  });
78
78
  const handleMousedown = (e) => {
79
79
  var _a;
80
- if (props.disabled || props.nativeFocusBehavior) {
80
+ if (props.nativeFocusBehavior) {
81
+ return;
82
+ }
83
+ e.preventDefault();
84
+ // normally this won't be called if disabled (when tag is button)
85
+ // if not, we try to make it behave like a button
86
+ if (props.disabled) {
81
87
  return;
82
88
  }
83
89
  if (mergedFocusableRef.value) {
84
- e.preventDefault();
85
90
  (_a = selfElRef.value) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });
86
91
  }
87
92
  };
@@ -1357,7 +1357,7 @@ declare const _default: import("vue").DefineComponent<{
1357
1357
  handleMenuTabout: () => void;
1358
1358
  handleMenuFocus: (e: FocusEvent) => void;
1359
1359
  handleMenuBlur: (e: FocusEvent) => void;
1360
- handleMenuKeyUp: (e: KeyboardEvent) => void;
1360
+ handleMenuKeydown: (e: KeyboardEvent) => void;
1361
1361
  handleMenuMousedown: (e: MouseEvent) => void;
1362
1362
  handleTriggerFocus: (e: FocusEvent) => void;
1363
1363
  handleTriggerBlur: (e: FocusEvent) => void;
@@ -1365,8 +1365,7 @@ declare const _default: import("vue").DefineComponent<{
1365
1365
  handleClear: (e: MouseEvent) => void;
1366
1366
  handleDeleteOption: (option: SelectBaseOption) => void;
1367
1367
  handlePatternInput: (e: InputEvent) => void;
1368
- handleKeyDown: (e: KeyboardEvent) => void;
1369
- handleKeyUp: (e: KeyboardEvent) => void;
1368
+ handleKeydown: (e: KeyboardEvent) => void;
1370
1369
  focused: import("vue").Ref<boolean>;
1371
1370
  optionHeight: import("vue").ComputedRef<string>;
1372
1371
  mergedTheme: import("vue").ComputedRef<{
@@ -5,7 +5,7 @@ import { depx, changeColor, happensIn } from 'seemly';
5
5
  import { useIsMounted, useMergedState } from 'vooks';
6
6
  import { NInternalSelection } from '../../_internal';
7
7
  import { useLocale, useTheme, useConfig, useFormItem, useThemeClass } from '../../_mixins';
8
- import { call, useAdjustedTo, warnOnce } from '../../_utils';
8
+ import { call, markEventEffectPerformed, useAdjustedTo, warnOnce } from '../../_utils';
9
9
  import { cascaderLight } from '../styles';
10
10
  import { getPathLabel, getRawNodePath } from './utils';
11
11
  import CascaderMenu from './CascaderMenu';
@@ -210,6 +210,8 @@ export default defineComponent({
210
210
  doUpdateValue(checkedKeys, checkedKeys.map((checkedKey) => { var _a; return ((_a = getNode(checkedKey)) === null || _a === void 0 ? void 0 : _a.rawNode) || null; }), checkedKeys.map((checkedKey) => { var _a; return getRawNodePath((_a = getPath(checkedKey)) === null || _a === void 0 ? void 0 : _a.treeNodePath); }));
211
211
  if (filterable)
212
212
  focusSelectionInput();
213
+ keyboardKeyRef.value = key;
214
+ hoverKeyRef.value = key;
213
215
  }
214
216
  catch (err) {
215
217
  if (err instanceof SubtreeNotLoadedError) {
@@ -252,6 +254,8 @@ export default defineComponent({
252
254
  allowNotLoaded: props.allowCheckingNotLoaded
253
255
  });
254
256
  doUpdateValue(checkedKeys, checkedKeys.map((checkedKey) => { var _a; return ((_a = getNode(checkedKey)) === null || _a === void 0 ? void 0 : _a.rawNode) || null; }), checkedKeys.map((checkedKey) => { var _a; return getRawNodePath((_a = getPath(checkedKey)) === null || _a === void 0 ? void 0 : _a.treeNodePath); }));
257
+ keyboardKeyRef.value = key;
258
+ hoverKeyRef.value = key;
255
259
  }
256
260
  }
257
261
  const selectedOptionsRef = computed(() => {
@@ -491,8 +495,18 @@ export default defineComponent({
491
495
  break;
492
496
  }
493
497
  }
494
- function handleKeyUp(e) {
498
+ function handleKeydown(e) {
495
499
  var _a, _b;
500
+ switch (e.key) {
501
+ case ' ':
502
+ case 'ArrowDown':
503
+ case 'ArrowUp':
504
+ if (props.filterable && mergedShowRef.value) {
505
+ break;
506
+ }
507
+ e.preventDefault();
508
+ break;
509
+ }
496
510
  if (happensIn(e, 'action'))
497
511
  return;
498
512
  switch (e.key) {
@@ -568,11 +582,14 @@ export default defineComponent({
568
582
  }
569
583
  break;
570
584
  case 'Escape':
571
- closeMenu(true);
585
+ if (mergedShowRef.value) {
586
+ markEventEffectPerformed(e);
587
+ closeMenu(true);
588
+ }
572
589
  }
573
590
  }
574
- function handleMenuKeyUp(e) {
575
- handleKeyUp(e);
591
+ function handleMenuKeydown(e) {
592
+ handleKeydown(e);
576
593
  }
577
594
  // --- search
578
595
  function handleClear(e) {
@@ -652,18 +669,6 @@ export default defineComponent({
652
669
  doUpdateValue(null, null, null);
653
670
  }
654
671
  }
655
- function handleKeyDown(e) {
656
- switch (e.key) {
657
- case ' ':
658
- case 'ArrowDown':
659
- case 'ArrowUp':
660
- if (props.filterable && mergedShowRef.value) {
661
- return;
662
- }
663
- e.preventDefault();
664
- break;
665
- }
666
- }
667
672
  // sync position
668
673
  function syncSelectMenuPosition() {
669
674
  var _a;
@@ -760,7 +765,7 @@ export default defineComponent({
760
765
  cascaderMenuInstRef, mergedBordered: mergedBorderedRef, mergedClsPrefix: mergedClsPrefixRef, namespace: namespaceRef, mergedValue: mergedValueRef, mergedShow: mergedShowRef, showSelectMenu: showSelectMenuRef, pattern: patternRef, treeMate: treeMateRef, mergedSize: mergedSizeRef, mergedDisabled: mergedDisabledRef, localizedPlaceholder: localizedPlaceholderRef, selectedOption: selectedOptionRef, selectedOptions: selectedOptionsRef, adjustedTo: adjustedToRef, menuModel: menuModelRef, handleMenuTabout,
761
766
  handleMenuFocus,
762
767
  handleMenuBlur,
763
- handleMenuKeyUp,
768
+ handleMenuKeydown,
764
769
  handleMenuMousedown,
765
770
  handleTriggerFocus,
766
771
  handleTriggerBlur,
@@ -768,8 +773,7 @@ export default defineComponent({
768
773
  handleClear,
769
774
  handleDeleteOption,
770
775
  handlePatternInput,
771
- handleKeyDown,
772
- handleKeyUp, focused: focusedRef, optionHeight: optionHeightRef, mergedTheme: themeRef, cssVars: inlineThemeDisabled ? undefined : cssVarsRef, themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender });
776
+ handleKeydown, focused: focusedRef, optionHeight: optionHeightRef, mergedTheme: themeRef, cssVars: inlineThemeDisabled ? undefined : cssVarsRef, themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender });
773
777
  },
774
778
  render() {
775
779
  const { mergedClsPrefix } = this;
@@ -777,7 +781,7 @@ export default defineComponent({
777
781
  h(VBinder, null, {
778
782
  default: () => [
779
783
  h(VTarget, null, {
780
- default: () => (h(NInternalSelection, { onResize: this.handleTriggerResize, ref: "triggerInstRef", status: this.mergedStatus, clsPrefix: mergedClsPrefix, maxTagCount: this.maxTagCount, bordered: this.mergedBordered, size: this.mergedSize, theme: this.mergedTheme.peers.InternalSelection, themeOverrides: this.mergedTheme.peerOverrides.InternalSelection, active: this.mergedShow, pattern: this.pattern, placeholder: this.localizedPlaceholder, selectedOption: this.selectedOption, selectedOptions: this.selectedOptions, multiple: this.multiple, filterable: this.filterable, clearable: this.clearable, disabled: this.mergedDisabled, focused: this.focused, onFocus: this.handleTriggerFocus, onBlur: this.handleTriggerBlur, onClick: this.handleTriggerClick, onClear: this.handleClear, onDeleteOption: this.handleDeleteOption, onPatternInput: this.handlePatternInput, onKeydown: this.handleKeyDown, onKeyup: this.handleKeyUp }))
784
+ default: () => (h(NInternalSelection, { onResize: this.handleTriggerResize, ref: "triggerInstRef", status: this.mergedStatus, clsPrefix: mergedClsPrefix, maxTagCount: this.maxTagCount, bordered: this.mergedBordered, size: this.mergedSize, theme: this.mergedTheme.peers.InternalSelection, themeOverrides: this.mergedTheme.peerOverrides.InternalSelection, active: this.mergedShow, pattern: this.pattern, placeholder: this.localizedPlaceholder, selectedOption: this.selectedOption, selectedOptions: this.selectedOptions, multiple: this.multiple, filterable: this.filterable, clearable: this.clearable, disabled: this.mergedDisabled, focused: this.focused, onFocus: this.handleTriggerFocus, onBlur: this.handleTriggerBlur, onClick: this.handleTriggerClick, onClear: this.handleClear, onDeleteOption: this.handleDeleteOption, onPatternInput: this.handlePatternInput, onKeydown: this.handleKeydown }))
781
785
  }),
782
786
  h(VFollower, { key: "cascaderMenu", ref: "cascaderMenuFollowerRef", show: this.mergedShow && !this.showSelectMenu, containerClass: this.namespace, placement: this.placement, width: !this.options.length ? 'target' : undefined, teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey, to: this.adjustedTo }, {
783
787
  default: () => {
@@ -787,7 +791,7 @@ export default defineComponent({
787
791
  return (h(CascaderMenu, Object.assign({}, menuProps, { ref: "cascaderMenuInstRef", class: [this.themeClass, menuProps === null || menuProps === void 0 ? void 0 : menuProps.class], value: this.mergedValue, show: this.mergedShow && !this.showSelectMenu, menuModel: this.menuModel, style: [
788
792
  this.cssVars,
789
793
  menuProps === null || menuProps === void 0 ? void 0 : menuProps.style
790
- ], onFocus: this.handleMenuFocus, onBlur: this.handleMenuBlur, onKeyup: this.handleMenuKeyUp, onMousedown: this.handleMenuMousedown, onTabout: this.handleMenuTabout }), {
794
+ ], onFocus: this.handleMenuFocus, onBlur: this.handleMenuBlur, onKeydown: this.handleMenuKeydown, onMousedown: this.handleMenuMousedown, onTabout: this.handleMenuTabout }), {
791
795
  action: () => { var _a, _b; return (_b = (_a = this.$slots).action) === null || _b === void 0 ? void 0 : _b.call(_a); },
792
796
  empty: () => { var _a, _b; return (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a); }
793
797
  }));
@@ -21,7 +21,7 @@ declare const _default: import("vue").DefineComponent<{
21
21
  type: PropType<(e: FocusEvent) => void>;
22
22
  required: true;
23
23
  };
24
- onKeyup: {
24
+ onKeydown: {
25
25
  type: PropType<(e: KeyboardEvent) => void>;
26
26
  required: true;
27
27
  };
@@ -416,7 +416,7 @@ declare const _default: import("vue").DefineComponent<{
416
416
  type: PropType<(e: FocusEvent) => void>;
417
417
  required: true;
418
418
  };
419
- onKeyup: {
419
+ onKeydown: {
420
420
  type: PropType<(e: KeyboardEvent) => void>;
421
421
  required: true;
422
422
  };
@@ -28,7 +28,7 @@ export default defineComponent({
28
28
  type: Function,
29
29
  required: true
30
30
  },
31
- onKeyup: {
31
+ onKeydown: {
32
32
  type: Function,
33
33
  required: true
34
34
  },
@@ -97,9 +97,7 @@ export default defineComponent({
97
97
  default: () => {
98
98
  if (!this.show)
99
99
  return null;
100
- return withDirectives(h("div", { tabindex: "0", ref: "selfElRef", class: `${mergedClsPrefix}-cascader-menu`, onMousedown: this.onMousedown, onFocusin: this.handleFocusin, onFocusout: this.handleFocusout, onKeyup: this.onKeyup, style: {
101
- '--n-col-count': this.menuModel.length
102
- } },
100
+ return withDirectives(h("div", { tabindex: "0", ref: "selfElRef", class: `${mergedClsPrefix}-cascader-menu`, onMousedown: this.onMousedown, onFocusin: this.handleFocusin, onFocusout: this.handleFocusout, onKeydown: this.onKeydown },
103
101
  this.menuModel[0].length ? (h("div", { class: `${mergedClsPrefix}-cascader-submenu-wrapper` },
104
102
  this.menuModel.map((submenuOptions, index) => (h(NCascaderSubmenu, { ref: ((instance) => {
105
103
  if (instance) {
@@ -32,7 +32,7 @@ function normalizeHexaUnit(value) {
32
32
  // 0 - 100%
33
33
  function normalizeAlphaUnit(value) {
34
34
  if (/^\d{1,3}\.?\d*%$/.test(value.trim())) {
35
- return Math.max(0, Math.min(parseInt(value), 100));
35
+ return Math.max(0, Math.min(parseInt(value) / 100, 100));
36
36
  }
37
37
  return false;
38
38
  }