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
@@ -135,6 +135,24 @@ exports.default = (0, vue_1.defineComponent)({
135
135
  (0, _utils_1.call)(onCollapse);
136
136
  }
137
137
  }
138
+ let scrollX = 0;
139
+ let scrollY = 0;
140
+ const handleNativeElScroll = (e) => {
141
+ var _a;
142
+ const target = e.target;
143
+ scrollX = target.scrollLeft;
144
+ scrollY = target.scrollTop;
145
+ (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e);
146
+ };
147
+ (0, _utils_1.useReactivated)(() => {
148
+ if (props.nativeScrollbar) {
149
+ const el = scrollableElRef.value;
150
+ if (el) {
151
+ el.scrollTop = scrollY;
152
+ el.scrollLeft = scrollX;
153
+ }
154
+ }
155
+ });
138
156
  (0, vue_1.provide)(interface_1.layoutSiderInjectionKey, {
139
157
  collapsedRef: mergedCollapsedRef,
140
158
  collapseModeRef: (0, vue_1.toRef)(props, 'collapseMode')
@@ -185,7 +203,8 @@ exports.default = (0, vue_1.defineComponent)({
185
203
  ? (0, _mixins_1.useThemeClass)('layout-sider', (0, vue_1.computed)(() => (props.inverted ? 'a' : 'b')), cssVarsRef, props)
186
204
  : undefined;
187
205
  return Object.assign({ scrollableElRef,
188
- scrollbarInstRef, mergedClsPrefix: mergedClsPrefixRef, mergedTheme: themeRef, styleMaxWidth: styleMaxWidthRef, mergedCollapsed: mergedCollapsedRef, scrollContainerStyle: scrollContainerStyleRef, siderPlacement: siderPlacementRef, handleTransitionend,
206
+ scrollbarInstRef, mergedClsPrefix: mergedClsPrefixRef, mergedTheme: themeRef, styleMaxWidth: styleMaxWidthRef, mergedCollapsed: mergedCollapsedRef, scrollContainerStyle: scrollContainerStyleRef, siderPlacement: siderPlacementRef, handleNativeElScroll,
207
+ handleTransitionend,
189
208
  handleTriggerClick,
190
209
  inlineThemeDisabled, cssVars: cssVarsRef, themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender }, exposedMethods);
191
210
  },
@@ -217,7 +236,7 @@ exports.default = (0, vue_1.defineComponent)({
217
236
  colorHover: 'rgba(255, 255, 255, .4)',
218
237
  color: 'rgba(255, 255, 255, .3)'
219
238
  }
220
- : undefined }), this.$slots)) : ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-layout-sider-scroll-container`, onScroll: this.onScroll, style: [
239
+ : undefined }), this.$slots)) : ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-layout-sider-scroll-container`, onScroll: this.handleNativeElScroll, style: [
221
240
  this.scrollContainerStyle,
222
241
  {
223
242
  overflow: 'auto'
@@ -2147,13 +2147,13 @@ declare const _default: import("vue").DefineComponent<{
2147
2147
  readonly labelField: string;
2148
2148
  readonly defaultValue: Key | null;
2149
2149
  readonly childrenField: string;
2150
+ readonly defaultExpandAll: boolean;
2150
2151
  readonly indent: number;
2151
2152
  readonly inverted: boolean;
2152
2153
  readonly accordion: boolean;
2153
2154
  readonly collapsed: boolean | undefined;
2154
2155
  readonly collapsedWidth: number;
2155
2156
  readonly collapsedIconSize: number;
2156
- readonly defaultExpandAll: boolean;
2157
2157
  readonly watchProps: ("defaultValue" | "defaultExpandedKeys")[];
2158
2158
  readonly dropdownPlacement: FollowerPlacement;
2159
2159
  }>;
@@ -1,9 +1,7 @@
1
- import { PropType, VNode, ComponentPublicInstance } from 'vue';
1
+ import { PropType, VNode, ComponentPublicInstance, VNodeChild } from 'vue';
2
2
  declare const _default: import("vue").DefineComponent<{
3
- onClickoutside: {
4
- type: FunctionConstructor;
5
- required: true;
6
- };
3
+ renderMask: PropType<() => VNodeChild>;
4
+ onClickoutside: PropType<(e: MouseEvent) => void>;
7
5
  onBeforeLeave: {
8
6
  type: FunctionConstructor;
9
7
  required: true;
@@ -25,13 +23,13 @@ declare const _default: import("vue").DefineComponent<{
25
23
  required: true;
26
24
  };
27
25
  onAfterEnter: PropType<() => void>;
28
- onEsc: PropType<() => void>;
29
- icon: PropType<() => import("vue").VNodeChild>;
26
+ onEsc: PropType<(e: KeyboardEvent) => void>;
27
+ icon: PropType<() => VNodeChild>;
30
28
  type: {
31
29
  readonly type: PropType<"default" | "error" | "info" | "success" | "warning">;
32
30
  readonly default: "default";
33
31
  };
34
- title: PropType<string | (() => import("vue").VNodeChild)>;
32
+ title: PropType<string | (() => VNodeChild)>;
35
33
  closable: {
36
34
  readonly type: BooleanConstructor;
37
35
  readonly default: true;
@@ -40,8 +38,8 @@ declare const _default: import("vue").DefineComponent<{
40
38
  positiveText: StringConstructor;
41
39
  positiveButtonProps: PropType<import("../..").ButtonProps>;
42
40
  negativeButtonProps: PropType<import("../..").ButtonProps>;
43
- content: PropType<string | (() => import("vue").VNodeChild)>;
44
- action: PropType<() => import("vue").VNodeChild>;
41
+ content: PropType<string | (() => VNodeChild)>;
42
+ action: PropType<() => VNodeChild>;
45
43
  showIcon: {
46
44
  readonly type: BooleanConstructor;
47
45
  readonly default: true;
@@ -713,7 +711,6 @@ declare const _default: import("vue").DefineComponent<{
713
711
  childNodeRef: import("vue").Ref<VNode<import("vue").RendererNode, import("vue").RendererElement, {
714
712
  [key: string]: any;
715
713
  }> | null>;
716
- handleClickOutside: (e: MouseEvent) => void;
717
714
  handlePositiveClick: () => void;
718
715
  handleNegativeClick: () => void;
719
716
  handleCloseClick: () => void;
@@ -721,10 +718,8 @@ declare const _default: import("vue").DefineComponent<{
721
718
  handleBeforeLeave: (el: HTMLElement) => void;
722
719
  handleEnter: (el: HTMLElement) => void;
723
720
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
724
- onClickoutside: {
725
- type: FunctionConstructor;
726
- required: true;
727
- };
721
+ renderMask: PropType<() => VNodeChild>;
722
+ onClickoutside: PropType<(e: MouseEvent) => void>;
728
723
  onBeforeLeave: {
729
724
  type: FunctionConstructor;
730
725
  required: true;
@@ -746,13 +741,13 @@ declare const _default: import("vue").DefineComponent<{
746
741
  required: true;
747
742
  };
748
743
  onAfterEnter: PropType<() => void>;
749
- onEsc: PropType<() => void>;
750
- icon: PropType<() => import("vue").VNodeChild>;
744
+ onEsc: PropType<(e: KeyboardEvent) => void>;
745
+ icon: PropType<() => VNodeChild>;
751
746
  type: {
752
747
  readonly type: PropType<"default" | "error" | "info" | "success" | "warning">;
753
748
  readonly default: "default";
754
749
  };
755
- title: PropType<string | (() => import("vue").VNodeChild)>;
750
+ title: PropType<string | (() => VNodeChild)>;
756
751
  closable: {
757
752
  readonly type: BooleanConstructor;
758
753
  readonly default: true;
@@ -761,8 +756,8 @@ declare const _default: import("vue").DefineComponent<{
761
756
  positiveText: StringConstructor;
762
757
  positiveButtonProps: PropType<import("../..").ButtonProps>;
763
758
  negativeButtonProps: PropType<import("../..").ButtonProps>;
764
- content: PropType<string | (() => import("vue").VNodeChild)>;
765
- action: PropType<() => import("vue").VNodeChild>;
759
+ content: PropType<string | (() => VNodeChild)>;
760
+ action: PropType<() => VNodeChild>;
766
761
  showIcon: {
767
762
  readonly type: BooleanConstructor;
768
763
  readonly default: true;
@@ -28,12 +28,9 @@ exports.default = (0, vue_1.defineComponent)({
28
28
  }, autoFocus: {
29
29
  type: Boolean,
30
30
  default: true
31
- }, blockScroll: Boolean }, presetProps_1.presetProps), {
31
+ }, blockScroll: Boolean }, presetProps_1.presetProps), { renderMask: Function,
32
32
  // events
33
- onClickoutside: {
34
- type: Function,
35
- required: true
36
- }, onBeforeLeave: {
33
+ onClickoutside: Function, onBeforeLeave: {
37
34
  type: Function,
38
35
  required: true
39
36
  }, onAfterLeave: {
@@ -124,9 +121,6 @@ exports.default = (0, vue_1.defineComponent)({
124
121
  function handlePositiveClick() {
125
122
  props.onPositiveClick();
126
123
  }
127
- function handleClickOutside(e) {
128
- props.onClickoutside(e);
129
- }
130
124
  const childNodeRef = (0, vue_1.ref)(null);
131
125
  (0, vue_1.watch)(childNodeRef, (node) => {
132
126
  if (node) {
@@ -150,7 +144,6 @@ exports.default = (0, vue_1.defineComponent)({
150
144
  scrollbarRef,
151
145
  displayed: displayedRef,
152
146
  childNodeRef,
153
- handleClickOutside,
154
147
  handlePositiveClick,
155
148
  handleNegativeClick,
156
149
  handleCloseClick,
@@ -160,7 +153,7 @@ exports.default = (0, vue_1.defineComponent)({
160
153
  };
161
154
  },
162
155
  render() {
163
- const { $slots, $attrs, handleEnter, handleAfterLeave, handleBeforeLeave, handleClickOutside, preset, mergedClsPrefix } = this;
156
+ const { $slots, $attrs, handleEnter, handleAfterLeave, handleBeforeLeave, preset, mergedClsPrefix } = this;
164
157
  let childNode = null;
165
158
  if (!preset) {
166
159
  childNode = (0, _utils_1.getFirstSlotVNode)($slots);
@@ -176,29 +169,41 @@ exports.default = (0, vue_1.defineComponent)({
176
169
  return this.displayDirective === 'show' || this.displayed || this.show
177
170
  ? (0, vue_1.withDirectives)((0, vue_1.h)("div", { role: "none", class: `${mergedClsPrefix}-modal-body-wrapper` },
178
171
  (0, vue_1.h)(_internal_1.NScrollbar, { ref: "scrollbarRef", theme: this.mergedTheme.peers.Scrollbar, themeOverrides: this.mergedTheme.peerOverrides.Scrollbar, contentClass: `${mergedClsPrefix}-modal-scroll-content` }, {
179
- default: () => ((0, vue_1.h)(vueuc_1.VFocusTrap, { disabled: !this.trapFocus, active: this.show, onEsc: this.onEsc, autoFocus: this.autoFocus }, {
180
- default: () => {
181
- var _a;
182
- return ((0, vue_1.h)(vue_1.Transition, { name: "fade-in-scale-up-transition", appear: (_a = this.appear) !== null && _a !== void 0 ? _a : this.isMounted, onEnter: handleEnter, onAfterEnter: this.onAfterEnter, onAfterLeave: handleAfterLeave, onBeforeLeave: handleBeforeLeave }, {
183
- default: () => (0, vue_1.withDirectives)((this.preset === 'confirm' ||
184
- this.preset === 'dialog' ? ((0, vue_1.h)(Dialog_1.NDialog, Object.assign({}, this.$attrs, { class: [
185
- `${mergedClsPrefix}-modal`,
186
- this.$attrs.class
187
- ], ref: "bodyRef", theme: this.mergedTheme.peers.Dialog, themeOverrides: this.mergedTheme.peerOverrides.Dialog }, (0, _utils_1.keep)(this.$props, dialogProps_1.dialogPropKeys), { "aria-modal": "true" }), $slots)) : this.preset === 'card' ? ((0, vue_1.h)(card_1.NCard, Object.assign({}, this.$attrs, { ref: "bodyRef", class: [
188
- `${mergedClsPrefix}-modal`,
189
- this.$attrs.class
190
- ], theme: this.mergedTheme.peers.Card, themeOverrides: this.mergedTheme.peerOverrides.Card }, (0, _utils_1.keep)(this.$props, Card_1.cardBasePropKeys), { "aria-modal": "true", role: "dialog" }), $slots)) : ((this.childNodeRef = childNode))), [
191
- [vue_1.vShow, this.show],
192
- [
193
- vdirs_1.clickoutside,
194
- handleClickOutside,
195
- undefined,
196
- { capture: true }
197
- ]
198
- ])
199
- }));
200
- }
201
- }))
172
+ default: () => {
173
+ var _a;
174
+ return [
175
+ (_a = this.renderMask) === null || _a === void 0 ? void 0 : _a.call(this),
176
+ (0, vue_1.h)(vueuc_1.VFocusTrap, { disabled: !this.trapFocus, active: this.show, onEsc: this.onEsc, autoFocus: this.autoFocus }, {
177
+ default: () => {
178
+ var _a;
179
+ return ((0, vue_1.h)(vue_1.Transition, { name: "fade-in-scale-up-transition", appear: (_a = this.appear) !== null && _a !== void 0 ? _a : this.isMounted, onEnter: handleEnter, onAfterEnter: this.onAfterEnter, onAfterLeave: handleAfterLeave, onBeforeLeave: handleBeforeLeave }, {
180
+ default: () => {
181
+ const dirs = [
182
+ [vue_1.vShow, this.show]
183
+ ];
184
+ const { onClickoutside } = this;
185
+ if (onClickoutside) {
186
+ dirs.push([
187
+ vdirs_1.clickoutside,
188
+ this.onClickoutside,
189
+ undefined,
190
+ { capture: true }
191
+ ]);
192
+ }
193
+ return (0, vue_1.withDirectives)((this.preset === 'confirm' ||
194
+ this.preset === 'dialog' ? ((0, vue_1.h)(Dialog_1.NDialog, Object.assign({}, this.$attrs, { class: [
195
+ `${mergedClsPrefix}-modal`,
196
+ this.$attrs.class
197
+ ], ref: "bodyRef", theme: this.mergedTheme.peers.Dialog, themeOverrides: this.mergedTheme.peerOverrides.Dialog }, (0, _utils_1.keep)(this.$props, dialogProps_1.dialogPropKeys), { "aria-modal": "true" }), $slots)) : this.preset === 'card' ? ((0, vue_1.h)(card_1.NCard, Object.assign({}, this.$attrs, { ref: "bodyRef", class: [
198
+ `${mergedClsPrefix}-modal`,
199
+ this.$attrs.class
200
+ ], theme: this.mergedTheme.peers.Card, themeOverrides: this.mergedTheme.peerOverrides.Card }, (0, _utils_1.keep)(this.$props, Card_1.cardBasePropKeys), { "aria-modal": "true", role: "dialog" }), $slots)) : ((this.childNodeRef = childNode))), dirs);
201
+ }
202
+ }));
203
+ }
204
+ })
205
+ ];
206
+ }
202
207
  })), [
203
208
  [
204
209
  vue_1.vShow,
@@ -155,7 +155,7 @@ exports.default = (0, vue_1.defineComponent)({
155
155
  function handleEsc(e) {
156
156
  var _a;
157
157
  (_a = props.onEsc) === null || _a === void 0 ? void 0 : _a.call(props);
158
- if (props.closeOnEsc) {
158
+ if (props.show && props.closeOnEsc && (0, _utils_1.eventEffectNotPerformed)(e)) {
159
159
  !isComposingRef.value && doUpdateShow(false);
160
160
  }
161
161
  }
@@ -217,19 +217,24 @@ exports.default = (0, vue_1.defineComponent)({
217
217
  const { mergedClsPrefix } = this;
218
218
  return ((0, vue_1.h)(vueuc_1.VLazyTeleport, { to: this.to, show: this.show }, {
219
219
  default: () => {
220
- var _a, _b;
220
+ var _a;
221
221
  (_a = this.onRender) === null || _a === void 0 ? void 0 : _a.call(this);
222
+ const { unstableShowMask } = this;
222
223
  return (0, vue_1.withDirectives)((0, vue_1.h)("div", { role: "none", ref: "containerRef", class: [
223
224
  `${mergedClsPrefix}-modal-container`,
224
225
  this.themeClass,
225
226
  this.namespace
226
227
  ], style: this.cssVars },
227
- this.unstableShowMask ? ((0, vue_1.h)(vue_1.Transition, { name: "fade-in-transition", key: "mask", appear: (_b = this.internalAppear) !== null && _b !== void 0 ? _b : this.isMounted }, {
228
- default: () => {
229
- return this.show ? ((0, vue_1.h)("div", { "aria-hidden": true, ref: "containerRef", class: `${mergedClsPrefix}-modal-mask` })) : null;
230
- }
231
- })) : null,
232
- (0, vue_1.h)(BodyWrapper_1.default, Object.assign({ style: this.overlayStyle }, this.$attrs, { ref: "bodyWrapper", displayDirective: this.displayDirective, show: this.show, preset: this.preset, autoFocus: this.autoFocus, trapFocus: this.trapFocus, blockScroll: this.blockScroll }, this.presetProps, { onEsc: this.handleEsc, onClose: this.handleCloseClick, onNegativeClick: this.handleNegativeClick, onPositiveClick: this.handlePositiveClick, onBeforeLeave: this.handleBeforeLeave, onAfterEnter: this.onAfterEnter, onAfterLeave: this.handleAfterLeave, onClickoutside: this.handleClickoutside }), this.$slots)), [
228
+ (0, vue_1.h)(BodyWrapper_1.default, Object.assign({ style: this.overlayStyle }, this.$attrs, { ref: "bodyWrapper", displayDirective: this.displayDirective, show: this.show, preset: this.preset, autoFocus: this.autoFocus, trapFocus: this.trapFocus, blockScroll: this.blockScroll }, this.presetProps, { onEsc: this.handleEsc, onClose: this.handleCloseClick, onNegativeClick: this.handleNegativeClick, onPositiveClick: this.handlePositiveClick, onBeforeLeave: this.handleBeforeLeave, onAfterEnter: this.onAfterEnter, onAfterLeave: this.handleAfterLeave, onClickoutside: unstableShowMask ? undefined : this.handleClickoutside, renderMask: unstableShowMask
229
+ ? () => {
230
+ var _a;
231
+ return ((0, vue_1.h)(vue_1.Transition, { name: "fade-in-transition", key: "mask", appear: (_a = this.internalAppear) !== null && _a !== void 0 ? _a : this.isMounted }, {
232
+ default: () => {
233
+ return this.show ? ((0, vue_1.h)("div", { "aria-hidden": true, ref: "containerRef", class: `${mergedClsPrefix}-modal-mask`, onClick: this.handleClickoutside })) : null;
234
+ }
235
+ }));
236
+ }
237
+ : undefined }), this.$slots)), [
233
238
  [
234
239
  vdirs_1.zindexable,
235
240
  {