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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
7
7
  const vue_1 = require("vue");
8
8
  const vooks_1 = require("vooks");
9
+ const popselect_1 = require("../../popselect");
9
10
  const select_1 = require("../../select");
10
11
  const input_1 = require("../../input");
11
12
  const _internal_1 = require("../../_internal");
@@ -79,8 +80,40 @@ exports.default = (0, vue_1.defineComponent)({
79
80
  return Math.max(pageCount, 1);
80
81
  return 1;
81
82
  });
82
- const showFastForwardRef = (0, vue_1.ref)(false);
83
- const showFastBackwardRef = (0, vue_1.ref)(false);
83
+ const fastForwardActiveRef = (0, vue_1.ref)(false);
84
+ const fastBackwardActiveRef = (0, vue_1.ref)(false);
85
+ const showFastForwardMenuRef = (0, vue_1.ref)(false);
86
+ const showFastBackwardMenuRef = (0, vue_1.ref)(false);
87
+ const handleFastForwardMouseenter = () => {
88
+ fastForwardActiveRef.value = true;
89
+ disableTransitionOneTick();
90
+ };
91
+ const handleFastForwardMouseleave = () => {
92
+ fastForwardActiveRef.value = false;
93
+ disableTransitionOneTick();
94
+ };
95
+ const handleFastBackwardMouseenter = () => {
96
+ fastBackwardActiveRef.value = true;
97
+ disableTransitionOneTick();
98
+ };
99
+ const handleFastBackwardMouseleave = () => {
100
+ fastBackwardActiveRef.value = false;
101
+ disableTransitionOneTick();
102
+ };
103
+ const handleMenuSelect = (value) => {
104
+ doUpdatePage(value);
105
+ };
106
+ const pageItemsInfo = (0, vue_1.computed)(() => (0, utils_1.createPageItemsInfo)(mergedPageRef.value, mergedPageCountRef.value, props.pageSlot));
107
+ (0, vue_1.watchEffect)(() => {
108
+ if (!pageItemsInfo.value.hasFastBackward) {
109
+ fastBackwardActiveRef.value = false;
110
+ showFastBackwardMenuRef.value = false;
111
+ }
112
+ else if (!pageItemsInfo.value.hasFastForward) {
113
+ fastForwardActiveRef.value = false;
114
+ showFastForwardMenuRef.value = false;
115
+ }
116
+ });
84
117
  const pageSizeOptionsRef = (0, vue_1.computed)(() => {
85
118
  const suffix = localeRef.value.selectionSuffix;
86
119
  return props.pageSizes.map((size) => {
@@ -180,13 +213,13 @@ exports.default = (0, vue_1.defineComponent)({
180
213
  function fastForward() {
181
214
  if (props.disabled)
182
215
  return;
183
- const page = Math.min(mergedPageRef.value + (props.pageSlot - 4), mergedPageCountRef.value);
216
+ const page = Math.min(pageItemsInfo.value.fastForwardTo, mergedPageCountRef.value);
184
217
  doUpdatePage(page);
185
218
  }
186
219
  function fastBackward() {
187
220
  if (props.disabled)
188
221
  return;
189
- const page = Math.max(mergedPageRef.value - (props.pageSlot - 4), 1);
222
+ const page = Math.max(pageItemsInfo.value.fastBackwardTo, 1);
190
223
  doUpdatePage(page);
191
224
  }
192
225
  function handleSizePickerChange(value) {
@@ -218,36 +251,6 @@ exports.default = (0, vue_1.defineComponent)({
218
251
  break;
219
252
  }
220
253
  }
221
- function handlePageItemMouseEnter(pageItem) {
222
- if (props.disabled)
223
- return;
224
- switch (pageItem.type) {
225
- case 'fast-backward':
226
- showFastBackwardRef.value = true;
227
- break;
228
- case 'fast-forward':
229
- showFastForwardRef.value = true;
230
- break;
231
- default:
232
- return;
233
- }
234
- disableTransitionOneTick();
235
- }
236
- function handlePageItemMouseLeave(pageItem) {
237
- if (props.disabled)
238
- return;
239
- switch (pageItem.type) {
240
- case 'fast-backward':
241
- showFastBackwardRef.value = false;
242
- break;
243
- case 'fast-forward':
244
- showFastForwardRef.value = false;
245
- break;
246
- default:
247
- return;
248
- }
249
- disableTransitionOneTick();
250
- }
251
254
  function handleJumperInput(value) {
252
255
  jumperValueRef.value = value.replace(/\D+/g, '');
253
256
  }
@@ -320,9 +323,9 @@ exports.default = (0, vue_1.defineComponent)({
320
323
  selfRef,
321
324
  jumperRef,
322
325
  mergedPage: mergedPageRef,
323
- showFastBackward: showFastBackwardRef,
324
- showFastForward: showFastForwardRef,
325
- pageItems: (0, vue_1.computed)(() => (0, utils_1.pageItems)(mergedPageRef.value, mergedPageCountRef.value, props.pageSlot)),
326
+ pageItems: (0, vue_1.computed)(() => {
327
+ return pageItemsInfo.value.items;
328
+ }),
326
329
  mergedItemCount: mergedItemCountRef,
327
330
  jumperValue: jumperValueRef,
328
331
  pageSizeOptions: pageSizeOptionsRef,
@@ -333,14 +336,21 @@ exports.default = (0, vue_1.defineComponent)({
333
336
  mergedPageCount: mergedPageCountRef,
334
337
  startIndex: startIndexRef,
335
338
  endIndex: endIndexRef,
339
+ showFastForwardMenu: showFastForwardMenuRef,
340
+ showFastBackwardMenu: showFastBackwardMenuRef,
341
+ fastForwardActive: fastForwardActiveRef,
342
+ fastBackwardActive: fastBackwardActiveRef,
343
+ handleMenuSelect,
344
+ handleFastForwardMouseenter,
345
+ handleFastForwardMouseleave,
346
+ handleFastBackwardMouseenter,
347
+ handleFastBackwardMouseleave,
336
348
  handleJumperInput,
337
349
  handleBackwardClick: backward,
338
350
  handleForwardClick: forward,
339
351
  handlePageItemClick,
340
352
  handleSizePickerChange,
341
353
  handleQuickJumperKeyUp,
342
- handlePageItemMouseEnter,
343
- handlePageItemMouseLeave,
344
354
  cssVars: inlineThemeDisabled ? undefined : cssVarsRef,
345
355
  themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass,
346
356
  onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender
@@ -348,7 +358,7 @@ exports.default = (0, vue_1.defineComponent)({
348
358
  },
349
359
  render() {
350
360
  // it's ok to expand all prop here since no slots' deps
351
- const { $slots, mergedClsPrefix, disabled, cssVars, mergedPage, mergedPageCount, pageItems, showFastBackward, showFastForward, showSizePicker, showQuickJumper, mergedTheme, locale, inputSize, selectSize, mergedPageSize, pageSizeOptions, jumperValue, prev, next, prefix, suffix, label, handleJumperInput, handleSizePickerChange, handleBackwardClick, handlePageItemClick, handlePageItemMouseEnter, handlePageItemMouseLeave, handleForwardClick, handleQuickJumperKeyUp, onRender } = this;
361
+ const { $slots, mergedClsPrefix, disabled, cssVars, mergedPage, mergedPageCount, pageItems, showSizePicker, showQuickJumper, mergedTheme, locale, inputSize, selectSize, mergedPageSize, pageSizeOptions, jumperValue, prev, next, prefix, suffix, label, handleJumperInput, handleSizePickerChange, handleBackwardClick, handlePageItemClick, handleForwardClick, handleQuickJumperKeyUp, onRender } = this;
352
362
  onRender === null || onRender === void 0 ? void 0 : onRender();
353
363
  const renderPrefix = $slots.prefix || prefix;
354
364
  const renderSuffix = $slots.suffix || suffix;
@@ -386,7 +396,10 @@ exports.default = (0, vue_1.defineComponent)({
386
396
  }))),
387
397
  pageItems.map((pageItem, index) => {
388
398
  let contentNode;
389
- switch (pageItem.type) {
399
+ let onMouseenter;
400
+ let onMouseleave;
401
+ const { type } = pageItem;
402
+ switch (type) {
390
403
  case 'page':
391
404
  // eslint-disable-next-line no-case-declarations
392
405
  const pageNode = pageItem.label;
@@ -403,44 +416,94 @@ exports.default = (0, vue_1.defineComponent)({
403
416
  break;
404
417
  case 'fast-forward':
405
418
  // eslint-disable-next-line no-case-declarations
406
- const fastForwardNode = showFastForward ? ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, {
419
+ const fastForwardNode = this.fastForwardActive ? ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, {
407
420
  default: () => this.rtlEnabled ? ((0, vue_1.h)(icons_1.FastBackwardIcon, null)) : ((0, vue_1.h)(icons_1.FastForwardIcon, null))
408
421
  })) : ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => (0, vue_1.h)(icons_1.MoreIcon, null) }));
409
422
  if (renderLabel) {
410
423
  contentNode = renderLabel({
411
424
  type: 'fast-forward',
412
425
  node: fastForwardNode,
413
- active: showFastForward
426
+ active: this.fastForwardActive || this.showFastForwardMenu
414
427
  });
415
428
  }
416
429
  else {
417
430
  contentNode = fastForwardNode;
418
431
  }
432
+ onMouseenter = this.handleFastForwardMouseenter;
433
+ onMouseleave = this.handleFastForwardMouseleave;
419
434
  break;
420
435
  case 'fast-backward':
421
436
  // eslint-disable-next-line no-case-declarations
422
- const fastBackwardNode = showFastBackward ? ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, {
437
+ const fastBackwardNode = this.fastBackwardActive ? ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, {
423
438
  default: () => this.rtlEnabled ? ((0, vue_1.h)(icons_1.FastForwardIcon, null)) : ((0, vue_1.h)(icons_1.FastBackwardIcon, null))
424
439
  })) : ((0, vue_1.h)(_internal_1.NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => (0, vue_1.h)(icons_1.MoreIcon, null) }));
425
440
  if (renderLabel) {
426
441
  contentNode = renderLabel({
427
442
  type: 'fast-backward',
428
443
  node: fastBackwardNode,
429
- active: showFastBackward
444
+ active: this.fastBackwardActive || this.showFastBackwardMenu
430
445
  });
431
446
  }
432
447
  else {
433
448
  contentNode = fastBackwardNode;
434
449
  }
450
+ onMouseenter = this.handleFastBackwardMouseenter;
451
+ onMouseleave = this.handleFastBackwardMouseleave;
435
452
  break;
436
453
  }
437
- return ((0, vue_1.h)("div", { key: index, class: [
454
+ const itemNode = ((0, vue_1.h)("div", { key: index, class: [
438
455
  `${mergedClsPrefix}-pagination-item`,
439
- {
440
- [`${mergedClsPrefix}-pagination-item--active`]: pageItem.active,
441
- [`${mergedClsPrefix}-pagination-item--disabled`]: disabled
442
- }
443
- ], onClick: () => handlePageItemClick(pageItem), onMouseenter: () => handlePageItemMouseEnter(pageItem), onMouseleave: () => handlePageItemMouseLeave(pageItem) }, contentNode));
456
+ pageItem.active && `${mergedClsPrefix}-pagination-item--active`,
457
+ type !== 'page' &&
458
+ ((type === 'fast-backward' && this.showFastBackwardMenu) ||
459
+ (type === 'fast-forward' && this.showFastForwardMenu)) &&
460
+ `${mergedClsPrefix}-pagination-item--hover`,
461
+ disabled && `${mergedClsPrefix}-pagination-item--disabled`,
462
+ type === 'page' &&
463
+ `${mergedClsPrefix}-pagination-item--clickable`
464
+ ], onClick: () => handlePageItemClick(pageItem), onMouseenter: onMouseenter, onMouseleave: onMouseleave }, contentNode));
465
+ if (type === 'page' &&
466
+ !pageItem.mayBeFastBackward &&
467
+ !pageItem.mayBeFastForward) {
468
+ return itemNode;
469
+ }
470
+ else {
471
+ const key = pageItem.type === 'page'
472
+ ? pageItem.mayBeFastBackward
473
+ ? 'fast-backward'
474
+ : 'fast-forward'
475
+ : pageItem.type;
476
+ return ((0, vue_1.h)(popselect_1.NPopselect, { key: key, trigger: "hover", virtualScroll: true, style: { width: '60px' }, theme: mergedTheme.peers.Popselect, themeOverrides: mergedTheme.peerOverrides.Popselect, builtinThemeOverrides: {
477
+ peers: {
478
+ InternalSelectMenu: {
479
+ height: 'calc(var(--n-option-height) * 4.6)'
480
+ }
481
+ }
482
+ }, nodeProps: () => ({
483
+ style: {
484
+ justifyContent: 'center'
485
+ }
486
+ }), show: type === 'page'
487
+ ? false
488
+ : type === 'fast-backward'
489
+ ? this.showFastBackwardMenu
490
+ : this.showFastForwardMenu, onUpdateShow: (value) => {
491
+ if (type === 'page')
492
+ return;
493
+ if (value) {
494
+ if (type === 'fast-backward') {
495
+ this.showFastBackwardMenu = value;
496
+ }
497
+ else {
498
+ this.showFastForwardMenu = value;
499
+ }
500
+ }
501
+ else {
502
+ this.showFastBackwardMenu = false;
503
+ this.showFastForwardMenu = false;
504
+ }
505
+ }, options: pageItem.type !== 'page' ? pageItem.options : [], onUpdateValue: this.handleMenuSelect, scrollable: true, internalShowCheckmark: false }, { default: () => itemNode }));
506
+ }
444
507
  }),
445
508
  (0, vue_1.h)("div", { class: [
446
509
  `${mergedClsPrefix}-pagination-item`,
@@ -1,4 +1,4 @@
1
- import { VNode, VNodeChild } from 'vue';
1
+ import { VNodeChild } from 'vue';
2
2
  import { SelectBaseOption } from '../../select/src/interface';
3
3
  export declare type Size = 'small' | 'medium' | 'large';
4
4
  export declare type PaginationInfo = Parameters<RenderPrefix>[0];
@@ -16,7 +16,7 @@ export declare type RenderNext = RenderPrefix;
16
16
  export declare type RenderPrev = RenderPrefix;
17
17
  export declare type PaginationRenderLabel = (info: {
18
18
  type: 'fast-backward' | 'fast-forward';
19
- node: VNode;
19
+ node: VNodeChild;
20
20
  active: boolean;
21
21
  } | {
22
22
  type: 'page';
@@ -4,7 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
 
7
- const cssr_1 = require("../../../_utils/cssr"); // vars:
7
+ const cssr_1 = require("../../../_utils/cssr");
8
+
9
+ const hoverStyleProps = `
10
+ background: var(--n-item-color-hover);
11
+ color: var(--n-item-text-color-hover);
12
+ border: var(--n-item-border-hover);
13
+ `;
14
+ const hoverStyleChildren = [(0, cssr_1.cM)('button', `
15
+ background: var(--n-button-color-hover);
16
+ border: var(--n-button-border-hover);
17
+ color: var(--n-button-icon-color-hover);
18
+ `)]; // vars:
8
19
  // --n-item-font-size
9
20
  // --n-select-width
10
21
  // --n-input-width
@@ -41,7 +52,6 @@ const cssr_1 = require("../../../_utils/cssr"); // vars:
41
52
  // --n-button-color-hover
42
53
  // --n-button-color-pressed
43
54
 
44
-
45
55
  exports.default = (0, cssr_1.cB)('pagination', `
46
56
  display: flex;
47
57
  vertical-align: middle;
@@ -97,15 +107,7 @@ exports.default = (0, cssr_1.cB)('pagination', `
97
107
  padding: 0;
98
108
  `, [(0, cssr_1.cB)('base-icon', `
99
109
  font-size: var(--n-button-icon-size);
100
- `)]), (0, cssr_1.cNotM)('disabled', [(0, cssr_1.c)('&:hover', `
101
- background: var(--n-item-color-hover);
102
- color: var(--n-item-text-color-hover);
103
- border: var(--n-item-border-hover);
104
- `, [(0, cssr_1.cM)('button', `
105
- background: var(--n-button-color-hover);
106
- border: var(--n-button-border-hover);
107
- color: var(--n-button-icon-color-hover);
108
- `)]), (0, cssr_1.c)('&:active', `
110
+ `)]), (0, cssr_1.cNotM)('disabled', [(0, cssr_1.cM)('hover', hoverStyleProps, hoverStyleChildren), (0, cssr_1.c)('&:hover', hoverStyleProps, hoverStyleChildren), (0, cssr_1.c)('&:active', `
109
111
  background: var(--n-item-color-pressed);
110
112
  color: var(--n-item-text-color-pressed);
111
113
  border: var(--n-item-border-pressed);
@@ -1,13 +1,23 @@
1
- declare function pagesToShow(currentPage: number, pageCount: number, pageSlot?: number): number[];
1
+ declare function createPageItemsInfo(currentPage: number, pageCount: number, pageSlot: number): {
2
+ hasFastBackward: boolean;
3
+ hasFastForward: boolean;
4
+ fastBackwardTo: number;
5
+ fastForwardTo: number;
6
+ items: PageItem[];
7
+ };
2
8
  export declare type PageItem = {
3
9
  type: 'fast-backward' | 'fast-forward';
4
- label?: undefined;
10
+ label: undefined;
5
11
  active: false;
12
+ options: Array<{
13
+ label: string;
14
+ value: number;
15
+ }>;
6
16
  } | {
7
17
  type: 'page';
8
18
  label: number;
9
19
  active: boolean;
20
+ mayBeFastForward: boolean;
21
+ mayBeFastBackward: boolean;
10
22
  };
11
- declare function mapPagesToPageItems(pages: number[], currentPage: number): PageItem[];
12
- declare function pageItems(currentPage: number, pageCount: number, pageSlot?: number): PageItem[];
13
- export { pagesToShow, mapPagesToPageItems, pageItems };
23
+ export { createPageItemsInfo };
@@ -1,11 +1,52 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pageItems = exports.mapPagesToPageItems = exports.pagesToShow = void 0;
4
- function pagesToShow(currentPage, pageCount, pageSlot = 9) {
5
- if (pageCount === 1)
6
- return [1];
7
- if (pageCount === 2)
8
- return [1, 2];
3
+ exports.createPageItemsInfo = void 0;
4
+ function createPageItemsInfo(currentPage, pageCount, pageSlot) {
5
+ let hasFastBackward = false;
6
+ let hasFastForward = false;
7
+ let fastBackwardTo = 1;
8
+ let fastForwardTo = pageCount;
9
+ if (pageCount === 1) {
10
+ return {
11
+ hasFastBackward: false,
12
+ hasFastForward: false,
13
+ fastForwardTo,
14
+ fastBackwardTo,
15
+ items: [
16
+ {
17
+ type: 'page',
18
+ label: 1,
19
+ active: currentPage === 1,
20
+ mayBeFastBackward: false,
21
+ mayBeFastForward: false
22
+ }
23
+ ]
24
+ };
25
+ }
26
+ if (pageCount === 2) {
27
+ return {
28
+ hasFastBackward: false,
29
+ hasFastForward: false,
30
+ fastForwardTo,
31
+ fastBackwardTo,
32
+ items: [
33
+ {
34
+ type: 'page',
35
+ label: 1,
36
+ active: currentPage === 1,
37
+ mayBeFastBackward: false,
38
+ mayBeFastForward: false
39
+ },
40
+ {
41
+ type: 'page',
42
+ label: 2,
43
+ active: currentPage === 2,
44
+ mayBeFastBackward: true,
45
+ mayBeFastForward: false
46
+ }
47
+ ]
48
+ };
49
+ }
9
50
  const firstPage = 1;
10
51
  const lastPage = pageCount;
11
52
  let middleStart = currentPage;
@@ -22,62 +63,86 @@ function pagesToShow(currentPage, pageCount, pageSlot = 9) {
22
63
  if (middleEnd < lastPage - 2)
23
64
  rightSplit = true;
24
65
  const items = [];
25
- items.push(firstPage);
66
+ items.push({
67
+ type: 'page',
68
+ label: 1,
69
+ active: currentPage === 1,
70
+ mayBeFastBackward: false,
71
+ mayBeFastForward: false
72
+ });
26
73
  if (leftSplit) {
27
- items.push(-2);
74
+ hasFastBackward = true;
75
+ fastBackwardTo = middleStart - 1;
76
+ items.push({
77
+ type: 'fast-backward',
78
+ active: false,
79
+ label: undefined,
80
+ options: createRange(firstPage + 1, middleStart - 1)
81
+ });
28
82
  }
29
83
  else if (lastPage >= firstPage + 1) {
30
- items.push(firstPage + 1);
84
+ items.push({
85
+ type: 'page',
86
+ label: firstPage + 1,
87
+ mayBeFastBackward: true,
88
+ mayBeFastForward: false,
89
+ active: currentPage === firstPage + 1
90
+ });
31
91
  }
32
92
  for (let i = middleStart; i <= middleEnd; ++i) {
33
- items.push(i);
93
+ items.push({
94
+ type: 'page',
95
+ label: i,
96
+ mayBeFastBackward: false,
97
+ mayBeFastForward: false,
98
+ active: currentPage === i
99
+ });
34
100
  }
35
101
  if (rightSplit) {
36
- items.push(-1);
102
+ hasFastForward = true;
103
+ fastForwardTo = middleEnd + 1;
104
+ items.push({
105
+ type: 'fast-forward',
106
+ active: false,
107
+ label: undefined,
108
+ options: createRange(middleEnd + 1, lastPage - 1)
109
+ });
37
110
  }
38
111
  else if (middleEnd === lastPage - 2 &&
39
- items[items.length - 1] !== lastPage - 1) {
40
- items.push(lastPage - 1);
112
+ items[items.length - 1].label !== lastPage - 1) {
113
+ items.push({
114
+ type: 'page',
115
+ mayBeFastForward: true,
116
+ mayBeFastBackward: false,
117
+ label: lastPage - 1,
118
+ active: currentPage === lastPage - 1
119
+ });
41
120
  }
42
- if (items[items.length - 1] !== lastPage)
43
- items.push(lastPage);
44
- return items;
45
- }
46
- exports.pagesToShow = pagesToShow;
47
- function mapPagesToPageItems(pages, currentPage) {
48
- return pages.map((page) => {
49
- switch (page) {
50
- case -2:
51
- return {
52
- type: 'fast-backward',
53
- active: false
54
- };
55
- case -1:
56
- return {
57
- type: 'fast-forward',
58
- active: false
59
- };
60
- default:
61
- if (page === currentPage) {
62
- return {
63
- type: 'page',
64
- label: page,
65
- active: true
66
- };
67
- }
68
- else {
69
- return {
70
- type: 'page',
71
- label: page,
72
- active: false
73
- };
74
- }
75
- }
76
- });
121
+ if (items[items.length - 1].label !== lastPage) {
122
+ items.push({
123
+ type: 'page',
124
+ mayBeFastForward: false,
125
+ mayBeFastBackward: false,
126
+ label: lastPage,
127
+ active: currentPage === lastPage
128
+ });
129
+ }
130
+ return {
131
+ hasFastBackward,
132
+ hasFastForward,
133
+ fastBackwardTo,
134
+ fastForwardTo,
135
+ items
136
+ };
77
137
  }
78
- exports.mapPagesToPageItems = mapPagesToPageItems;
79
- function pageItems(currentPage, pageCount, pageSlot) {
80
- const pages = pagesToShow(currentPage, pageCount, pageSlot);
81
- return mapPagesToPageItems(pages, currentPage);
138
+ exports.createPageItemsInfo = createPageItemsInfo;
139
+ function createRange(from, to) {
140
+ const range = [];
141
+ for (let i = from; i <= to; ++i) {
142
+ range.push({
143
+ label: `${i}`,
144
+ value: i
145
+ });
146
+ }
147
+ return range;
82
148
  }
83
- exports.pageItems = pageItems;
@@ -1,16 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const seemly_1 = require("seemly");
4
- const styles_1 = require("../../select/styles");
5
- const styles_2 = require("../../input/styles");
4
+ const styles_1 = require("../../popselect/styles");
5
+ const styles_2 = require("../../select/styles");
6
+ const styles_3 = require("../../input/styles");
6
7
  const common_1 = require("../../_styles/common");
7
8
  const light_1 = require("./light");
8
9
  const paginationDark = {
9
10
  name: 'Pagination',
10
11
  common: common_1.commonDark,
11
12
  peers: {
12
- Select: styles_1.selectDark,
13
- Input: styles_2.inputDark
13
+ Select: styles_2.selectDark,
14
+ Input: styles_3.inputDark,
15
+ Popselect: styles_1.popselectDark
14
16
  },
15
17
  self(vars) {
16
18
  const { primaryColor, opacity3 } = vars;
@@ -330,6 +330,77 @@ declare const paginationLight: import("../../_mixins").Theme<"Pagination", {
330
330
  paddingLarge: string;
331
331
  clearSize: string;
332
332
  }, any>;
333
+ Popselect: import("../../_mixins").Theme<"Popselect", {
334
+ menuBoxShadow: string;
335
+ }, {
336
+ Popover: import("../../_mixins").Theme<"Popover", {
337
+ fontSize: string;
338
+ borderRadius: string;
339
+ color: string;
340
+ dividerColor: string;
341
+ textColor: string;
342
+ boxShadow: string;
343
+ space: string;
344
+ spaceArrow: string;
345
+ arrowOffset: string;
346
+ arrowOffsetVertical: string;
347
+ arrowHeight: string;
348
+ padding: string;
349
+ }, any>;
350
+ InternalSelectMenu: import("../../_mixins").Theme<"InternalSelectMenu", {
351
+ optionFontSizeSmall: string;
352
+ optionFontSizeMedium: string;
353
+ optionFontSizeLarge: string;
354
+ optionFontSizeHuge: string;
355
+ optionHeightSmall: string;
356
+ optionHeightMedium: string;
357
+ optionHeightLarge: string;
358
+ optionHeightHuge: string;
359
+ borderRadius: string;
360
+ color: string;
361
+ groupHeaderTextColor: string;
362
+ actionDividerColor: string;
363
+ optionTextColor: string;
364
+ optionTextColorPressed: string;
365
+ optionTextColorDisabled: string;
366
+ optionTextColorActive: string;
367
+ optionOpacityDisabled: string;
368
+ optionCheckColor: string;
369
+ optionColorPending: string;
370
+ optionColorActive: string;
371
+ optionColorActivePending: string;
372
+ actionTextColor: string;
373
+ loadingColor: string;
374
+ height: string;
375
+ paddingSmall: string;
376
+ paddingMedium: string;
377
+ paddingLarge: string;
378
+ paddingHuge: string;
379
+ optionPaddingSmall: string;
380
+ optionPaddingMedium: string;
381
+ optionPaddingLarge: string;
382
+ optionPaddingHuge: string;
383
+ loadingSize: string;
384
+ }, {
385
+ Scrollbar: import("../../_mixins").Theme<"Scrollbar", {
386
+ color: string;
387
+ colorHover: string;
388
+ }, any>;
389
+ Empty: import("../../_mixins").Theme<"Empty", {
390
+ fontSizeSmall: string;
391
+ fontSizeMedium: string;
392
+ fontSizeLarge: string;
393
+ fontSizeHuge: string;
394
+ textColor: string;
395
+ iconColor: string;
396
+ extraTextColor: string;
397
+ iconSizeSmall: string;
398
+ iconSizeMedium: string;
399
+ iconSizeLarge: string;
400
+ iconSizeHuge: string;
401
+ }, any>;
402
+ }>;
403
+ }>;
333
404
  }>;
334
405
  export default paginationLight;
335
406
  export declare type PaginationTheme = typeof paginationLight;
@@ -4,8 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.self = void 0;
7
- const styles_1 = require("../../select/styles");
8
- const styles_2 = require("../../input/styles");
7
+ const styles_1 = require("../../popselect/styles");
8
+ const styles_2 = require("../../select/styles");
9
+ const styles_3 = require("../../input/styles");
9
10
  const common_1 = require("../../_styles/common");
10
11
  const _common_1 = __importDefault(require("./_common"));
11
12
  const _mixins_1 = require("../../_mixins");
@@ -22,8 +23,9 @@ const paginationLight = (0, _mixins_1.createTheme)({
22
23
  name: 'Pagination',
23
24
  common: common_1.commonLight,
24
25
  peers: {
25
- Select: styles_1.selectLight,
26
- Input: styles_2.inputLight
26
+ Select: styles_2.selectLight,
27
+ Input: styles_3.inputLight,
28
+ Popselect: styles_1.popselectLight
27
29
  },
28
30
  self: exports.self
29
31
  });