vxe-pc-ui 3.20.5 → 3.20.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 (78) hide show
  1. package/es/button/src/button.js +1 -0
  2. package/es/cascader/src/cascader.js +1 -0
  3. package/es/color-picker/src/color-picker.js +1 -0
  4. package/es/date-picker/src/date-picker.js +1 -0
  5. package/es/date-range-picker/src/date-range-picker.js +1 -0
  6. package/es/icon/style.css +1 -1
  7. package/es/icon-picker/src/icon-picker.js +1 -0
  8. package/es/pulldown/src/pulldown.js +1 -0
  9. package/es/select/src/select.js +1 -0
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/table-select/src/table-select.js +1 -0
  13. package/es/tooltip/src/tooltip.js +2 -1
  14. package/es/tree-select/src/tree-select.js +1 -0
  15. package/es/ui/index.js +1 -1
  16. package/es/ui/src/dom.js +11 -8
  17. package/es/ui/src/log.js +1 -1
  18. package/lib/button/src/button.js +1 -0
  19. package/lib/button/src/button.min.js +1 -1
  20. package/lib/cascader/src/cascader.js +1 -0
  21. package/lib/cascader/src/cascader.min.js +1 -1
  22. package/lib/color-picker/src/color-picker.js +1 -0
  23. package/lib/color-picker/src/color-picker.min.js +1 -1
  24. package/lib/date-picker/src/date-picker.js +1 -0
  25. package/lib/date-picker/src/date-picker.min.js +1 -1
  26. package/lib/date-range-picker/src/date-range-picker.js +1 -0
  27. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  28. package/lib/icon/style/style.css +1 -1
  29. package/lib/icon/style/style.min.css +1 -1
  30. package/lib/icon-picker/src/icon-picker.js +1 -0
  31. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  32. package/lib/index.umd.js +25 -9
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/pulldown/src/pulldown.js +1 -0
  35. package/lib/pulldown/src/pulldown.min.js +1 -1
  36. package/lib/select/src/select.js +1 -0
  37. package/lib/select/src/select.min.js +1 -1
  38. package/lib/style.css +1 -1
  39. package/lib/style.min.css +1 -1
  40. package/lib/table-select/src/table-select.js +1 -0
  41. package/lib/table-select/src/table-select.min.js +1 -1
  42. package/lib/tooltip/src/tooltip.js +2 -0
  43. package/lib/tooltip/src/tooltip.min.js +1 -1
  44. package/lib/tree-select/src/tree-select.js +1 -0
  45. package/lib/tree-select/src/tree-select.min.js +1 -1
  46. package/lib/ui/index.js +1 -1
  47. package/lib/ui/index.min.js +1 -1
  48. package/lib/ui/src/dom.js +11 -7
  49. package/lib/ui/src/dom.min.js +1 -1
  50. package/lib/ui/src/log.js +1 -1
  51. package/lib/ui/src/log.min.js +1 -1
  52. package/package.json +2 -2
  53. package/packages/button/src/button.ts +2 -1
  54. package/packages/cascader/src/cascader.ts +1 -0
  55. package/packages/color-picker/src/color-picker.ts +1 -0
  56. package/packages/date-picker/src/date-picker.ts +1 -0
  57. package/packages/date-range-picker/src/date-range-picker.ts +1 -0
  58. package/packages/icon-picker/src/icon-picker.ts +1 -0
  59. package/packages/pulldown/src/pulldown.ts +1 -0
  60. package/packages/select/src/select.ts +1 -0
  61. package/packages/table-select/src/table-select.ts +1 -0
  62. package/packages/tooltip/src/tooltip.ts +2 -1
  63. package/packages/tree-select/src/tree-select.ts +1 -0
  64. package/packages/ui/src/dom.ts +12 -8
  65. package/types/components/button.d.ts +4 -0
  66. package/types/components/cascader.d.ts +4 -0
  67. /package/es/icon/{iconfont.1792048654011.ttf → iconfont.1792054426799.ttf} +0 -0
  68. /package/es/icon/{iconfont.1792048654011.woff → iconfont.1792054426799.woff} +0 -0
  69. /package/es/icon/{iconfont.1792048654011.woff2 → iconfont.1792054426799.woff2} +0 -0
  70. /package/es/{iconfont.1792048654011.ttf → iconfont.1792054426799.ttf} +0 -0
  71. /package/es/{iconfont.1792048654011.woff → iconfont.1792054426799.woff} +0 -0
  72. /package/es/{iconfont.1792048654011.woff2 → iconfont.1792054426799.woff2} +0 -0
  73. /package/lib/icon/style/{iconfont.1792048654011.ttf → iconfont.1792054426799.ttf} +0 -0
  74. /package/lib/icon/style/{iconfont.1792048654011.woff → iconfont.1792054426799.woff} +0 -0
  75. /package/lib/icon/style/{iconfont.1792048654011.woff2 → iconfont.1792054426799.woff2} +0 -0
  76. /package/lib/{iconfont.1792048654011.ttf → iconfont.1792054426799.ttf} +0 -0
  77. /package/lib/{iconfont.1792048654011.woff → iconfont.1792054426799.woff} +0 -0
  78. /package/lib/{iconfont.1792048654011.woff2 → iconfont.1792054426799.woff2} +0 -0
