diff --git a/components/lib/autocomplete/AutoComplete.vue b/components/lib/autocomplete/AutoComplete.vue
index 14be34fac..e5022d4e3 100755
--- a/components/lib/autocomplete/AutoComplete.vue
+++ b/components/lib/autocomplete/AutoComplete.vue
@@ -777,8 +777,13 @@ export default {
isValidSelectedOption(option) {
return this.isValidOption(option) && this.isSelected(option);
},
+ isEquals(value1, value2) {
+ return ObjectUtils.equals(value1, value2, this.equalityKey);
+ },
isSelected(option) {
- return ObjectUtils.equals(this.modelValue, this.getOptionValue(option), this.equalityKey);
+ const optionValue = this.getOptionValue(option);
+
+ return this.multiple ? (this.modelValue || []).some((value) => this.isEquals(value, optionValue)) : this.isEquals(this.modelValue, this.getOptionValue(option));
},
findFirstOptionIndex() {
return this.visibleOptions.findIndex((option) => this.isValidOption(option));
diff --git a/components/lib/datatable/DataTable.d.ts b/components/lib/datatable/DataTable.d.ts
index ae1e7d490..9f88f6fd8 100755
--- a/components/lib/datatable/DataTable.d.ts
+++ b/components/lib/datatable/DataTable.d.ts
@@ -943,9 +943,9 @@ export interface DataTableProps {
*/
filterDisplay?: 'menu' | 'row' | undefined;
/**
- * Fields for global filter
+ * An array of fields as string or function to use in global filtering.
*/
- globalFilterFields?: string[] | undefined;
+ globalFilterFields?: (string | ((data: any) => string))[] | undefined;
/**
* Locale to use in filtering. The default locale is the host environment's current locale.
*/
diff --git a/components/lib/datatable/DataTable.vue b/components/lib/datatable/DataTable.vue
index 64e45b4c9..4deb806bb 100755
--- a/components/lib/datatable/DataTable.vue
+++ b/components/lib/datatable/DataTable.vue
@@ -87,6 +87,7 @@
:filtersStore="filters"
:filterDisplay="filterDisplay"
:filterInputProps="filterInputProps"
+ :first="d_first"
@column-click="onColumnHeaderClick($event)"
@column-mousedown="onColumnHeaderMouseDown($event)"
@filter-change="onFilterChange"
diff --git a/components/lib/datatable/TableHeader.vue b/components/lib/datatable/TableHeader.vue
index ea40057e8..a21b14d5c 100755
--- a/components/lib/datatable/TableHeader.vue
+++ b/components/lib/datatable/TableHeader.vue
@@ -29,6 +29,7 @@
:filterDisplay="filterDisplay"
:filtersStore="filtersStore"
:filterInputProps="filterInputProps"
+ :first="first"
@filter-change="$emit('filter-change', $event)"
@filter-apply="$emit('filter-apply')"
@operator-change="$emit('operator-change', $event)"
@@ -223,6 +224,10 @@ export default {
type: Boolean,
default: false
},
+ first: {
+ type: Number,
+ default: 0
+ },
filterInputProps: {
type: null,
default: null
diff --git a/components/lib/inputnumber/InputNumber.vue b/components/lib/inputnumber/InputNumber.vue
index 1bce421b4..55c5f115f 100755
--- a/components/lib/inputnumber/InputNumber.vue
+++ b/components/lib/inputnumber/InputNumber.vue
@@ -355,7 +355,7 @@ export default {
return;
}
- if (event.shiftKey || event.altKey) {
+ if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) {
this.isSpecialChar = true;
return;
diff --git a/components/lib/inputotp/InputOtp.vue b/components/lib/inputotp/InputOtp.vue
index e16537c49..ec670ed1a 100755
--- a/components/lib/inputotp/InputOtp.vue
+++ b/components/lib/inputotp/InputOtp.vue
@@ -157,7 +157,7 @@ export default {
break;
default:
- if ((this.integerOnly && !((event.code.startsWith('Digit') || event.code.startsWith('Numpad')) && Number(event.code) >= 0 && Number(event.code) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {
+ if ((this.integerOnly && !((event.code.startsWith('Digit') || event.code.startsWith('Numpad')) && Number(event.key) >= 0 && Number(event.key) <= 9)) || (this.tokens.join('').length >= this.length && event.code !== 'Delete')) {
event.preventDefault();
}
diff --git a/components/lib/slider/Slider.vue b/components/lib/slider/Slider.vue
index dda31db01..b2a5c7db1 100755
--- a/components/lib/slider/Slider.vue
+++ b/components/lib/slider/Slider.vue
@@ -5,8 +5,8 @@
v-if="!range"
:class="cx('handle')"
:style="[sx('handle'), handleStyle]"
- @touchstart="onDragStart($event)"
- @touchmove="onDrag($event)"
+ @touchstart.passive="onDragStart($event)"
+ @touchmove.passive="onDrag($event)"
@touchend="onDragEnd($event)"
@mousedown="onMouseDown($event)"
@keydown="onKeyDown($event)"
@@ -24,8 +24,8 @@
v-if="range"
:class="cx('handle')"
:style="[sx('handle'), rangeStartHandleStyle]"
- @touchstart="onDragStart($event, 0)"
- @touchmove="onDrag($event)"
+ @touchstart.passive="onDragStart($event, 0)"
+ @touchmove.passive="onDrag($event)"
@touchend="onDragEnd($event)"
@mousedown="onMouseDown($event, 0)"
@keydown="onKeyDown($event, 0)"
@@ -43,8 +43,8 @@
v-if="range"
:class="cx('handle')"
:style="[sx('handle'), rangeEndHandleStyle]"
- @touchstart="onDragStart($event, 1)"
- @touchmove="onDrag($event)"
+ @touchstart.passive="onDragStart($event, 1)"
+ @touchmove.passive="onDrag($event)"
@touchend="onDragEnd($event)"
@mousedown="onMouseDown($event, 1)"
@keydown="onKeyDown($event, 1)"
diff --git a/components/lib/tree/Tree.d.ts b/components/lib/tree/Tree.d.ts
index bc189f94a..268c4fefb 100755
--- a/components/lib/tree/Tree.d.ts
+++ b/components/lib/tree/Tree.d.ts
@@ -370,13 +370,17 @@ export interface TreeSlots {
}): VNode[];
/**
* Custom node icon template.
- * @param {Object} scope - togglericon slot's params.
+ * @param {Object} scope - nodeicon slot's params.
*/
nodeicon(scope: {
/**
* Tree node instance
*/
node: TreeNode;
+ /**
+ * Style class of the icon.
+ */
+ class: string;
}): VNode[];
/**
* Custom checkbox icon
diff --git a/components/lib/tree/Tree.spec.js b/components/lib/tree/Tree.spec.js
index e9cacca40..a791a3ba3 100644
--- a/components/lib/tree/Tree.spec.js
+++ b/components/lib/tree/Tree.spec.js
@@ -63,7 +63,7 @@ describe('Tree.vue', () => {
it('should render icon slot', ({ expect }) => {
let wrapper = mount(Tree, {
slots: {
- nodeIcon: ``
+ nodeicon: ``
},
props: {
value: [
diff --git a/components/lib/tree/TreeNode.vue b/components/lib/tree/TreeNode.vue
index 015629953..f3140f4e5 100755
--- a/components/lib/tree/TreeNode.vue
+++ b/components/lib/tree/TreeNode.vue
@@ -32,7 +32,7 @@
-
+
diff --git a/doc/button/IconsDoc.vue b/doc/button/IconsDoc.vue
index a24fb0989..1b84061b7 100644
--- a/doc/button/IconsDoc.vue
+++ b/doc/button/IconsDoc.vue
@@ -38,7 +38,7 @@ export default {
- s
+