naive-ui 2.30.4 → 2.30.7

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 (192) hide show
  1. package/README.zh-CN.md +2 -2
  2. package/dist/index.js +2321 -1375
  3. package/dist/index.prod.js +2 -2
  4. package/es/_internal/close/src/Close.js +1 -1
  5. package/es/_internal/scrollbar/src/Scrollbar.js +1 -2
  6. package/es/_internal/selection/src/Selection.js +5 -3
  7. package/es/_utils/dom/index.d.ts +1 -0
  8. package/es/_utils/dom/index.js +1 -0
  9. package/es/_utils/dom/is-document.d.ts +1 -0
  10. package/es/_utils/dom/is-document.js +3 -0
  11. package/es/_utils/index.d.ts +2 -1
  12. package/es/_utils/index.js +2 -1
  13. package/es/_utils/vue/index.d.ts +2 -0
  14. package/es/_utils/vue/index.js +2 -0
  15. package/es/_utils/vue/is-node-v-show-false.d.ts +2 -0
  16. package/es/_utils/vue/is-node-v-show-false.js +6 -0
  17. package/es/{_internal/scrollbar/src/Wrapper.d.ts → _utils/vue/wrapper.d.ts} +0 -0
  18. package/es/{_internal/scrollbar/src/Wrapper.js → _utils/vue/wrapper.js} +0 -0
  19. package/es/back-top/src/BackTop.d.ts +1 -1
  20. package/es/back-top/src/BackTop.js +24 -31
  21. package/es/button/src/styles/index.cssr.js +3 -0
  22. package/es/color-picker/src/ColorInputUnit.js +1 -1
  23. package/es/data-table/src/DataTable.d.ts +5 -2
  24. package/es/data-table/src/DataTable.js +3 -2
  25. package/es/data-table/src/TableParts/Body.d.ts +1 -0
  26. package/es/data-table/src/TableParts/Body.js +5 -7
  27. package/es/data-table/src/TableParts/Cell.d.ts +11 -1
  28. package/es/data-table/src/TableParts/Cell.js +19 -6
  29. package/es/data-table/src/interface.d.ts +5 -2
  30. package/es/data-table/src/styles/index.cssr.js +7 -2
  31. package/es/data-table/src/use-check.js +11 -3
  32. package/es/date-picker/src/DatePicker.d.ts +40 -0
  33. package/es/date-picker/src/DatePicker.js +15 -3
  34. package/es/date-picker/src/config.d.ts +1 -1
  35. package/es/date-picker/src/panel/date.d.ts +4 -0
  36. package/es/date-picker/src/panel/daterange.d.ts +7 -1
  37. package/es/date-picker/src/panel/datetime.d.ts +4 -0
  38. package/es/date-picker/src/panel/datetimerange.d.ts +7 -1
  39. package/es/date-picker/src/panel/month.d.ts +4 -0
  40. package/es/date-picker/src/panel/monthrange.d.ts +11 -5
  41. package/es/date-picker/src/panel/monthrange.js +13 -7
  42. package/es/date-picker/src/panel/panelHeader.d.ts +8 -0
  43. package/es/date-picker/src/panel/use-calendar.d.ts +4 -0
  44. package/es/date-picker/src/panel/use-dual-calendar.d.ts +9 -3
  45. package/es/date-picker/src/panel/use-dual-calendar.js +26 -6
  46. package/es/date-picker/src/panel/use-panel-common.d.ts +4 -0
  47. package/es/date-picker/src/utils.d.ts +1 -1
  48. package/es/date-picker/src/utils.js +2 -2
  49. package/es/date-picker/styles/_common.d.ts +4 -0
  50. package/es/date-picker/styles/_common.js +5 -1
  51. package/es/date-picker/styles/light.d.ts +8 -0
  52. package/es/drawer/src/DrawerBodyWrapper.js +1 -1
  53. package/es/grid/src/Grid.d.ts +3 -0
  54. package/es/grid/src/Grid.js +47 -9
  55. package/es/grid/src/GridItem.js +2 -1
  56. package/es/image/src/Image.d.ts +10 -0
  57. package/es/image/src/Image.js +42 -8
  58. package/es/image/src/utils.d.ts +11 -0
  59. package/es/image/src/utils.js +81 -0
  60. package/es/input/src/styles/input-group-label.cssr.js +2 -0
  61. package/es/locales/common/viVN.d.ts +3 -0
  62. package/es/locales/common/viVN.js +113 -0
  63. package/es/locales/date/viVN.d.ts +3 -0
  64. package/es/locales/date/viVN.js +6 -0
  65. package/es/locales/index.d.ts +2 -0
  66. package/es/locales/index.js +2 -0
  67. package/es/modal/src/BodyWrapper.d.ts +13 -18
  68. package/es/modal/src/BodyWrapper.js +38 -33
  69. package/es/modal/src/Modal.js +12 -7
  70. package/es/modal/src/styles/index.cssr.js +1 -0
  71. package/es/notification/src/Notification.d.ts +3 -0
  72. package/es/notification/src/Notification.js +5 -2
  73. package/es/notification/src/NotificationContainer.d.ts +3 -0
  74. package/es/notification/src/NotificationProvider.d.ts +27 -0
  75. package/es/notification/src/styles/index.cssr.js +6 -3
  76. package/es/notification/styles/_common.d.ts +3 -0
  77. package/es/notification/styles/_common.js +4 -1
  78. package/es/notification/styles/light.d.ts +6 -0
  79. package/es/select/index.d.ts +1 -1
  80. package/es/select/src/Select.d.ts +4 -4
  81. package/es/select/src/Select.js +10 -1
  82. package/es/select/src/interface.d.ts +1 -0
  83. package/es/space/src/Space.d.ts +26 -0
  84. package/es/space/src/Space.js +53 -43
  85. package/es/tabs/src/Tabs.js +1 -1
  86. package/es/tooltip/index.d.ts +1 -1
  87. package/es/tree/src/Tree.d.ts +4 -3
  88. package/es/tree/src/Tree.js +2 -1
  89. package/es/tree/src/TreeNode.d.ts +1 -1
  90. package/es/tree/src/interface.d.ts +1 -1
  91. package/es/tree-select/index.d.ts +1 -1
  92. package/es/tree-select/src/TreeSelect.d.ts +27 -5
  93. package/es/tree-select/src/TreeSelect.js +19 -3
  94. package/es/tree-select/src/interface.d.ts +17 -1
  95. package/es/version.d.ts +1 -1
  96. package/es/version.js +1 -1
  97. package/lib/_internal/close/src/Close.js +1 -1
  98. package/lib/_internal/scrollbar/src/Scrollbar.js +2 -3
  99. package/lib/_internal/selection/src/Selection.js +4 -2
  100. package/lib/_utils/dom/index.d.ts +1 -0
  101. package/lib/_utils/dom/index.js +5 -0
  102. package/lib/_utils/dom/is-document.d.ts +1 -0
  103. package/lib/_utils/dom/is-document.js +7 -0
  104. package/lib/_utils/index.d.ts +2 -1
  105. package/lib/_utils/index.js +4 -1
  106. package/lib/_utils/vue/index.d.ts +2 -0
  107. package/lib/_utils/vue/index.js +5 -1
  108. package/lib/_utils/vue/is-node-v-show-false.d.ts +2 -0
  109. package/lib/_utils/vue/is-node-v-show-false.js +10 -0
  110. package/lib/{_internal/scrollbar/src/Wrapper.d.ts → _utils/vue/wrapper.d.ts} +0 -0
  111. package/lib/{_internal/scrollbar/src/Wrapper.js → _utils/vue/wrapper.js} +0 -0
  112. package/lib/back-top/src/BackTop.d.ts +1 -1
  113. package/lib/back-top/src/BackTop.js +23 -30
  114. package/lib/button/src/styles/index.cssr.js +3 -0
  115. package/lib/color-picker/src/ColorInputUnit.js +1 -1
  116. package/lib/data-table/src/DataTable.d.ts +5 -2
  117. package/lib/data-table/src/DataTable.js +3 -2
  118. package/lib/data-table/src/TableParts/Body.d.ts +1 -0
  119. package/lib/data-table/src/TableParts/Body.js +5 -7
  120. package/lib/data-table/src/TableParts/Cell.d.ts +11 -1
  121. package/lib/data-table/src/TableParts/Cell.js +19 -6
  122. package/lib/data-table/src/interface.d.ts +5 -2
  123. package/lib/data-table/src/styles/index.cssr.js +7 -2
  124. package/lib/data-table/src/use-check.js +11 -3
  125. package/lib/date-picker/src/DatePicker.d.ts +40 -0
  126. package/lib/date-picker/src/DatePicker.js +15 -3
  127. package/lib/date-picker/src/config.d.ts +1 -1
  128. package/lib/date-picker/src/panel/date.d.ts +4 -0
  129. package/lib/date-picker/src/panel/daterange.d.ts +7 -1
  130. package/lib/date-picker/src/panel/datetime.d.ts +4 -0
  131. package/lib/date-picker/src/panel/datetimerange.d.ts +7 -1
  132. package/lib/date-picker/src/panel/month.d.ts +4 -0
  133. package/lib/date-picker/src/panel/monthrange.d.ts +11 -5
  134. package/lib/date-picker/src/panel/monthrange.js +13 -7
  135. package/lib/date-picker/src/panel/panelHeader.d.ts +8 -0
  136. package/lib/date-picker/src/panel/use-calendar.d.ts +4 -0
  137. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +9 -3
  138. package/lib/date-picker/src/panel/use-dual-calendar.js +24 -4
  139. package/lib/date-picker/src/panel/use-panel-common.d.ts +4 -0
  140. package/lib/date-picker/src/utils.d.ts +1 -1
  141. package/lib/date-picker/src/utils.js +2 -2
  142. package/lib/date-picker/styles/_common.d.ts +4 -0
  143. package/lib/date-picker/styles/_common.js +5 -1
  144. package/lib/date-picker/styles/light.d.ts +8 -0
  145. package/lib/drawer/src/DrawerBodyWrapper.js +1 -1
  146. package/lib/grid/src/Grid.d.ts +3 -0
  147. package/lib/grid/src/Grid.js +45 -7
  148. package/lib/grid/src/GridItem.js +2 -1
  149. package/lib/image/src/Image.d.ts +10 -0
  150. package/lib/image/src/Image.js +41 -7
  151. package/lib/image/src/utils.d.ts +11 -0
  152. package/lib/image/src/utils.js +86 -0
  153. package/lib/input/src/styles/input-group-label.cssr.js +2 -0
  154. package/lib/locales/common/viVN.d.ts +3 -0
  155. package/lib/locales/common/viVN.js +115 -0
  156. package/lib/locales/date/viVN.d.ts +3 -0
  157. package/lib/locales/date/viVN.js +11 -0
  158. package/lib/locales/index.d.ts +2 -0
  159. package/lib/locales/index.js +5 -1
  160. package/lib/modal/src/BodyWrapper.d.ts +13 -18
  161. package/lib/modal/src/BodyWrapper.js +38 -33
  162. package/lib/modal/src/Modal.js +12 -7
  163. package/lib/modal/src/styles/index.cssr.js +1 -0
  164. package/lib/notification/src/Notification.d.ts +3 -0
  165. package/lib/notification/src/Notification.js +5 -2
  166. package/lib/notification/src/NotificationContainer.d.ts +3 -0
  167. package/lib/notification/src/NotificationProvider.d.ts +27 -0
  168. package/lib/notification/src/styles/index.cssr.js +6 -3
  169. package/lib/notification/styles/_common.d.ts +3 -0
  170. package/lib/notification/styles/_common.js +4 -1
  171. package/lib/notification/styles/light.d.ts +6 -0
  172. package/lib/select/index.d.ts +1 -1
  173. package/lib/select/src/Select.d.ts +4 -4
  174. package/lib/select/src/Select.js +10 -1
  175. package/lib/select/src/interface.d.ts +1 -0
  176. package/lib/space/src/Space.d.ts +26 -0
  177. package/lib/space/src/Space.js +53 -43
  178. package/lib/tabs/src/Tabs.js +1 -1
  179. package/lib/tooltip/index.d.ts +1 -1
  180. package/lib/tree/src/Tree.d.ts +4 -3
  181. package/lib/tree/src/Tree.js +2 -1
  182. package/lib/tree/src/TreeNode.d.ts +1 -1
  183. package/lib/tree/src/interface.d.ts +1 -1
  184. package/lib/tree-select/index.d.ts +1 -1
  185. package/lib/tree-select/src/TreeSelect.d.ts +27 -5
  186. package/lib/tree-select/src/TreeSelect.js +19 -3
  187. package/lib/tree-select/src/interface.d.ts +17 -1
  188. package/lib/version.d.ts +1 -1
  189. package/lib/version.js +1 -1
  190. package/package.json +2 -2
  191. package/volar.d.ts +0 -1
  192. package/web-types.json +100 -10
