From 2b668bd815109f94b3ffa574c59e42a5bd331389 Mon Sep 17 00:00:00 2001
From: btea <2356281422@qq.com>
Date: Wed, 21 Jun 2023 19:56:02 +0800
Subject: [PATCH 01/29] test: [table] add show-overflow-tooltip to table and
table-column (#13323)
---
.../components/table/__tests__/table.test.ts | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/packages/components/table/__tests__/table.test.ts b/packages/components/table/__tests__/table.test.ts
index 0e3519c434..303cb5b6ae 100644
--- a/packages/components/table/__tests__/table.test.ts
+++ b/packages/components/table/__tests__/table.test.ts
@@ -1632,4 +1632,31 @@ describe('Table.vue', () => {
// 5 rows and 2 columns should be 10
expect(findTooltipEl).toEqual(10)
})
+
+ it('add show-overflow-tooltip to table and table-column', async () => {
+ const wrapper = mount({
+ components: {
+ ElTable,
+ ElTableColumn,
+ },
+
+ template: `
+
+
+
+
+ `,
+
+ data() {
+ const testData = getTestData() as any
+ return {
+ testData,
+ }
+ },
+ })
+
+ await doubleWait()
+ const findTooltipEl = wrapper.findAll('.el-tooltip').length
+ expect(findTooltipEl).toEqual(5)
+ })
})
From 8558957b28ab9669cb5048f9416c1ba6d57b2372 Mon Sep 17 00:00:00 2001
From: zepeng <75007029+yj-liuzepeng@users.noreply.github.com>
Date: Thu, 22 Jun 2023 12:51:53 +0800
Subject: [PATCH 02/29] docs(components): [image] update image slot viewer
description (#13325)
---
docs/en-US/component/image.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/en-US/component/image.md b/docs/en-US/component/image.md
index a2571102dd..ccd8e13578 100644
--- a/docs/en-US/component/image.md
+++ b/docs/en-US/component/image.md
@@ -93,7 +93,7 @@ image/image-preview
| ----------- | -------------------------------------------------------- |
| placeholder | custom placeholder content when image hasn't loaded yet. |
| error | custom image load failed content. |
-| viewer | description of the image. |
+| viewer | custom content when image preview. |
## Image Viewer API
From 06f974b311a3899bc2a642750b728ef047803728 Mon Sep 17 00:00:00 2001
From: wonderl17 <31885971+wonderl17@users.noreply.github.com>
Date: Thu, 22 Jun 2023 15:55:50 +0800
Subject: [PATCH 03/29] fix: correct sass map has-key parameter (#13132)
fix: correct map.has-key using
---
docs/.vitepress/vitepress/styles/mixins.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/.vitepress/vitepress/styles/mixins.scss b/docs/.vitepress/vitepress/styles/mixins.scss
index 27c85422b5..6946b2b60e 100644
--- a/docs/.vitepress/vitepress/styles/mixins.scss
+++ b/docs/.vitepress/vitepress/styles/mixins.scss
@@ -23,7 +23,7 @@ $breakpoints: (
) !default;
@mixin respond-to($breakpoint) {
- @if #{map.has-key($breakpoints, $breakpoints)} {
+ @if #{map.has-key($breakpoints, $breakpoint)} {
@media screen and (min-width: #{map.get($breakpoints, $breakpoint)}) {
@content;
}
From ce547913387ffe58fc86f33d8bf6621842c1e2fd Mon Sep 17 00:00:00 2001
From: vaebe <52314078+vaebe@users.noreply.github.com>
Date: Fri, 23 Jun 2023 10:23:30 +0800
Subject: [PATCH 04/29] docs(components): [dialog] add description of props
modal-class (#13122)
---
docs/en-US/component/dialog.md | 43 +++++++++++++++++-----------------
1 file changed, 22 insertions(+), 21 deletions(-)
diff --git a/docs/en-US/component/dialog.md b/docs/en-US/component/dialog.md
index 8af567c556..caa4bf56a5 100644
--- a/docs/en-US/component/dialog.md
+++ b/docs/en-US/component/dialog.md
@@ -113,27 +113,28 @@ When using `modal` = false, please make sure that `append-to-body` was set to **
## Attributes
-| Name | Description | Type | Accepted Values | Default |
-| -------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------- | --------------- | ------- |
-| model-value / v-model | visibility of Dialog | boolean | — | — |
-| title | title of Dialog. Can also be passed with a named slot (see the following table) | string | — | — |
-| width | width of Dialog | string / number | — | 50% |
-| fullscreen | whether the Dialog takes up full screen | boolean | — | false |
-| top | value for `margin-top` of Dialog CSS | string | — | 15vh |
-| modal | whether a mask is displayed | boolean | — | true |
-| append-to-body | whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` | boolean | — | false |
-| lock-scroll | whether scroll of body is disabled while Dialog is displayed | boolean | — | true |
-| custom-class ^(deprecated) | custom class names for Dialog | string | — | — |
-| open-delay | Time(milliseconds) before open | number | — | 0 |
-| close-delay | Time(milliseconds) before close | number | — | 0 |
-| close-on-click-modal | whether the Dialog can be closed by clicking the mask | boolean | — | true |
-| close-on-press-escape | whether the Dialog can be closed by pressing ESC | boolean | — | true |
-| show-close | whether to show a close button | boolean | — | true |
-| before-close | callback before Dialog closes, and it will prevent Dialog from closing | Function(done) (done is used to close the Dialog) | — | — |
-| draggable | enable dragging feature for Dialog | boolean | — | false |
-| center | whether to align the header and footer in center | boolean | — | false |
-| align-center | whether to align the dialog both horizontally and vertically | boolean | — | false |
-| destroy-on-close | Destroy elements in Dialog when closed | boolean | — | false |
+| Name | Description | Type | Accepted Values | Default |
+|----------------------------|---------------------------------------------------------------------------------------------------|--------------------------------------------------| --------------- |--------|
+| model-value / v-model | visibility of Dialog | boolean | — | — |
+| title | title of Dialog. Can also be passed with a named slot (see the following table) | string | — | — |
+| width | width of Dialog | string / number | — | 50% |
+| fullscreen | whether the Dialog takes up full screen | boolean | — | false |
+| top | value for `margin-top` of Dialog CSS | string | — | 15vh |
+| modal | whether a mask is displayed | boolean | — | true |
+| modal-class | custom class names for mask | string | — | — |
+| append-to-body | whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` | boolean | — | false |
+| lock-scroll | whether scroll of body is disabled while Dialog is displayed | boolean | — | true |
+| custom-class ^(deprecated) | custom class names for Dialog | string | — | — |
+| open-delay | Time(milliseconds) before open | number | — | 0 |
+| close-delay | Time(milliseconds) before close | number | — | 0 |
+| close-on-click-modal | whether the Dialog can be closed by clicking the mask | boolean | — | true |
+| close-on-press-escape | whether the Dialog can be closed by pressing ESC | boolean | — | true |
+| show-close | whether to show a close button | boolean | — | true |
+| before-close | callback before Dialog closes, and it will prevent Dialog from closing | Function(done) (done is used to close the Dialog) | — | — |
+| draggable | enable dragging feature for Dialog | boolean | — | false |
+| center | whether to align the header and footer in center | boolean | — | false |
+| align-center | whether to align the dialog both horizontally and vertically | boolean | — | false |
+| destroy-on-close | Destroy elements in Dialog when closed | boolean | — | false |
:::warning
From c6ab1804e47da10de742af734fa71a81a5c79b3a Mon Sep 17 00:00:00 2001
From: Hefty
Date: Sat, 24 Jun 2023 22:15:35 +0800
Subject: [PATCH 05/29] fix(components): [date-picker] One input affect the
other input (#12181)
* fix(components): [date-picker] One input affects the other input
* fix: check if minDate or maxDate is empty
* chore: remove debugger
---
.../src/date-picker-com/panel-date-range.vue | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/packages/components/date-picker/src/date-picker-com/panel-date-range.vue b/packages/components/date-picker/src/date-picker-com/panel-date-range.vue
index ab2f04f810..601d4b775b 100644
--- a/packages/components/date-picker/src/date-picker-com/panel-date-range.vue
+++ b/packages/components/date-picker/src/date-picker-com/panel-date-range.vue
@@ -543,7 +543,6 @@ const handleMaxTimeClose = () => {
const handleDateInput = (value: string | null, type: ChangeType) => {
dateUserInput.value[type] = value
const parsedValueD = dayjs(value, dateFormat.value).locale(lang.value)
-
if (parsedValueD.isValid()) {
if (disabledDate && disabledDate(parsedValueD.toDate())) {
return
@@ -554,7 +553,10 @@ const handleDateInput = (value: string | null, type: ChangeType) => {
.year(parsedValueD.year())
.month(parsedValueD.month())
.date(parsedValueD.date())
- if (!props.unlinkPanels) {
+ if (
+ !props.unlinkPanels &&
+ (!maxDate.value || maxDate.value.isBefore(minDate.value))
+ ) {
rightDate.value = parsedValueD.add(1, 'month')
maxDate.value = minDate.value.add(1, 'month')
}
@@ -564,7 +566,10 @@ const handleDateInput = (value: string | null, type: ChangeType) => {
.year(parsedValueD.year())
.month(parsedValueD.month())
.date(parsedValueD.date())
- if (!props.unlinkPanels) {
+ if (
+ !props.unlinkPanels &&
+ (!minDate.value || minDate.value.isAfter(maxDate.value))
+ ) {
leftDate.value = parsedValueD.subtract(1, 'month')
minDate.value = maxDate.value.subtract(1, 'month')
}
From 5d2bedc86721c3ca66413bc93238f83689868402 Mon Sep 17 00:00:00 2001
From: xy <1454556135@qq.com>
Date: Sun, 25 Jun 2023 09:29:10 +0800
Subject: [PATCH 06/29] fix(components): [virtual-list] Resetting the vertical
scrollbar state (#13319)
---
packages/components/virtual-list/src/builders/build-grid.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/components/virtual-list/src/builders/build-grid.ts b/packages/components/virtual-list/src/builders/build-grid.ts
index fcbaccc1f7..9133ca1dfb 100644
--- a/packages/components/virtual-list/src/builders/build-grid.ts
+++ b/packages/components/virtual-list/src/builders/build-grid.ts
@@ -339,7 +339,7 @@ const createGrid = ({
},
(x: number, y: number) => {
hScrollbar.value?.onMouseUp?.()
- hScrollbar.value?.onMouseUp?.()
+ vScrollbar.value?.onMouseUp?.()
const width = unref(parsedWidth)
const height = unref(parsedHeight)
scrollTo({
From 4e9fc0854cf8785a6daed9f1b69577a771722c07 Mon Sep 17 00:00:00 2001
From: wzc520pyfm <69044080+wzc520pyfm@users.noreply.github.com>
Date: Mon, 26 Jun 2023 17:55:23 +0800
Subject: [PATCH 07/29] refactor(components): [select] override the class using
computed (#13302)
* refactor(components): [select] override the class using computed
* refactor(components): [select] shorthand class object
---
packages/components/select/src/option.vue | 22 +++---
packages/components/select/src/select.vue | 87 +++++++++++++----------
2 files changed, 65 insertions(+), 44 deletions(-)
diff --git a/packages/components/select/src/option.vue b/packages/components/select/src/option.vue
index 8def3cb047..cc0758b6a7 100644
--- a/packages/components/select/src/option.vue
+++ b/packages/components/select/src/option.vue
@@ -1,14 +1,7 @@
@@ -21,12 +14,14 @@
+
+
diff --git a/packages/theme-chalk/src/form.scss b/packages/theme-chalk/src/form.scss
index a41848bba5..0f6e35aad0 100644
--- a/packages/theme-chalk/src/form.scss
+++ b/packages/theme-chalk/src/form.scss
@@ -91,13 +91,6 @@ $form-item-label-top-margin-bottom: map.merge(
display: block;
}
}
-
- .#{$namespace}-input {
- @include set-css-var-value(
- 'input-width',
- getCssVar('form-inline-content-width')
- );
- }
}
@each $size in (large, default, small) {
From e444af22ed8de7fbb1d3dad32ccbd13f08d85d21 Mon Sep 17 00:00:00 2001
From: 0song <82012629+0song@users.noreply.github.com>
Date: Sat, 1 Jul 2023 01:40:15 +0800
Subject: [PATCH 12/29] chore: update doc (#13435)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 4e15e3f7d3..264864acd7 100644
--- a/README.md
+++ b/README.md
@@ -75,7 +75,7 @@ You can also try Element Plus out with the components built-in playground.
-
+
|
From fbc93807defdbcea9aa524c0b8f5d43486bcbc5c Mon Sep 17 00:00:00 2001
From: 0song <82012629+0song@users.noreply.github.com>
Date: Sat, 1 Jul 2023 12:01:32 +0800
Subject: [PATCH 13/29] chore: update doc (#13440)
---
docs/.vitepress/config/sponsors.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/.vitepress/config/sponsors.ts b/docs/.vitepress/config/sponsors.ts
index 5bfdf8625e..144eb3ca79 100644
--- a/docs/.vitepress/config/sponsors.ts
+++ b/docs/.vitepress/config/sponsors.ts
@@ -4,7 +4,7 @@ export const rightRichTextSponsors = [
img: '/images/sponsors/MISBoot.png',
url: 'https://www.misboot.com/?from=element-plus',
slogan: 'Low-code platform for rapid development',
- slogan_cn: '低代码开发平台,应用快速开发',
+ slogan_cn: '低代码开发平台,应用可视化快速开发',
slogan_index: '低代码开发平台,应用快速开发',
},
]
From 2f8f477e0dd4d704de0584849d513d897eb798fe Mon Sep 17 00:00:00 2001
From: Xc <124118265@qq.com>
Date: Sun, 2 Jul 2023 17:24:27 +0800
Subject: [PATCH 14/29] fix(components): [checkbox] default after border color
is transparent (#13402)
---
packages/theme-chalk/src/checkbox.scss | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/packages/theme-chalk/src/checkbox.scss b/packages/theme-chalk/src/checkbox.scss
index 7919a111eb..1e368e6782 100644
--- a/packages/theme-chalk/src/checkbox.scss
+++ b/packages/theme-chalk/src/checkbox.scss
@@ -167,6 +167,7 @@ $checkbox-bordered-input-width: map.merge(
&::after {
transform: rotate(45deg) scaleY(1);
+ border-color: getCssVar('checkbox-checked-icon-color');
}
}
@@ -226,7 +227,7 @@ $checkbox-bordered-input-width: map.merge(
&::after {
box-sizing: content-box;
content: '';
- border: 1px solid getCssVar('checkbox-checked-icon-color');
+ border: 1px solid transparent;
border-left: 0;
border-top: 0;
height: 7px;
From 6f4560e57a2299595be9e6cc6d88902cdd04b29d Mon Sep 17 00:00:00 2001
From: btea <2356281422@qq.com>
Date: Sun, 2 Jul 2023 17:26:19 +0800
Subject: [PATCH 15/29] fix(components): [table] multiple line ellipsis tooltip
takes effect (#12805)
---
.../table/src/table-body/events-helper.ts | 25 +++++++++++++++----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/packages/components/table/src/table-body/events-helper.ts b/packages/components/table/src/table-body/events-helper.ts
index cb1bc326d8..f58f86151e 100644
--- a/packages/components/table/src/table-body/events-helper.ts
+++ b/packages/components/table/src/table-body/events-helper.ts
@@ -1,7 +1,7 @@
// @ts-nocheck
import { h, inject, ref } from 'vue'
import { debounce } from 'lodash-unified'
-import { getStyle, hasClass } from '@element-plus/utils'
+import { hasClass } from '@element-plus/utils'
import { useZIndex } from '@element-plus/hooks'
import { createTablePopper, getCell, getColumnByCell } from '../util'
import { TABLE_INJECTION_KEY } from '../tokens'
@@ -49,6 +49,19 @@ function useEvents(props: Partial>) {
const handleMouseLeave = debounce(() => {
props.store.commit('setHoverRow', null)
}, 30)
+ const getPadding = (el: HTMLElement) => {
+ const style = window.getComputedStyle(el, null)
+ const paddingLeft = Number.parseInt(style.paddingLeft, 10) || 0
+ const paddingRight = Number.parseInt(style.paddingRight, 10) || 0
+ const paddingTop = Number.parseInt(style.paddingTop, 10) || 0
+ const paddingBottom = Number.parseInt(style.paddingBottom, 10) || 0
+ return {
+ left: paddingLeft,
+ right: paddingRight,
+ top: paddingTop,
+ bottom: paddingBottom,
+ }
+ }
const handleCellMouseEnter = (
event: MouseEvent,
row: T,
@@ -103,11 +116,13 @@ function useEvents(props: Partial>) {
* - Actual: 188.00000762939453
*/
const rangeWidth = Math.round(range.getBoundingClientRect().width)
- const padding =
- (Number.parseInt(getStyle(cellChild, 'paddingLeft'), 10) || 0) +
- (Number.parseInt(getStyle(cellChild, 'paddingRight'), 10) || 0)
+ const rangeHeight = Math.round(range.getBoundingClientRect().height)
+ const { top, left, right, bottom } = getPadding(cellChild)
+ const horizontalPadding = left + right
+ const verticalPadding = top + bottom
if (
- rangeWidth + padding > cellChild.offsetWidth ||
+ rangeWidth + horizontalPadding > cellChild.offsetWidth ||
+ rangeHeight + verticalPadding > cellChild.offsetHeight ||
cellChild.scrollWidth > cellChild.offsetWidth
) {
createTablePopper(
From 4d141a222073ac7e7ca97fca51664bec4ffddd0a Mon Sep 17 00:00:00 2001
From: xiaoming
Date: Sun, 2 Jul 2023 17:30:29 +0800
Subject: [PATCH 16/29] fix(style): [select] tooltip positioning is incorrect
(#13424)
fix(style): [select] tooltip positioning is incorrect (#13251 #13422)
---
packages/components/select/src/select.vue | 7 ++++++-
packages/components/select/src/useSelect.ts | 8 +++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/packages/components/select/src/select.vue b/packages/components/select/src/select.vue
index 9c6037d2e2..076768002f 100644
--- a/packages/components/select/src/select.vue
+++ b/packages/components/select/src/select.vue
@@ -64,6 +64,7 @@
>
{
const input = ref(null)
const iOSInput = ref(null)
const tooltipRef = ref | null>(null)
+ const tagTooltipRef = ref | null>(null)
const tags = ref(null)
const selectWrapper = ref(null)
const scrollbar = ref<{
@@ -916,7 +917,10 @@ export const useSelect = (props, states: States, ctx) => {
const handleMouseLeave = () => {
states.mouseEnter = false
}
-
+ const handleDeleteTooltipTag = (event, tag) => {
+ deleteTag(event, tag)
+ tagTooltipRef.value?.updatePopper?.()
+ }
return {
optionList,
optionsArray,
@@ -956,6 +960,7 @@ export const useSelect = (props, states: States, ctx) => {
selectOption,
getValueKey,
navigateOptions,
+ handleDeleteTooltipTag,
dropMenuVisible,
queryChange,
groupQueryChange,
@@ -967,6 +972,7 @@ export const useSelect = (props, states: States, ctx) => {
input,
iOSInput,
tooltipRef,
+ tagTooltipRef,
tags,
selectWrapper,
scrollbar,
From 5aa7693c71cc5eb5adaa1eb28359fc26fd780711 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=90=9B?=
Date: Mon, 3 Jul 2023 00:32:01 +0800
Subject: [PATCH 17/29] fix: tree content checkbox height larger than item
height, close #13396 (#13446)
---
packages/theme-chalk/src/checkbox.scss | 5 ++++-
packages/theme-chalk/src/common/var.scss | 1 +
packages/theme-chalk/src/tree.scss | 4 +++-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/packages/theme-chalk/src/checkbox.scss b/packages/theme-chalk/src/checkbox.scss
index 1e368e6782..941f8842f8 100644
--- a/packages/theme-chalk/src/checkbox.scss
+++ b/packages/theme-chalk/src/checkbox.scss
@@ -49,7 +49,10 @@ $checkbox-bordered-input-width: map.merge(
white-space: nowrap;
user-select: none;
margin-right: 30px;
- height: map.get($checkbox-height, 'default');
+ height: getCssVarWithDefault(
+ 'checkbox-height',
+ map.get($checkbox-height, 'default')
+ );
@include when(disabled) {
cursor: not-allowed;
diff --git a/packages/theme-chalk/src/common/var.scss b/packages/theme-chalk/src/common/var.scss
index 276db4fbc5..639ddc0b7f 100644
--- a/packages/theme-chalk/src/common/var.scss
+++ b/packages/theme-chalk/src/common/var.scss
@@ -950,6 +950,7 @@ $text-font-size: map.merge(
$tree: () !default;
$tree: map.merge(
(
+ 'node-content-height': 26px,
'node-hover-bg-color': getCssVar('fill-color', 'light'),
'text-color': getCssVar('text-color-regular'),
'expand-icon-color': getCssVar('text-color-placeholder'),
diff --git a/packages/theme-chalk/src/tree.scss b/packages/theme-chalk/src/tree.scss
index f0eef07075..a957ab7485 100644
--- a/packages/theme-chalk/src/tree.scss
+++ b/packages/theme-chalk/src/tree.scss
@@ -58,9 +58,11 @@
}
@include e(content) {
+ @include css-var-from-global('checkbox-height', 'tree-node-content-height');
+
display: flex;
align-items: center;
- height: 26px;
+ height: getCssVar('tree-node-content-height');
cursor: pointer;
& > .#{$namespace}-tree-node__expand-icon {
From ff6db7dcf78c6a864bf84e6291ff4371be8d4e09 Mon Sep 17 00:00:00 2001
From: 754664196 <82307113+754664196@users.noreply.github.com>
Date: Tue, 4 Jul 2023 15:10:31 +0800
Subject: [PATCH 18/29] docs: [progress] remove useless style (#13465)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
docs(docs):circular-progress-bar文档出现了多余的css信息
Co-authored-by: HeZhi
---
docs/examples/progress/circular-progress-bar.vue | 4 ----
1 file changed, 4 deletions(-)
diff --git a/docs/examples/progress/circular-progress-bar.vue b/docs/examples/progress/circular-progress-bar.vue
index 8090166de2..6dc5ea8d0b 100644
--- a/docs/examples/progress/circular-progress-bar.vue
+++ b/docs/examples/progress/circular-progress-bar.vue
@@ -8,10 +8,6 @@