Fixed #1755 - New selectionMode for PickList

pull/1280/head^2
Tuğçe Küçükoğlu 2021-11-15 15:17:53 +03:00
parent 67a7799558
commit 4f246b64e4
4 changed files with 32 additions and 8 deletions

View File

@ -11,6 +11,12 @@ const PickListProps = [
default: "null",
description: "Selected items in the list as a multidimensional array."
},
{
name: "selectionMode",
type: "string",
default: "null",
description: 'Defines selection mode, options are "single" and "multiple".'
},
{
name: "metaKeySelection",
type: "boolean",

View File

@ -3,6 +3,7 @@ import { VNode } from 'vue';
interface PickListProps {
modelValue?: any[][];
selection?: any[][];
selectionMode?: string;
dataKey?: string;
metaKeySelection?: boolean;
listStyle?: any;

View File

@ -66,6 +66,10 @@ export default {
type: Array,
default: () => [[],[]]
},
selectionMode: {
type: String,
default: null
},
dataKey: {
type: String,
default: null
@ -381,19 +385,20 @@ export default {
_selection = selectionList.filter((val, index) => index !== selectedIndex);
}
else {
_selection = (metaKey) ? selectionList ? [...selectionList] : [] : [];
if (metaKey) {
_selection = this.isMultipleSelectionMode() ? selectionList ? [...selectionList] : [] : [];
}
else {
_selection = [];
}
_selection.push(item);
}
}
else {
if (selected) {
_selection = selectionList.filter((val, index) => index !== selectedIndex);
}
else {
_selection = selectionList ? [...selectionList] : [];
_selection = this.isMultipleSelectionMode() ? selectionList ? [...selectionList] : [] : [];
_selection.push(item);
}
}
let newSelection = [...this.d_selection];
newSelection[listIndex] = _selection;
@ -543,6 +548,12 @@ export default {
document.head.removeChild(this.styleElement);
this.styleElement = null;
}
},
isSingleSelectionMode() {
return this.selectionMode === 'single';
},
isMultipleSelectionMode() {
return this.selectionMode === 'multiple';
}
},
computed: {

View File

@ -102,6 +102,12 @@ import PickList from 'primevue/picklist';
<td>null</td>
<td>Selected items in the list as a multidimensional array.</td>
</tr>
<tr>
<td>selectionMode</td>
<td>string</td>
<td>null</td>
<td>Defines selection mode, options are "single" and "multiple".</td>
</tr>
<tr>
<td>metaKeySelection</td>
<td>boolean</td>