@@ -1,4 +1,4 @@
1
- export { call, keep, omit, flatten, getSlot, getVNodeChildren, keysOf, render, getFirstSlotVNode, createDataKey, createRefSetter, createInjectionKey, resolveSlot, resolveSlotWithProps, resolveWrappedSlot, isSlotEmpty, mergeEventHandlers } 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';
@@ -8,3 +8,4 @@ export { isJsdom } from './env/is-jsdom';
8
8
  export { isBrowser } from './env/is-browser';
9
9
  export { eventEffectNotPerformed, markEventEffectPerformed } from './event';
10
10
  export * from './composable';
11
+ export * from './dom';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.markEventEffectPerformed = exports.eventEffectNotPerformed = exports.isBrowser = exports.isJsdom = exports.createKey = exports.color2Class = exports.formatLength = exports.getTitleAttribute = exports.largerSize = exports.smallerSize = exports.throwError = exports.warnOnce = exports.warn = exports.mergeEventHandlers = exports.isSlotEmpty = exports.resolveWrappedSlot = exports.resolveSlotWithProps = exports.resolveSlot = exports.createInjectionKey = exports.createRefSetter = exports.createDataKey = exports.getFirstSlotVNode = exports.render = exports.keysOf = exports.getVNodeChildren = exports.getSlot = exports.flatten = exports.omit = exports.keep = exports.call = void 0;
17
+ exports.markEventEffectPerformed = exports.eventEffectNotPerformed = exports.isBrowser = exports.isJsdom = exports.createKey = exports.color2Class = exports.formatLength = exports.getTitleAttribute = exports.largerSize = exports.smallerSize = exports.throwError = exports.warnOnce = exports.warn = exports.Wrapper = exports.isNodeVShowFalse = exports.mergeEventHandlers = exports.isSlotEmpty = exports.resolveWrappedSlot = exports.resolveSlotWithProps = exports.resolveSlot = exports.createInjectionKey = exports.createRefSetter = exports.createDataKey = exports.getFirstSlotVNode = exports.render = exports.keysOf = exports.getVNodeChildren = exports.getSlot = exports.flatten = exports.omit = exports.keep = exports.call = void 0;
18
18
  var vue_1 = require("./vue");
