vxe-pc-ui 4.20.5 → 4.20.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.
- package/dist/all.esm.js +5157 -5088
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/button/src/button.js +1 -0
- package/es/cascader/src/cascader.js +1 -0
- package/es/color-picker/src/color-picker.js +1 -0
- package/es/date-picker/src/date-picker.js +1 -0
- package/es/date-range-picker/src/date-range-picker.js +1 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +1 -0
- package/es/pulldown/src/pulldown.js +1 -0
- package/es/scrollbar/src/scrollbar.js +20 -3
- package/es/scrollbar/style.css +11 -0
- package/es/scrollbar/style.min.css +1 -1
- package/es/select/src/select.js +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table-select/src/table-select.js +1 -0
- package/es/tabs/src/tabs.js +5 -3
- package/es/tooltip/src/tooltip.js +47 -9
- package/es/tooltip/style.css +2 -1
- package/es/tooltip/style.min.css +1 -1
- package/es/tree-select/src/tree-select.js +1 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +11 -8
- package/es/ui/src/log.js +1 -1
- package/es/vxe-scrollbar/style.css +11 -0
- package/es/vxe-scrollbar/style.min.css +1 -1
- package/es/vxe-tooltip/style.css +2 -1
- package/es/vxe-tooltip/style.min.css +1 -1
- package/lib/button/src/button.js +1 -0
- package/lib/button/src/button.min.js +1 -1
- package/lib/cascader/src/cascader.js +1 -0
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/color-picker/src/color-picker.js +1 -0
- package/lib/color-picker/src/color-picker.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -0
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +1 -0
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +1 -0
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/index.umd.js +4640 -4346
- package/lib/index.umd.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +1 -0
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/scrollbar/src/scrollbar.js +22 -3
- package/lib/scrollbar/src/scrollbar.min.js +1 -1
- package/lib/scrollbar/style/style.css +11 -0
- package/lib/scrollbar/style/style.min.css +1 -1
- package/lib/select/src/select.js +1 -0
- package/lib/select/src/select.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table-select/src/table-select.js +1 -0
- package/lib/table-select/src/table-select.min.js +1 -1
- package/lib/tabs/src/tabs.js +45 -33
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/tooltip/src/tooltip.js +81 -29
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tooltip/style/style.css +2 -1
- package/lib/tooltip/style/style.min.css +1 -1
- package/lib/tree-select/src/tree-select.js +1 -0
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +11 -7
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-scrollbar/style/style.css +11 -0
- package/lib/vxe-scrollbar/style/style.min.css +1 -1
- package/lib/vxe-tooltip/style/style.css +2 -1
- package/lib/vxe-tooltip/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/button/src/button.ts +2 -1
- package/packages/cascader/src/cascader.ts +1 -0
- package/packages/color-picker/src/color-picker.ts +1 -0
- package/packages/date-picker/src/date-picker.ts +1 -0
- package/packages/date-range-picker/src/date-range-picker.ts +1 -0
- package/packages/icon-picker/src/icon-picker.ts +1 -0
- package/packages/pulldown/src/pulldown.ts +1 -0
- package/packages/scrollbar/src/scrollbar.ts +20 -2
- package/packages/select/src/select.ts +1 -0
- package/packages/table-select/src/table-select.ts +1 -0
- package/packages/tabs/src/tabs.ts +6 -3
- package/packages/tooltip/src/tooltip.ts +49 -10
- package/packages/tree-select/src/tree-select.ts +1 -0
- package/packages/ui/src/dom.ts +12 -8
- package/styles/components/scrollbar.scss +15 -1
- package/styles/components/tooltip.scss +2 -1
- package/types/components/button.d.ts +4 -0
- package/types/components/cascader.d.ts +4 -0
- package/types/components/scrollbar.d.ts +19 -1
- package/types/components/table.d.ts +1 -0
- package/types/components/tooltip.d.ts +21 -0
- /package/es/icon/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/es/icon/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/es/icon/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/es/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/es/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/es/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/lib/icon/style/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
- /package/lib/{iconfont.1792048659766.ttf → iconfont.1792080138286.ttf} +0 -0
- /package/lib/{iconfont.1792048659766.woff → iconfont.1792080138286.woff} +0 -0
- /package/lib/{iconfont.1792048659766.woff2 → iconfont.1792080138286.woff2} +0 -0
package/lib/ui/src/log.js
CHANGED
|
@@ -9,7 +9,7 @@ var _core = require("@vxe-ui/core");
|
|
|
9
9
|
const {
|
|
10
10
|
log
|
|
11
11
|
} = _core.VxeUI;
|
|
12
|
-
const uiVersion = `ui v${"4.20.
|
|
12
|
+
const uiVersion = `ui v${"4.20.7"}`;
|
|
13
13
|
function createComponentLog(name) {
|
|
14
14
|
const tableVersion = _core.VxeUI.tableVersion ? `table v${_core.VxeUI.tableVersion}` : '';
|
|
15
15
|
const ganttVersion = _core.VxeUI.ganttVersion ? `gantt v${_core.VxeUI.ganttVersion}` : '';
|
package/lib/ui/src/log.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,uiVersion="ui v4.20.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.createComponentLog=createComponentLog,exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");let log=_core.VxeUI.log,uiVersion="ui v4.20.7";function createComponentLog(e){var r=_core.VxeUI.tableVersion?"table v"+_core.VxeUI.tableVersion:"",o=_core.VxeUI.ganttVersion?"gantt v"+_core.VxeUI.ganttVersion:"",n=_core.VxeUI.designVersion?"design v"+_core.VxeUI.designVersion:"",r=[uiVersion,r,o,n].filter(e=>e).join(" ");return{warnLog:log.create("warn",r+"] ["+e),errLog:log.create("error",r+"] ["+e)}}let warnLog=exports.warnLog=log.create("warn",uiVersion),errLog=exports.errLog=log.create("error",uiVersion);
|
|
@@ -141,4 +141,15 @@
|
|
|
141
141
|
.vxe-scrollbar--thumb-x:active,
|
|
142
142
|
.vxe-scrollbar--thumb-y:active {
|
|
143
143
|
background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.vxe-scrollbar.theme--light {
|
|
147
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(0,0,0,0.4);
|
|
148
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(0,0,0,0.5);
|
|
149
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(0,0,0,0.6);
|
|
150
|
+
}
|
|
151
|
+
.vxe-scrollbar.theme--dark {
|
|
152
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(255,255,255,0.4);
|
|
153
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(255,255,255,0.5);
|
|
154
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(255,255,255,0.6);
|
|
144
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}
|
|
1
|
+
.vxe-scrollbar{position:relative}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view{scrollbar-width:none;-ms-overflow-style:none}.vxe-scrollbar.is--virtual>.vxe-scrollbar--view::-webkit-scrollbar{display:none}.vxe-scrollbar.is--virtual.ov-x--auto-hide:hover>.vxe-scrollbar--track-x{opacity:1}.vxe-scrollbar.is--virtual.ov-x--auto-hide>.vxe-scrollbar--track-x{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--virtual.ov-y--auto-hide:hover>.vxe-scrollbar--track-y{opacity:1}.vxe-scrollbar.is--virtual.ov-y--auto-hide>.vxe-scrollbar--track-y{opacity:0;transition:opacity .8s ease-in-out}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar{width:var(--vxe-ui-scrollbar-y-width);height:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb{border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar.is--native>.vxe-scrollbar--view::-webkit-scrollbar-thumb:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.ov-x--hidden>.vxe-scrollbar--view{overflow-x:hidden}.vxe-scrollbar.ov-y--hidden>.vxe-scrollbar--view{overflow-y:hidden}.vxe-scrollbar--view{height:100%;width:100%;overflow-x:auto;overflow-y:auto}.vxe-scrollbar--track-x,.vxe-scrollbar--track-y{display:none;position:absolute;background-color:var(--vxe-ui-scrollbar-track-background-color);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-scrollbar.overflow-x>.vxe-scrollbar--track-x{display:block}.vxe-scrollbar.overflow-y>.vxe-scrollbar--track-y{display:block}.vxe-scrollbar--track-x{width:100%;left:0;height:var(--vxe-ui-scrollbar-x-height);padding:var(--vxe-ui-scrollbar-track-padding) 0}.vxe-scrollbar--track-y{height:100%;top:0;width:var(--vxe-ui-scrollbar-y-width);padding:0 var(--vxe-ui-scrollbar-track-padding)}.vxe-scrollbar.sx-pos--top>.vxe-scrollbar--track-x{top:0}.vxe-scrollbar.sx-pos--bottom>.vxe-scrollbar--track-x{bottom:0}.vxe-scrollbar.sy-pos--left>.vxe-scrollbar--track-y{left:0}.vxe-scrollbar.sy-pos--right>.vxe-scrollbar--track-y{right:0}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-x{width:calc(100% - var(--vxe-ui-scrollbar-x-height))}.vxe-scrollbar.overflow-x.overflow-y>.vxe-scrollbar--track-y{height:calc(100% - var(--vxe-ui-scrollbar-y-width))}.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--left>.vxe-scrollbar--track-y,.vxe-scrollbar.overflow-x.overflow-y.sx-pos--top.sy-pos--right>.vxe-scrollbar--track-y{top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--bottom>.vxe-scrollbar--track-x,.vxe-scrollbar.overflow-x.overflow-y.sy-pos--left.sx-pos--top>.vxe-scrollbar--track-x{left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--top{padding-top:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-x.sx-pos--bottom{padding-bottom:var(--vxe-ui-scrollbar-x-height)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--left{padding-left:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar.is--padding.overflow-y.sy-pos--right{padding-right:var(--vxe-ui-scrollbar-y-width)}.vxe-scrollbar--thumb-y{width:100%}.vxe-scrollbar--thumb-x{height:100%}.vxe-scrollbar--thumb-x,.vxe-scrollbar--thumb-y{border-radius:var(--vxe-ui-scrollbar-thumb-border-radius);background-color:var(--vxe-ui-scrollbar-thumb-background-color)}.vxe-scrollbar--thumb-x:hover,.vxe-scrollbar--thumb-y:hover{background-color:var(--vxe-ui-scrollbar-thumb-hover-background-color)}.vxe-scrollbar--thumb-x:active,.vxe-scrollbar--thumb-y:active{background-color:var(--vxe-ui-scrollbar-thumb-active-background-color)}.vxe-scrollbar.theme--light{--vxe-ui-scrollbar-thumb-background-color:rgba(0,0,0,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(0,0,0,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(0,0,0,0.6)}.vxe-scrollbar.theme--dark{--vxe-ui-scrollbar-thumb-background-color:rgba(255,255,255,0.4);--vxe-ui-scrollbar-thumb-hover-background-color:rgba(255,255,255,0.5);--vxe-ui-scrollbar-thumb-active-background-color:rgba(255,255,255,0.6)}
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body {
|
|
26
26
|
pointer-events: all;
|
|
27
27
|
}
|
|
28
|
-
.vxe-tooltip--wrapper .vxe-tooltip--content
|
|
28
|
+
.vxe-tooltip--wrapper .vxe-tooltip--content,
|
|
29
|
+
.vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view {
|
|
29
30
|
padding: 8px 12px;
|
|
30
31
|
max-width: 600px;
|
|
31
32
|
max-height: 800px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content{padding:8px 12px;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
|
|
1
|
+
.vxe-tooltip--wrapper{display:none;position:absolute;top:-100%;left:-100%;font-size:12px;color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);pointer-events:none}.vxe-tooltip--wrapper.is--visible{display:inline-block}.vxe-tooltip--wrapper.is--arrow .vxe-tooltip--arrow{display:block}.vxe-tooltip--wrapper.is--enterable:after{content:"";position:absolute;left:0;width:100%;height:6px;background-color:transparent}.vxe-tooltip--wrapper.is--enterable .vxe-tooltip--body{pointer-events:all}.vxe-tooltip--wrapper .vxe-tooltip--content,.vxe-tooltip--wrapper .vxe-tooltip--scrollbar-content-view{padding:8px 12px;max-width:600px;max-height:800px;white-space:pre-line;border-radius:var(--vxe-ui-base-border-radius);overflow:auto}.vxe-tooltip--wrapper .vxe-tooltip--arrow{display:none;position:absolute;border-color:transparent;border-width:6px;border-style:solid;left:50%;transform:translateX(-6px)}.vxe-tooltip--wrapper .vxe-tooltip--arrow:before{content:"";position:absolute;border-color:transparent;border-width:5px;border-style:solid;left:-5px}.vxe-tooltip--wrapper.placement--top.is--arrow{padding-bottom:6px}.vxe-tooltip--wrapper.placement--top.is--enterable:after{bottom:-6px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow{bottom:-11px}.vxe-tooltip--wrapper.placement--top .vxe-tooltip--arrow:before{top:-7px}.vxe-tooltip--wrapper.placement--bottom.is--arrow{padding-top:6px}.vxe-tooltip--wrapper.placement--bottom.is--enterable:after{top:-6px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow{top:-11px}.vxe-tooltip--wrapper.placement--bottom .vxe-tooltip--arrow:before{top:-3px}.vxe-tooltip--body{position:relative;border-radius:var(--vxe-ui-base-border-radius);white-space:normal;word-break:break-word;box-shadow:2px 2px 4px -2px rgba(0,0,0,.2)}.vxe-tooltip--wrapper.theme--light .vxe-tooltip--body{background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-input-border-color)}.vxe-tooltip--wrapper.theme--light.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-layout-background-color)}.vxe-tooltip--wrapper.theme--dark .vxe-tooltip--body{background:var(--vxe-ui-tooltip-dark-background-color);color:var(--vxe-ui-tooltip-dark-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--top .vxe-tooltip--arrow:before{border-top-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}.vxe-tooltip--wrapper.theme--dark.placement--bottom .vxe-tooltip--arrow:before{border-bottom-color:var(--vxe-ui-tooltip-dark-background-color)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-pc-ui",
|
|
3
|
-
"version": "4.20.
|
|
3
|
+
"version": "4.20.7",
|
|
4
4
|
"description": "A vue based PC component library",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"style": "lib/style.css",
|
|
28
28
|
"typings": "types/index.d.ts",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@vxe-ui/core": "^4.4.
|
|
30
|
+
"@vxe-ui/core": "^4.4.33"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
@@ -311,7 +311,8 @@ const VxeButtonComponent = defineVxeComponent({
|
|
|
311
311
|
const handleStyle = () => {
|
|
312
312
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
313
313
|
placement: popupOpts.placement || placement,
|
|
314
|
-
defaultPlacement:
|
|
314
|
+
defaultPlacement: popupOpts.defaultPlacement,
|
|
315
|
+
appendTo: popupOpts.appendTo,
|
|
315
316
|
teleportTo: btnTransfer
|
|
316
317
|
})
|
|
317
318
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -816,6 +816,7 @@ export default defineVxeComponent({
|
|
|
816
816
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
817
817
|
placement: popupOpts.placement,
|
|
818
818
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
819
|
+
appendTo: popupOpts.appendTo,
|
|
819
820
|
teleportTo: btnTransfer,
|
|
820
821
|
isMinWidth: false
|
|
821
822
|
})
|
|
@@ -333,6 +333,7 @@ export default defineVxeComponent({
|
|
|
333
333
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
334
334
|
placement: popupOpts.placement || placement,
|
|
335
335
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
336
|
+
appendTo: popupOpts.appendTo,
|
|
336
337
|
teleportTo: btnTransfer
|
|
337
338
|
})
|
|
338
339
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -1244,6 +1244,7 @@ export default defineVxeComponent({
|
|
|
1244
1244
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
1245
1245
|
placement: popupOpts.placement || placement,
|
|
1246
1246
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
1247
|
+
appendTo: popupOpts.appendTo,
|
|
1247
1248
|
teleportTo: btnTransfer
|
|
1248
1249
|
})
|
|
1249
1250
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -1045,6 +1045,7 @@ export default defineVxeComponent({
|
|
|
1045
1045
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
1046
1046
|
placement: popupOpts.placement || placement,
|
|
1047
1047
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
1048
|
+
appendTo: popupOpts.appendTo,
|
|
1048
1049
|
teleportTo: btnTransfer
|
|
1049
1050
|
})
|
|
1050
1051
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -245,6 +245,7 @@ export default defineVxeComponent({
|
|
|
245
245
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
246
246
|
placement: popupOpts.placement || placement,
|
|
247
247
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
248
|
+
appendTo: popupOpts.appendTo,
|
|
248
249
|
teleportTo: btnTransfer
|
|
249
250
|
})
|
|
250
251
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -155,6 +155,7 @@ export default defineVxeComponent({
|
|
|
155
155
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
156
156
|
placement: popupOpts.placement || placement,
|
|
157
157
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
158
|
+
appendTo: popupOpts.appendTo,
|
|
158
159
|
teleportTo: btnTransfer
|
|
159
160
|
})
|
|
160
161
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -36,6 +36,10 @@ export default defineVxeComponent({
|
|
|
36
36
|
props: {
|
|
37
37
|
id: [String, Number] as PropType<VxeScrollbarPropTypes.Id>,
|
|
38
38
|
viewId: [String, Number] as PropType<VxeScrollbarPropTypes.ViewId>,
|
|
39
|
+
theme: {
|
|
40
|
+
type: String as PropType<VxeScrollbarPropTypes.Theme>,
|
|
41
|
+
default: () => getConfig().scrollbar.theme
|
|
42
|
+
},
|
|
39
43
|
width: [String, Number] as PropType<VxeScrollbarPropTypes.Width>,
|
|
40
44
|
height: [String, Number] as PropType<VxeScrollbarPropTypes.Height>,
|
|
41
45
|
minWidth: [String, Number] as PropType<VxeScrollbarPropTypes.MinWidth>,
|
|
@@ -69,6 +73,10 @@ export default defineVxeComponent({
|
|
|
69
73
|
type: Object as PropType<VxeScrollbarPropTypes.ViewAttrs>,
|
|
70
74
|
default: () => getConfig().scrollbar.viewAttrs
|
|
71
75
|
},
|
|
76
|
+
viewStyle: {
|
|
77
|
+
type: Object as PropType<VxeScrollbarPropTypes.ViewStyle>,
|
|
78
|
+
default: () => getConfig().scrollbar.viewStyle
|
|
79
|
+
},
|
|
72
80
|
viewClassName: {
|
|
73
81
|
type: String as PropType<VxeScrollbarPropTypes.ViewClassName>,
|
|
74
82
|
default: () => getConfig().scrollbar.viewClassName
|
|
@@ -169,7 +177,7 @@ export default defineVxeComponent({
|
|
|
169
177
|
})
|
|
170
178
|
|
|
171
179
|
const computeWrapperClss = computed(() => {
|
|
172
|
-
const { native, className, padding } = props
|
|
180
|
+
const { native, theme, className, padding } = props
|
|
173
181
|
const { yThumbHeight, xThumbWidth } = reactData
|
|
174
182
|
const xToTop = computeXToTop.value
|
|
175
183
|
const yToLeft = computeYToLeft.value
|
|
@@ -179,6 +187,7 @@ export default defineVxeComponent({
|
|
|
179
187
|
const yAutoHide = computeYAutoHide.value
|
|
180
188
|
return domUtils.buildClass([
|
|
181
189
|
'vxe-scrollbar',
|
|
190
|
+
theme ? `theme--${theme}` : '',
|
|
182
191
|
`ov-x--${xVisible === false ? 'hidden' : 'visible'}`,
|
|
183
192
|
`ov-y--${yVisible === false ? 'hidden' : 'visible'}`,
|
|
184
193
|
`sx-pos--${xToTop ? 'top' : 'bottom'}`,
|
|
@@ -252,6 +261,14 @@ export default defineVxeComponent({
|
|
|
252
261
|
|
|
253
262
|
const scrollbarMethods: ScrollbarMethods = {
|
|
254
263
|
dispatchEvent,
|
|
264
|
+
getViewElem () {
|
|
265
|
+
const viewEl = refViewElem.value
|
|
266
|
+
return viewEl || null
|
|
267
|
+
},
|
|
268
|
+
getViewInnerElem () {
|
|
269
|
+
const viewInnerEl = refViewInnerElem.value
|
|
270
|
+
return viewInnerEl || null
|
|
271
|
+
},
|
|
255
272
|
scrollTo (left: ScrollToOptions | number, top?: number) {
|
|
256
273
|
const viewEl = refViewElem.value
|
|
257
274
|
if (viewEl) {
|
|
@@ -557,7 +574,7 @@ export default defineVxeComponent({
|
|
|
557
574
|
Object.assign($xeScrollbar, scrollbarMethods, scrollbarPrivateMethods)
|
|
558
575
|
|
|
559
576
|
const renderVN = () => {
|
|
560
|
-
const { id, native, loading, viewId, viewAttrs } = props
|
|
577
|
+
const { id, native, loading, viewId, viewAttrs, viewStyle } = props
|
|
561
578
|
const wrapperStyle = computeWrapperStyle.value
|
|
562
579
|
const wrapperClss = computeWrapperClss.value
|
|
563
580
|
const viewClss = computeViewClss.value
|
|
@@ -576,6 +593,7 @@ export default defineVxeComponent({
|
|
|
576
593
|
class: viewClss,
|
|
577
594
|
onScroll: scrollEvent,
|
|
578
595
|
id: viewId || null,
|
|
596
|
+
style: viewStyle,
|
|
579
597
|
...viewAttrs
|
|
580
598
|
}, [
|
|
581
599
|
h('div', {
|
|
@@ -613,6 +613,7 @@ export default defineVxeComponent({
|
|
|
613
613
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
614
614
|
placement: popupOpts.placement || placement,
|
|
615
615
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
616
|
+
appendTo: popupOpts.appendTo,
|
|
616
617
|
teleportTo: btnTransfer
|
|
617
618
|
})
|
|
618
619
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -444,6 +444,7 @@ export default defineVxeComponent({
|
|
|
444
444
|
const ppObj = updatePanelPlacement(targetElem, panelElem, {
|
|
445
445
|
placement: popupOpts.placement || placement,
|
|
446
446
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
447
|
+
appendTo: popupOpts.appendTo,
|
|
447
448
|
teleportTo: btnTransfer
|
|
448
449
|
})
|
|
449
450
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ref, h, reactive, inject, PropType, provide, computed, onUnmounted, watch, nextTick, onMounted } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
|
-
import {
|
|
3
|
+
import { VxeUI, useSize } from '../../ui'
|
|
4
4
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
5
5
|
import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
|
|
6
|
-
import {
|
|
6
|
+
import { isEnableConf } from '../../ui/src/utils'
|
|
7
7
|
import { createComponentLog } from '../../ui/src/log'
|
|
8
8
|
import XEUtils from 'xe-utils'
|
|
9
9
|
import VxeLoadingComponent from '../../loading'
|
|
@@ -11,6 +11,9 @@ import VxeScrollbarComponent from '../../scrollbar'
|
|
|
11
11
|
|
|
12
12
|
import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, TabsPrivateRef, VxeTabsPrivateComputed, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, TabsMethods, TabsPrivateMethods, VxeComponentStyleType } from '../../../types'
|
|
13
13
|
|
|
14
|
+
const { baseUtils, createEvent, getConfig, getIcon, globalEvents, permission, renderEmptyElement } = VxeUI
|
|
15
|
+
const { getDefVal } = baseUtils
|
|
16
|
+
|
|
14
17
|
const { warnLog, errLog } = createComponentLog('tabs')
|
|
15
18
|
|
|
16
19
|
const scrollbarOffsetSize = 20
|
|
@@ -55,7 +58,7 @@ export default defineVxeComponent({
|
|
|
55
58
|
},
|
|
56
59
|
useScrollbar: {
|
|
57
60
|
type: Boolean as PropType<VxeTabsPropTypes.UseScrollbar>,
|
|
58
|
-
default: () =>
|
|
61
|
+
default: () => getDefVal(getConfig().tabs.useScrollbar, getConfig().useScrollbar)
|
|
59
62
|
},
|
|
60
63
|
scrollbarConfig: Object as PropType<VxeTabsPropTypes.ScrollbarConfig>,
|
|
61
64
|
// 已废弃
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { h, ref, nextTick, onBeforeUnmount, onMounted, computed, reactive, watch, PropType, VNode } from 'vue'
|
|
2
2
|
import { defineVxeComponent } from '../../ui/src/comp'
|
|
3
3
|
import XEUtils from 'xe-utils'
|
|
4
|
-
import {
|
|
4
|
+
import { VxeUI, useSize } from '../../ui'
|
|
5
5
|
import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
|
|
6
6
|
import { getPopupAppendElement, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
|
|
7
7
|
import { getSlotVNs } from '../../ui/src/vn'
|
|
8
|
+
import VxeScrollbarComponent from '../../scrollbar'
|
|
8
9
|
|
|
9
|
-
import type { VxeTooltipPropTypes, VxeTooltipConstructor, VxeTooltipEmits, TooltipInternalData, TooltipPrivateMethods, TooltipReactData, TooltipMethods, TooltipPrivateRef, VxeComponentStyleType, ValueOf } from '../../../types'
|
|
10
|
+
import type { VxeTooltipPropTypes, VxeTooltipConstructor, VxeTooltipEmits, TooltipInternalData, TooltipPrivateMethods, TooltipReactData, TooltipMethods, TooltipPrivateRef, VxeComponentStyleType, ValueOf, VxeScrollbarInstance } from '../../../types'
|
|
11
|
+
|
|
12
|
+
const { baseUtils, getConfig, createEvent, globalEvents } = VxeUI
|
|
13
|
+
const { getDefVal } = baseUtils
|
|
10
14
|
|
|
11
15
|
function createReactData (): TooltipReactData {
|
|
12
16
|
return {
|
|
@@ -28,6 +32,7 @@ function createReactData (): TooltipReactData {
|
|
|
28
32
|
|
|
29
33
|
function createInternalData (): TooltipInternalData {
|
|
30
34
|
return {
|
|
35
|
+
// scrollbarViewEl: undefined,
|
|
31
36
|
// showDelayTip: undefined
|
|
32
37
|
}
|
|
33
38
|
}
|
|
@@ -115,7 +120,12 @@ export default defineVxeComponent({
|
|
|
115
120
|
appendTo: {
|
|
116
121
|
type: [String, Function] as PropType<VxeTooltipPropTypes.AppendTo>,
|
|
117
122
|
default: () => getConfig().tooltip.appendTo
|
|
118
|
-
}
|
|
123
|
+
},
|
|
124
|
+
useScrollbar: {
|
|
125
|
+
type: Boolean as PropType<VxeTooltipPropTypes.UseScrollbar>,
|
|
126
|
+
default: () => getDefVal(getConfig().tooltip.useScrollbar, getConfig().useScrollbar)
|
|
127
|
+
},
|
|
128
|
+
scrollbarConfig: Object as PropType<VxeTooltipPropTypes.ScrollbarConfig>
|
|
119
129
|
},
|
|
120
130
|
emits: [
|
|
121
131
|
'update:modelValue',
|
|
@@ -134,7 +144,8 @@ export default defineVxeComponent({
|
|
|
134
144
|
const internalData = createInternalData()
|
|
135
145
|
|
|
136
146
|
const refElem = ref<HTMLDivElement>()
|
|
137
|
-
const
|
|
147
|
+
const contentScrollbar = ref<VxeScrollbarInstance>()
|
|
148
|
+
const contentWrapperElem = ref<HTMLDivElement>()
|
|
138
149
|
|
|
139
150
|
const computeWrapperStyle = computed(() => {
|
|
140
151
|
const { width, height, minHeight, minWidth, maxHeight, maxWidth } = props
|
|
@@ -251,7 +262,9 @@ export default defineVxeComponent({
|
|
|
251
262
|
tipStore.placement = 'top'
|
|
252
263
|
tipStore.style = { width: 'auto', left: 0, top: 0, zIndex: props.zIndex || reactData.tipZindex }
|
|
253
264
|
tipStore.arrowStyle = { left: '50%' }
|
|
254
|
-
return $xeTooltip.updatePlacement()
|
|
265
|
+
return $xeTooltip.updatePlacement().then(() => {
|
|
266
|
+
return $xeTooltip.updatePlacement()
|
|
267
|
+
})
|
|
255
268
|
}
|
|
256
269
|
|
|
257
270
|
const handleDelayFn = () => {
|
|
@@ -314,7 +327,7 @@ export default defineVxeComponent({
|
|
|
314
327
|
}
|
|
315
328
|
|
|
316
329
|
const updateTipStyle = () => {
|
|
317
|
-
const { placement, defaultPlacement, isArrow } = props
|
|
330
|
+
const { placement, defaultPlacement, appendTo, isArrow } = props
|
|
318
331
|
const { tipTarget: targetElem, tipStore, tipPos, tipZindex } = reactData
|
|
319
332
|
const panelElem = refElem.value
|
|
320
333
|
if (!targetElem || !panelElem) {
|
|
@@ -348,6 +361,7 @@ export default defineVxeComponent({
|
|
|
348
361
|
defaultLeft: left,
|
|
349
362
|
placement: placement,
|
|
350
363
|
defaultPlacement: defaultPlacement,
|
|
364
|
+
appendTo: appendTo,
|
|
351
365
|
isMinWidth: false,
|
|
352
366
|
teleportTo: true
|
|
353
367
|
})
|
|
@@ -416,7 +430,7 @@ export default defineVxeComponent({
|
|
|
416
430
|
Object.assign($xeTooltip, tooltipMethods, tooltipPrivateMethods)
|
|
417
431
|
|
|
418
432
|
const renderContent = () => {
|
|
419
|
-
const { useHtml, useHTML } = props
|
|
433
|
+
const { useScrollbar, theme, useHtml, useHTML } = props
|
|
420
434
|
const { tipContent } = reactData
|
|
421
435
|
const wrapperStyle = computeWrapperStyle.value
|
|
422
436
|
const contentSlot = slots.content
|
|
@@ -439,9 +453,22 @@ export default defineVxeComponent({
|
|
|
439
453
|
key: 'cd'
|
|
440
454
|
}, `${tipContent}`))
|
|
441
455
|
}
|
|
456
|
+
if (useScrollbar) {
|
|
457
|
+
return h(VxeScrollbarComponent, {
|
|
458
|
+
key: 5,
|
|
459
|
+
ref: contentScrollbar,
|
|
460
|
+
class: 'vxe-tooltip--scrollbar-content',
|
|
461
|
+
theme,
|
|
462
|
+
viewClassName: 'vxe-tooltip--scrollbar-content-view',
|
|
463
|
+
viewInnerClassName: 'vxe-tooltip--scrollbar-content-inner',
|
|
464
|
+
viewStyle: wrapperStyle
|
|
465
|
+
}, {
|
|
466
|
+
default: () => contVNs
|
|
467
|
+
})
|
|
468
|
+
}
|
|
442
469
|
return h('div', {
|
|
443
470
|
key: 3,
|
|
444
|
-
ref:
|
|
471
|
+
ref: contentWrapperElem,
|
|
445
472
|
class: 'vxe-tooltip--content',
|
|
446
473
|
style: wrapperStyle
|
|
447
474
|
}, contVNs)
|
|
@@ -508,7 +535,15 @@ export default defineVxeComponent({
|
|
|
508
535
|
handleDelayFn()
|
|
509
536
|
|
|
510
537
|
onMounted(() => {
|
|
511
|
-
const
|
|
538
|
+
const $scrollbar = contentScrollbar.value
|
|
539
|
+
if ($scrollbar) {
|
|
540
|
+
const viewEl = $scrollbar.getViewElem()
|
|
541
|
+
if (viewEl) {
|
|
542
|
+
viewEl.addEventListener('wheel', wheelEvent, { passive: false })
|
|
543
|
+
internalData.scrollbarViewEl = viewEl
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
const contentWrapperfEl = contentWrapperElem.value
|
|
512
547
|
if (contentWrapperfEl) {
|
|
513
548
|
contentWrapperfEl.addEventListener('wheel', wheelEvent, { passive: false })
|
|
514
549
|
}
|
|
@@ -550,16 +585,20 @@ export default defineVxeComponent({
|
|
|
550
585
|
|
|
551
586
|
onBeforeUnmount(() => {
|
|
552
587
|
const { target } = reactData
|
|
588
|
+
const { scrollbarViewEl } = internalData
|
|
553
589
|
const panelElem = refElem.value
|
|
554
590
|
if (target) {
|
|
555
591
|
target.onmouseenter = null
|
|
556
592
|
target.onmouseleave = null
|
|
557
593
|
target.onclick = null
|
|
558
594
|
}
|
|
559
|
-
const contentWrapperfEl =
|
|
595
|
+
const contentWrapperfEl = contentWrapperElem.value
|
|
560
596
|
if (contentWrapperfEl) {
|
|
561
597
|
contentWrapperfEl.removeEventListener('wheel', wheelEvent)
|
|
562
598
|
}
|
|
599
|
+
if (scrollbarViewEl) {
|
|
600
|
+
scrollbarViewEl.removeEventListener('wheel', wheelEvent)
|
|
601
|
+
}
|
|
563
602
|
if (panelElem) {
|
|
564
603
|
const parentNode = panelElem.parentNode
|
|
565
604
|
if (parentNode) {
|
|
@@ -499,6 +499,7 @@ export default defineVxeComponent({
|
|
|
499
499
|
isMinWidth: !popupOpts.width,
|
|
500
500
|
placement: popupOpts.placement || placement,
|
|
501
501
|
defaultPlacement: popupOpts.defaultPlacement,
|
|
502
|
+
appendTo: popupOpts.appendTo,
|
|
502
503
|
teleportTo: btnTransfer
|
|
503
504
|
})
|
|
504
505
|
const panelStyle: { [key: string]: string | number } = Object.assign(ppObj.style, {
|
package/packages/ui/src/dom.ts
CHANGED
|
@@ -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
|
|
219
|
-
const
|
|
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 -=
|
|
271
|
-
left -=
|
|
274
|
+
top -= parentWrapperOffsetTop
|
|
275
|
+
left -= parentWrapperOffsetLeft
|
|
272
276
|
} else {
|
|
273
277
|
if (placement === 'top') {
|
|
274
278
|
panelPlacement = 'top'
|
|
@@ -191,4 +191,18 @@
|
|
|
191
191
|
&:active {
|
|
192
192
|
background-color: var(--vxe-ui-scrollbar-thumb-active-background-color);
|
|
193
193
|
}
|
|
194
|
-
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// 滚动条主题色
|
|
197
|
+
.vxe-scrollbar {
|
|
198
|
+
&.theme--light {
|
|
199
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(0,0,0,0.4);
|
|
200
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(0,0,0,0.5);
|
|
201
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(0,0,0,0.6);
|
|
202
|
+
}
|
|
203
|
+
&.theme--dark {
|
|
204
|
+
--vxe-ui-scrollbar-thumb-background-color: rgba(255,255,255,0.4);
|
|
205
|
+
--vxe-ui-scrollbar-thumb-hover-background-color: rgba(255,255,255,0.5);
|
|
206
|
+
--vxe-ui-scrollbar-thumb-active-background-color: rgba(255,255,255,0.6);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
@@ -150,6 +150,10 @@ export namespace VxeCascaderPropTypes {
|
|
|
150
150
|
*/
|
|
151
151
|
defaultPlacement?: 'top' | 'bottom' | '' | null
|
|
152
152
|
transfer?: boolean
|
|
153
|
+
/**
|
|
154
|
+
* 挂载到指定元素下
|
|
155
|
+
*/
|
|
156
|
+
appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
|
|
153
157
|
height?: number | string
|
|
154
158
|
nodeWidth?: number | string
|
|
155
159
|
nodeHeight?: number | string
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RenderFunction, SetupContext, Ref } from 'vue'
|
|
2
|
-
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, ValueOf } from '@vxe-ui/core'
|
|
2
|
+
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, ValueOf, VxeComponentStyleType } from '@vxe-ui/core'
|
|
3
3
|
|
|
4
4
|
/* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
|
|
5
5
|
|
|
@@ -26,6 +26,7 @@ export interface VxeScrollbarPrivateRef extends ScrollbarPrivateRef { }
|
|
|
26
26
|
export namespace VxeScrollbarPropTypes {
|
|
27
27
|
export type Id = number | string
|
|
28
28
|
export type ViewId = number | string
|
|
29
|
+
export type Theme = '' | 'light' | 'dark'
|
|
29
30
|
export type Width = number | string
|
|
30
31
|
export type Height = number | string
|
|
31
32
|
export type MinWidth = number | string
|
|
@@ -73,6 +74,7 @@ export namespace VxeScrollbarPropTypes {
|
|
|
73
74
|
}
|
|
74
75
|
export type ClassName = string
|
|
75
76
|
export type ViewAttrs = Record<string, any>
|
|
77
|
+
export type ViewStyle = VxeComponentStyleType
|
|
76
78
|
export type ViewClassName = string
|
|
77
79
|
export type ViewInnerClassName = string
|
|
78
80
|
export type AutoResize = boolean
|
|
@@ -88,6 +90,10 @@ export interface VxeScrollbarProps {
|
|
|
88
90
|
* View ID
|
|
89
91
|
*/
|
|
90
92
|
viewId?: VxeScrollbarPropTypes.ViewId
|
|
93
|
+
/**
|
|
94
|
+
* 主题色
|
|
95
|
+
*/
|
|
96
|
+
theme?: VxeScrollbarPropTypes.Theme
|
|
91
97
|
/**
|
|
92
98
|
* 容器宽度
|
|
93
99
|
*/
|
|
@@ -148,6 +154,10 @@ export interface VxeScrollbarProps {
|
|
|
148
154
|
* 给视图元素附加属性
|
|
149
155
|
*/
|
|
150
156
|
viewAttrs?: VxeScrollbarPropTypes.ViewAttrs
|
|
157
|
+
/**
|
|
158
|
+
* 给视图元素附加样式
|
|
159
|
+
*/
|
|
160
|
+
viewStyle?: VxeScrollbarPropTypes.ViewStyle
|
|
151
161
|
/**
|
|
152
162
|
* 给视图元素附加 class
|
|
153
163
|
*/
|
|
@@ -215,6 +225,14 @@ export interface ScrollbarMethods {
|
|
|
215
225
|
* 滚动元素到可见位置
|
|
216
226
|
*/
|
|
217
227
|
scrollIntoView(): void
|
|
228
|
+
/**
|
|
229
|
+
* 获取滚动视图元素
|
|
230
|
+
*/
|
|
231
|
+
getViewElem(): HTMLElement | null
|
|
232
|
+
/**
|
|
233
|
+
* 获取滚动视图内容包裹元素
|
|
234
|
+
*/
|
|
235
|
+
getViewInnerElem(): HTMLElement | null
|
|
218
236
|
/**
|
|
219
237
|
* 重新计算样式
|
|
220
238
|
* 对于某些特殊场景可能会用到,比如更新内容
|
|
@@ -1598,6 +1598,7 @@ export namespace VxeTablePropTypes {
|
|
|
1598
1598
|
*/
|
|
1599
1599
|
defaultPlacement?: VxeTooltipPropTypes.DefaultPlacement
|
|
1600
1600
|
popupClassName?: VxeTooltipPropTypes.PopupClassName
|
|
1601
|
+
useScrollbar?: VxeTooltipPropTypes.UseScrollbar
|
|
1601
1602
|
/**
|
|
1602
1603
|
* 该方法可以通过返回值来重写默认的提示内容,可以返回 null 使用默认的提示内容,可以返回空内容去掉指定单元格的提示内容
|
|
1603
1604
|
*/
|