@@ -568,6 +568,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
568
568
  isMinWidth: !popupOpts.width,
569
569
  placement: popupOpts.placement || placement,
570
570
  defaultPlacement: popupOpts.defaultPlacement,
571
+ appendTo: popupOpts.appendTo,
571
572
  teleportTo: btnTransfer
572
573
  })
573
574
  const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
@@ -179,6 +179,7 @@ interface PanelPlacementOptions {
179
179
  defaultLeft?: number
180
180
  placement?: '' | 'top' | 'bottom' | null
181
181
  defaultPlacement?: '' | 'top' | 'bottom' | null
182
+ appendTo?: string | HTMLElement | ((params: any) => string | HTMLElement)
182
183
  teleportTo?: boolean
183
184
  marginSize?: number
184
185
  isMinWidth?: boolean
@@ -188,7 +189,8 @@ interface PanelPlacementOptions {
188
189
  * 通用定位计算
189
190
  */
190
191
  export function updatePanelPlacement (targetElem: HTMLElement | null | undefined, panelElem: HTMLElement | null | undefined, options: PanelPlacementOptions) {
191
- const { defaultTop, defaultLeft, placement, defaultPlacement, teleportTo, marginSize, isMinWidth } = Object.assign({
192
+ const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
193
+ appendTo: '',
192
194
  teleportTo: false,
193
195
  marginSize: 18,
194
196
  isMinWidth: true
@@ -202,7 +204,7 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
202
204
  const stys: Record<string, string> = {}
203
205
  if (panelElem && targetElem) {
204
206
  const bodyEl = document.body
205
- const parentWrapperEl = getPopupWrapperElement(panelElem)
207
+ const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem)
206
208
  if (parentWrapperEl) {
207
209
  const targetWidth = targetElem.offsetWidth
208
210
  const targetHeight = targetElem.offsetHeight
@@ -215,16 +217,18 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
215
217
  const visibleHeight = bodyEl.clientHeight
216
218
  const visibleWidth = bodyEl.clientWidth
217
219
 
218
- const offsetLeft = parentWrapperRect.left
219
- const offsetTop = parentWrapperRect.top
220
+ const parentWrapperScrollLeft = parentWrapperEl.scrollLeft
221
+ const parentWrapperScrollTop = parentWrapperEl.scrollTop
222
+ const parentWrapperOffsetLeft = parentWrapperRect.left
223
+ const parentWrapperOffsetTop = parentWrapperRect.top
220
224
  const targetLeft = targetRect.left
221
225
  const targetTop = targetRect.top
222
226
 
223
227
  minWidth = targetElem.offsetWidth
224
228
 
225
229
  if (teleportTo) {
226
- left = defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)
227
- top = defaultTop || (targetTop + targetHeight)
230
+ left = (defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)) - parentWrapperScrollLeft
231
+ top = (defaultTop || (targetTop + targetHeight)) - parentWrapperScrollTop
228
232
  if (placement === 'top') {
229
233
  panelPlacement = 'top'
230
234
  top = targetTop - panelHeight
@@ -267,8 +271,8 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
267
271
  }
268
272
 
269
273
  // 偏移
270
- top -= offsetTop
271
- left -= offsetLeft
274
+ top -= parentWrapperOffsetTop
275
+ left -= parentWrapperOffsetLeft
272
276
  } else {
273
277
  if (placement === 'top') {
274
278
  panelPlacement = 'top'
@@ -86,6 +86,10 @@ export namespace VxeButtonPropTypes {
86
86
 
87
87
  export type DestroyOnClose = boolean
88
88
  export interface PopupConfig {
89
+ /**
90
+ * 默认弹出面板方向
91
+ */
92
+ defaultPlacement?: 'top' | 'bottom' | '' | null
89
93
  /**
90
94
  * 设置弹出面板方向
91
95
  */
@@ -143,6 +143,10 @@ export namespace VxeCascaderPropTypes {
143
143
  */
144
144
  defaultPlacement?: 'top' | 'bottom' | '' | null
145
145
  transfer?: boolean
146
+ /**
147
+ * 挂载到指定元素下
148
+ */
149
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
146
150
  height?: number | string
147
151
  nodeWidth?: number | string
148
152
  nodeHeight?: number | string