19
19
  Object.defineProperty(exports, "call", { enumerable: true, get: function () { return vue_1.call; } });
20
20
  Object.defineProperty(exports, "keep", { enumerable: true, get: function () { return vue_1.keep; } });
@@ -33,6 +33,8 @@ Object.defineProperty(exports, "resolveSlotWithProps", { enumerable: true, get:
33
33
  Object.defineProperty(exports, "resolveWrappedSlot", { enumerable: true, get: function () { return vue_1.resolveWrappedSlot; } });
34
34
  Object.defineProperty(exports, "isSlotEmpty", { enumerable: true, get: function () { return vue_1.isSlotEmpty; } });
35
35
  Object.defineProperty(exports, "mergeEventHandlers", { enumerable: true, get: function () { return vue_1.mergeEventHandlers; } });
36
+ Object.defineProperty(exports, "isNodeVShowFalse", { enumerable: true, get: function () { return vue_1.isNodeVShowFalse; } });
37
+ Object.defineProperty(exports, "Wrapper", { enumerable: true, get: function () { return vue_1.Wrapper; } });
36
38
  var naive_1 = require("./naive");
37
39
  Object.defineProperty(exports, "warn", { enumerable: true, get: function () { return naive_1.warn; } });
38
40
  Object.defineProperty(exports, "warnOnce", { enumerable: true, get: function () { return naive_1.warnOnce; } });
@@ -53,3 +55,4 @@ var event_1 = require("./event");
53
55
  Object.defineProperty(exports, "eventEffectNotPerformed", { enumerable: true, get: function () { return event_1.eventEffectNotPerformed; } });
54
56
  Object.defineProperty(exports, "markEventEffectPerformed", { enumerable: true, get: function () { return event_1.markEventEffectPerformed; } });
55
57
  __exportStar(require("./composable"), exports);
58
+ __exportStar(require("./dom"), exports);
@@ -13,3 +13,5 @@ export { createInjectionKey } from './create-injection-key';
13
13
  export { resolveSlot, resolveWrappedSlot, resolveSlotWithProps, isSlotEmpty } from './resolve-slot';
14
14
  export type { MaybeArray } from './call';
15
15
  export { mergeEventHandlers } from './merge-handlers';
16
+ export { isNodeVShowFalse } from './is-node-v-show-false';
17
+ export { Wrapper } from './wrapper';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeEventHandlers = exports.isSlotEmpty = exports.resolveSlotWithProps = exports.resolveWrappedSlot = exports.resolveSlot = exports.createInjectionKey = exports.createRefSetter = exports.createDataKey = exports.getFirstSlotVNode = exports.render = exports.keysOf = exports.call = exports.flatten = exports.omit = exports.keep = exports.getVNodeChildren = exports.getSlot = void 0;
3
+ exports.Wrapper = exports.isNodeVShowFalse = exports.mergeEventHandlers = exports.isSlotEmpty = exports.resolveSlotWithProps = exports.resolveWrappedSlot = exports.resolveSlot = exports.createInjectionKey = exports.createRefSetter = exports.createDataKey = exports.getFirstSlotVNode = exports.render = exports.keysOf = exports.call = exports.flatten = exports.omit = exports.keep = exports.getVNodeChildren = exports.getSlot = void 0;
4
4
  var get_slot_1 = require("./get-slot");
5
5
  Object.defineProperty(exports, "getSlot", { enumerable: true, get: function () { return get_slot_1.getSlot; } });
6
6
  var get_v_node_children_1 = require("./get-v-node-children");
@@ -32,3 +32,7 @@ Object.defineProperty(exports, "resolveSlotWithProps", { enumerable: true, get:
32
32
  Object.defineProperty(exports, "isSlotEmpty", { enumerable: true, get: function () { return resolve_slot_1.isSlotEmpty; } });
33
33
  var merge_handlers_1 = require("./merge-handlers");
34
34
  Object.defineProperty(exports, "mergeEventHandlers", { enumerable: true, get: function () { return merge_handlers_1.mergeEventHandlers; } });
35
+ var is_node_v_show_false_1 = require("./is-node-v-show-false");
36
+ Object.defineProperty(exports, "isNodeVShowFalse", { enumerable: true, get: function () { return is_node_v_show_false_1.isNodeVShowFalse; } });
37
+ var wrapper_1 = require("./wrapper");
38
+ Object.defineProperty(exports, "Wrapper", { enumerable: true, get: function () { return wrapper_1.Wrapper; } });
@@ -0,0 +1,2 @@
1
+ import { VNode } from 'vue';
2
+ export declare function isNodeVShowFalse(vNode: VNode): boolean;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNodeVShowFalse = void 0;
4
+ const vue_1 = require("vue");
5
+ function isNodeVShowFalse(vNode) {
6
+ var _a;
7
+ const showDir = (_a = vNode.dirs) === null || _a === void 0 ? void 0 : _a.find(({ dir }) => dir === vue_1.vShow);
8
+ return !!(showDir && showDir.value === false);
9
+ }
10
+ exports.isNodeVShowFalse = isNodeVShowFalse;
@@ -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;
@@ -55,15 +55,20 @@ exports.default = (0, vue_1.defineComponent)({
55
55
  }
56
56
  const { mergedClsPrefixRef, inlineThemeDisabled } = (0, _mixins_1.useConfig)(props);
57
57
  const scrollTopRef = (0, vue_1.ref)(null);
58
- const uncontrolledShowRef = (0, vue_1.computed)(() => {
59
- if (scrollTopRef.value === null)
60
- return false;
61
- return scrollTopRef.value >= props.visibilityHeight;
58
+ const uncontrolledShowRef = (0, vue_1.ref)(false);
59
+ (0, vue_1.watchEffect)(() => {
60
+ const { value: scrollTop } = scrollTopRef;
61
+ if (scrollTop === null) {
62
+ uncontrolledShowRef.value = false;
63
+ return;
64
+ }
65
+ uncontrolledShowRef.value = scrollTop >= props.visibilityHeight;
62
66
  });
63
67
  const DomInfoReadyRef = (0, vue_1.ref)(false);
64
68
  (0, vue_1.watch)(uncontrolledShowRef, (value) => {
69
+ var _a;
65
70
  if (DomInfoReadyRef.value) {
66
- props['onUpdate:show'](value);
71
+ (_a = props['onUpdate:show']) === null || _a === void 0 ? void 0 : _a.call(props, value);
67
72
  }
68
73
  });
69
74
  const controlledShowRef = (0, vue_1.toRef)(props, 'show');
@@ -103,39 +108,27 @@ exports.default = (0, vue_1.defineComponent)({
103
108
  }
104
109
  return;
105
110
  }
106
- scrollElement = scrollEl;
111
+ scrollElement =
112
+ scrollEl === document.documentElement ? document : scrollEl;
107
113
  const { to } = props;
108
114
  const target = typeof to === 'string' ? document.querySelector(to) : to;
109
115
  if (process.env.NODE_ENV !== 'production' && !target) {
110
116
  (0, _utils_1.warn)('back-top', 'Target is not found.');
111
117
  }
112
- if (scrollEl) {
113
- scrollEl.addEventListener('scroll', handleScroll);
114
- handleScroll();
115
- }
118
+ scrollElement.addEventListener('scroll', handleScroll);
119
+ handleScroll();
116
120
  }
117
- function handleClick(e) {
118
- if (scrollElement.nodeName === '#document') {
119
- ;
120
- scrollElement.documentElement.scrollTo({
121
- top: 0,
122
- behavior: 'smooth'
123
- });
124
- }
125
- else {
126
- scrollElement.scrollTo({
127
- top: 0,
128
- behavior: 'smooth'
129
- });
130
- }
121
+ function handleClick() {
122
+ ;
123
+ ((0, _utils_1.isDocument)(scrollElement)
124
+ ? document.documentElement
125
+ : scrollElement).scrollTo({
126
+ top: 0,
127
+ behavior: 'smooth'
128
+ });
131
129
  }
132
130
  function handleScroll() {
133
- if (scrollElement.nodeName === '#document') {
134
- scrollTopRef.value = scrollElement.documentElement.scrollTop;
135
- }
136
- else {
137
- scrollTopRef.value = scrollElement.scrollTop;
138
- }
131
+ scrollTopRef.value = ((0, _utils_1.isDocument)(scrollElement) ? document.documentElement : scrollElement).scrollTop;
139
132
  if (!DomInfoReadyRef.value) {
140
133
  void (0, vue_1.nextTick)(() => {
141
134
  DomInfoReadyRef.value = true;
@@ -159,6 +159,8 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('button', `
159
159
  top: 50%;
160
160
  transform: translateY(-50%);
161
161
  display: flex;
162
+ align-items: center;
163
+ justify-content: center;
162
164
  `, [(0, icon_switch_cssr_1.iconSwitchTransition)({
163
165
  top: '50%',
164
166
  originalTransform: 'translateY(-50%)'
@@ -166,6 +168,7 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('button', `
166
168
  display: flex;
167
169
  align-items: center;
168
170
  flex-wrap: nowrap;
171
+ min-width: 0;
169
172
  `, [(0, cssr_1.c)('~', [(0, cssr_1.cE)('icon', {
170
173
  margin: 'var(--n-icon-margin)',
171
174
  marginRight: 0
@@ -34,7 +34,7 @@ function normalizeHexaUnit(value) {
34
34
  // 0 - 100%
35
35
  function normalizeAlphaUnit(value) {
36
36
  if (/^\d{1,3}\.?\d*%$/.test(value.trim())) {
37
- return Math.max(0, Math.min(parseInt(value), 100));
37
+ return Math.max(0, Math.min(parseInt(value) / 100, 100));
38
38
  }
39
39
  return false;
40
40
  }
@@ -1,7 +1,7 @@
1
- import { PropType, ExtractPropTypes } from 'vue';
1
+ import { PropType, ExtractPropTypes, VNodeChild } from 'vue';
2
2
  import type { PaginationProps } from '../../pagination';
3
3
  import type { MaybeArray, ExtractPublicPropTypes } from '../../_utils';
4
- import type { CreateRowClassName, CreateRowKey, OnUpdateCheckedRowKeys, OnUpdateSorter, RowKey, TableColumns, RowData, OnUpdateFilters, OnUpdateExpandedRowKeys, CreateSummary, CreateRowProps, DataTableOnLoad } from './interface';
4
+ import type { CreateRowClassName, CreateRowKey, OnUpdateCheckedRowKeys, OnUpdateSorter, RowKey, TableColumns, RowData, OnUpdateFilters, OnUpdateExpandedRowKeys, CreateSummary, CreateRowProps, DataTableOnLoad, TableBaseColumn } from './interface';
5
5
  export declare const dataTableProps: {
6
6
  readonly pagination: {
7
7
  readonly type: PropType<false | PaginationProps>;
@@ -80,6 +80,7 @@ export declare const dataTableProps: {
80
80
  readonly type: PropType<"first" | "current">;
81
81
  readonly default: "current";
82
82
  };
83
+ readonly renderCell: PropType<(value: any, rowData: object, column: TableBaseColumn) => VNodeChild>;
83
84
  readonly onLoad: PropType<DataTableOnLoad>;
84
85
  readonly 'onUpdate:page': PropType<MaybeArray<(page: number) => void> | undefined>;
85
86
  readonly onUpdatePage: PropType<MaybeArray<(page: number) => void> | undefined>;
@@ -2295,6 +2296,7 @@ declare const _default: import("vue").DefineComponent<{
2295
2296
  readonly type: PropType<"first" | "current">;
2296
2297
  readonly default: "current";
2297
2298
  };
2299
+ readonly renderCell: PropType<(value: any, rowData: object, column: TableBaseColumn<import("./interface").InternalRowData>) => VNodeChild>;
2298
2300
  readonly onLoad: PropType<DataTableOnLoad>;
2299
2301
  readonly 'onUpdate:page': PropType<MaybeArray<(page: number) => void> | undefined>;
2300
2302
  readonly onUpdatePage: PropType<MaybeArray<(page: number) => void> | undefined>;
@@ -5702,6 +5704,7 @@ declare const _default: import("vue").DefineComponent<{
5702
5704
  readonly type: PropType<"first" | "current">;
5703
5705
  readonly default: "current";
5704
5706
  };
5707
+ readonly renderCell: PropType<(value: any, rowData: object, column: TableBaseColumn<import("./interface").InternalRowData>) => VNodeChild>;
5705
5708
  readonly onLoad: PropType<DataTableOnLoad>;
5706
5709
  readonly 'onUpdate:page': PropType<MaybeArray<(page: number) => void> | undefined>;
5707
5710
  readonly onUpdatePage: PropType<MaybeArray<(page: number) => void> | undefined>;
@@ -66,7 +66,7 @@ exports.dataTableProps = Object.assign(Object.assign({}, _mixins_1.useTheme.prop
66
66
  }, flexHeight: Boolean, paginationBehaviorOnFilter: {
67
67
  type: String,
68
68
  default: 'current'
69
- }, onLoad: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], 'onUpdate:sorter': [Function, Array], onUpdateSorter: [Function, Array], 'onUpdate:filters': [Function, Array], onUpdateFilters: [Function, Array], 'onUpdate:checkedRowKeys': [Function, Array], onUpdateCheckedRowKeys: [Function, Array], 'onUpdate:expandedRowKeys': [Function, Array], onUpdateExpandedRowKeys: [Function, Array], onScroll: Function,
69
+ }, renderCell: Function, onLoad: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array], 'onUpdate:sorter': [Function, Array], onUpdateSorter: [Function, Array], 'onUpdate:filters': [Function, Array], onUpdateFilters: [Function, Array], 'onUpdate:checkedRowKeys': [Function, Array], onUpdateCheckedRowKeys: [Function, Array], 'onUpdate:expandedRowKeys': [Function, Array], onUpdateExpandedRowKeys: [Function, Array], onScroll: Function,
70
70
  // deprecated
71
71
  onPageChange: [Function, Array], onPageSizeChange: [Function, Array], onSorterChange: [Function, Array], onFiltersChange: [Function, Array], onCheckedRowKeysChange: [Function, Array] });
72
72
  exports.default = (0, vue_1.defineComponent)({
@@ -210,7 +210,8 @@ exports.default = (0, vue_1.defineComponent)({
210
210
  doUpdateExpandedRowKeys,
211
211
  handleTableHeaderScroll,
212
212
  handleTableBodyScroll,
213
- setHeaderScrollLeft
213
+ setHeaderScrollLeft,
214
+ renderCell: (0, vue_1.toRef)(props, 'renderCell')
214
215
  });
215
216
  const exposedMethods = {
216
217
  filter,
@@ -1213,6 +1213,7 @@ declare const _default: import("vue").DefineComponent<{
1213
1213
  key: RowKey;
1214
1214
  }, checked: boolean, shiftKey: boolean) => void;
1215
1215
  handleUpdateExpanded: (key: RowKey, tmNode: TmNode | null) => void;
1216
+ renderCell: import("vue").Ref<((value: any, rowData: object, column: import("../interface").TableBaseColumn<import("../interface").InternalRowData>) => import("vue").VNodeChild) | undefined>;
1216
1217
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1217
1218
  onResize: PropType<(e: ResizeObserverEntry) => void>;
1218
1219
  showHeader: BooleanConstructor;
@@ -82,7 +82,7 @@ exports.default = (0, vue_1.defineComponent)({
82
82
  bodyStyle: Object
83
83
  },
84
84
  setup(props) {
85
- const { slots: dataTableSlots, mergedExpandedRowKeysRef, mergedClsPrefixRef, mergedThemeRef, scrollXRef, colsRef, paginatedDataRef, rawPaginatedDataRef, fixedColumnLeftMapRef, fixedColumnRightMapRef, mergedCurrentPageRef, rowClassNameRef, leftActiveFixedColKeyRef, leftActiveFixedChildrenColKeysRef, rightActiveFixedColKeyRef, rightActiveFixedChildrenColKeysRef, renderExpandRef, hoverKeyRef, summaryRef, mergedSortStateRef, virtualScrollRef, componentId, scrollPartRef, mergedTableLayoutRef, childTriggerColIndexRef, indentRef, rowPropsRef, maxHeightRef, stripedRef, loadingRef, onLoadRef, loadingKeySetRef, setHeaderScrollLeft, doUpdateExpandedRowKeys, handleTableBodyScroll, doCheck, doUncheck
85
+ const { slots: dataTableSlots, mergedExpandedRowKeysRef, mergedClsPrefixRef, mergedThemeRef, scrollXRef, colsRef, paginatedDataRef, rawPaginatedDataRef, fixedColumnLeftMapRef, fixedColumnRightMapRef, mergedCurrentPageRef, rowClassNameRef, leftActiveFixedColKeyRef, leftActiveFixedChildrenColKeysRef, rightActiveFixedColKeyRef, rightActiveFixedChildrenColKeysRef, renderExpandRef, hoverKeyRef, summaryRef, mergedSortStateRef, virtualScrollRef, componentId, scrollPartRef, mergedTableLayoutRef, childTriggerColIndexRef, indentRef, rowPropsRef, maxHeightRef, stripedRef, loadingRef, onLoadRef, loadingKeySetRef, setHeaderScrollLeft, doUpdateExpandedRowKeys, handleTableBodyScroll, doCheck, doUncheck, renderCell
86
86
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
87
87
  } = (0, vue_1.inject)(interface_1.dataTableInjectionKey);
88
88
  const scrollbarInstRef = (0, vue_1.ref)(null);
@@ -313,7 +313,8 @@ exports.default = (0, vue_1.defineComponent)({
313
313
  virtualListContent,
314
314
  handleTableBodyScroll,
315
315
  handleCheckboxUpdateChecked,
316
- handleUpdateExpanded }, exposedMethods);
316
+ handleUpdateExpanded,
317
+ renderCell }, exposedMethods);
317
318
  },
318
319
  render() {
319
320
  const { mergedTheme, scrollX, mergedClsPrefix, virtualScroll, maxHeight, mergedTableLayout, flexHeight, loadingKeySet, onResize, setHeaderScrollLeft } = this;
@@ -474,7 +475,7 @@ exports.default = (0, vue_1.defineComponent)({
474
475
  }
475
476
  }
476
477
  const hoverKey = isCrossRowTd ? this.hoverKey : null;
477
- const { ellipsis, cellProps } = column;
478
+ const { cellProps } = column;
478
479
  const resolvedCellProps = cellProps === null || cellProps === void 0 ? void 0 : cellProps(rowData, rowIndex);
479
480
  return ((0, vue_1.h)("td", Object.assign({}, resolvedCellProps, { key: colKey, style: [
480
481
  {
@@ -498,9 +499,6 @@ exports.default = (0, vue_1.defineComponent)({
498
499
  column.align &&
499
500
  `${mergedClsPrefix}-data-table-td--${column.align}-align`,
500
501
  {
501
- [`${mergedClsPrefix}-data-table-td--ellipsis`]: ellipsis === true ||
502
- // don't add ellipsis class if tooltip exists
503
- (ellipsis && !ellipsis.tooltip),
504
502
  [`${mergedClsPrefix}-data-table-td--selection`]: column.type === 'selection',
505
503
  [`${mergedClsPrefix}-data-table-td--expand`]: column.type === 'expand',
506
504
  [`${mergedClsPrefix}-data-table-td--last-col`]: isLastCol,
@@ -516,7 +514,7 @@ exports.default = (0, vue_1.defineComponent)({
516
514
  ]
517
515
  : null,
518
516
  column.type === 'selection' ? (!isSummary ? ((0, vue_1.h)(BodyCheckbox_1.default, { key: currentPage, rowKey: rowKey, disabled: rowInfo.tmNode.disabled, onUpdateChecked: (checked, e) => handleCheckboxUpdateChecked(rowInfo.tmNode, checked, e.shiftKey) })) : null) : column.type === 'expand' ? (!isSummary ? (!column.expandable ||
519
- ((_e = column.expandable) === null || _e === void 0 ? void 0 : _e.call(column, rowData)) ? ((0, vue_1.h)(ExpandTrigger_1.default, { clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => handleUpdateExpanded(rowKey, null) })) : null) : null) : ((0, vue_1.h)(Cell_1.default, { index: rowIndex, row: rowData, column: column, isSummary: isSummary, mergedTheme: mergedTheme }))));
517
+ ((_e = column.expandable) === null || _e === void 0 ? void 0 : _e.call(column, rowData)) ? ((0, vue_1.h)(ExpandTrigger_1.default, { clsPrefix: mergedClsPrefix, expanded: expanded, onClick: () => handleUpdateExpanded(rowKey, null) })) : null) : null) : ((0, vue_1.h)(Cell_1.default, { clsPrefix: mergedClsPrefix, index: rowIndex, row: rowData, column: column, isSummary: isSummary, mergedTheme: mergedTheme, renderCell: this.renderCell }))));
520
518
  })));
521
519
  return row;
522
520
  };
@@ -1,6 +1,10 @@
1
- import { PropType } from 'vue';
1
+ import { PropType, VNodeChild } from 'vue';
2
2
  import { TableBaseColumn, InternalRowData } from '../interface';
3
3
  declare const _default: import("vue").DefineComponent<{
4
+ clsPrefix: {
5
+ type: StringConstructor;
6
+ required: true;
7
+ };
4
8
  row: {
5
9
  type: PropType<InternalRowData>;
6
10
  required: true;
@@ -1149,7 +1153,12 @@ declare const _default: import("vue").DefineComponent<{
1149
1153
  }>;
1150
1154
  required: true;
1151
1155
  };
1156
+ renderCell: PropType<(value: any, rowData: object, column: any) => VNodeChild>;
1152
1157
  }, unknown, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
1158
+ clsPrefix: {
1159
+ type: StringConstructor;
1160
+ required: true;
1161
+ };
1153
1162
  row: {
1154
1163
  type: PropType<InternalRowData>;
1155
1164
  required: true;
@@ -2298,6 +2307,7 @@ declare const _default: import("vue").DefineComponent<{
2298
2307
  }>;
2299
2308
  required: true;
2300
2309
  };
2310
+ renderCell: PropType<(value: any, rowData: object, column: any) => VNodeChild>;
2301
2311
  }>>, {
2302
2312
  isSummary: boolean;
2303
2313
  }>;
@@ -6,6 +6,10 @@ const ellipsis_1 = require("../../../ellipsis");
6
6
  exports.default = (0, vue_1.defineComponent)({
7
7
  name: 'DataTableCell',
8
8
  props: {
9
+ clsPrefix: {
10
+ type: String,
11
+ required: true
12
+ },
9
13
  row: {
10
14
  type: Object,
11
15
  required: true
@@ -22,11 +26,13 @@ exports.default = (0, vue_1.defineComponent)({
22
26
  mergedTheme: {
23
27
  type: Object,
24
28
  required: true
25
- }
29
+ },
30
+ renderCell: Function
26
31
  },
27
32
  render() {
28
- const { isSummary, column: { render, key, ellipsis }, row } = this;
33
+ const { isSummary, column, row, renderCell } = this;
29
34
  let cell;
35
+ const { render, key, ellipsis } = column;
30
36
  if (render && !isSummary) {
31
37
  cell = render(row, this.index);
32
38
  }
@@ -35,12 +41,19 @@ exports.default = (0, vue_1.defineComponent)({
35
41
  cell = row[key].value;
36
42
  }
37
43
  else {
38
- cell = (0, lodash_1.get)(row, key);
44
+ cell = renderCell
45
+ ? renderCell((0, lodash_1.get)(row, key), row, column)
46
+ : (0, lodash_1.get)(row, key);
39
47
  }
40
48
  }
41
- if (ellipsis && typeof ellipsis === 'object') {
42
- const { mergedTheme } = this;
43
- return ((0, vue_1.h)(ellipsis_1.NEllipsis, Object.assign({}, ellipsis, { theme: mergedTheme.peers.Ellipsis, themeOverrides: mergedTheme.peerOverrides.Ellipsis }), { default: () => cell }));
49
+ if (ellipsis) {
50
+ if (typeof ellipsis === 'object') {
51
+ const { mergedTheme } = this;
52
+ return ((0, vue_1.h)(ellipsis_1.NEllipsis, Object.assign({}, ellipsis, { theme: mergedTheme.peers.Ellipsis, themeOverrides: mergedTheme.peerOverrides.Ellipsis }), { default: () => cell }));
53
+ }
54
+ else {
55
+ return ((0, vue_1.h)("span", { class: `${this.clsPrefix}-data-table-td__ellipsis` }, cell));
56
+ }
44
57
  }
45
58
  return cell;
46
59
  }
@@ -32,7 +32,9 @@ export interface FilterOption {
32
32
  }
33
33
  export declare type TmNode = TreeNode<InternalRowData>;
34
34
  export declare type SortOrder = 'ascend' | 'descend' | false;
35
- export declare type Ellipsis = boolean | EllipsisProps;
35
+ export declare type Ellipsis = boolean | (EllipsisProps & {
36
+ style?: CSSProperties;
37
+ });
36
38
  export interface CommonColumnInfo<T = InternalRowData> {
37
39
  fixed?: 'left' | 'right';
38
40
  width?: number | string;
@@ -173,6 +175,7 @@ export interface DataTableInjection {
173
175
  handleTableBodyScroll: (e: Event) => void;
174
176
  syncScrollState: (deltaX?: number, deltaY?: number) => void;
175
177
  setHeaderScrollLeft: (scrollLeft: number) => void;
178
+ renderCell: Ref<undefined | ((value: any, rowData: object, column: TableBaseColumn) => VNodeChild)>;
176
179
  }
177
180
  export declare const dataTableInjectionKey: import("vue").InjectionKey<DataTableInjection>;
178
181
  export interface MainTableInjection {
@@ -192,7 +195,7 @@ export declare type RenderFilterMenu = (actions: {
192
195
  hide: () => void;
193
196
  }) => VNodeChild;
194
197
  export declare type OnUpdateExpandedRowKeys = (keys: RowKey[]) => void;
195
- export declare type OnUpdateCheckedRowKeys = (keys: RowKey[]) => void;
198
+ export declare type OnUpdateCheckedRowKeys = (keys: RowKey[], row: InternalRowData[]) => void;
196
199
  export declare type OnUpdateSorter = (sortState: SortState & SortState[] & null) => void;
197
200
  export declare type OnUpdateSorterImpl = (sortState: SortState | SortState[] | null) => void;
198
201
  export declare type OnUpdateFilters = (filterState: FilterState, sourceColumn: TableBaseColumn) => void;
@@ -211,7 +211,9 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('data-table', `
211
211
  background-color .3s var(--n-bezier),
212
212
  border-color .3s var(--n-bezier),
213
213
  color .3s var(--n-bezier);
214
- `, [(0, cssr_1.cM)('last-row', {
214
+ `, [(0, cssr_1.cM)('expand', [(0, cssr_1.cB)('data-table-expand-trigger', `
215
+ margin-right: 0;
216
+ `)]), (0, cssr_1.cM)('last-row', {
215
217
  borderBottom: '0 solid var(--n-merged-border-color)'
216
218
  }, [// make sure there is no overlap between bottom border and
217
219
  // fixed column box shadow
@@ -223,10 +225,13 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('data-table', `
223
225
  background-color: var(--n-merged-th-color);
224
226
  `), (0, cssr_1.cM)('hover', {
225
227
  backgroundColor: 'var(--n-merged-td-color-hover)'
226
- }), (0, cssr_1.cM)('ellipsis', `
228
+ }), (0, cssr_1.cE)('ellipsis', `
229
+ display: inline-block;
227
230
  text-overflow: ellipsis;
228
231
  overflow: hidden;
229
232
  white-space: nowrap;
233
+ max-width: 100%;
234
+ vertical-align: bottom;
230
235
  `), (0, cssr_1.cM)('selection, expand', `
231
236
  text-align: center;
232
237
  padding: 0;
@@ -53,12 +53,20 @@ function useCheck(props, data) {
53
53
  });
54
54
  function doUpdateCheckedRowKeys(keys) {
55
55
  const { 'onUpdate:checkedRowKeys': _onUpdateCheckedRowKeys, onUpdateCheckedRowKeys, onCheckedRowKeysChange } = props;
56
+ const rows = [];
57
+ const { value: { getNode } } = treeMateRef;
58
+ keys.forEach((key) => {
59
+ var _a;
60
+ const row = (_a = getNode(key)) === null || _a === void 0 ? void 0 : _a.rawNode;
61
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
62
+ rows.push(row);
63
+ });
56
64
  if (_onUpdateCheckedRowKeys)
57
- (0, _utils_1.call)(_onUpdateCheckedRowKeys, keys);
65
+ (0, _utils_1.call)(_onUpdateCheckedRowKeys, keys, rows);
58
66
  if (onUpdateCheckedRowKeys)
59
- (0, _utils_1.call)(onUpdateCheckedRowKeys, keys);
67
+ (0, _utils_1.call)(onUpdateCheckedRowKeys, keys, rows);
60
68
  if (onCheckedRowKeysChange)
61
- (0, _utils_1.call)(onCheckedRowKeysChange, keys);
69
+ (0, _utils_1.call)(onCheckedRowKeysChange, keys, rows);
62
70
  uncontrolledCheckedRowKeysRef.value = keys;
63
71
  }
64
72
  function doCheck(rowKey) {