Fixed #1755 - New selectionMode for PickList
parent
67a7799558
commit
4f246b64e4
|
@ -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",
|
||||
|
|
|
@ -3,6 +3,7 @@ import { VNode } from 'vue';
|
|||
interface PickListProps {
|
||||
modelValue?: any[][];
|
||||
selection?: any[][];
|
||||
selectionMode?: string;
|
||||
dataKey?: string;
|
||||
metaKeySelection?: boolean;
|
||||
listStyle?: any;
|
||||
|
|
|
@ -66,6 +66,10 @@ export default {
|
|||
type: Array,
|
||||
default: () => [[],[]]
|
||||
},
|
||||
selectionMode: {
|
||||
type: String,
|
||||
default: null
|
||||
},
|
||||
dataKey: {
|
||||
type: String,
|
||||
default: null
|
||||
|
@ -381,18 +385,19 @@ 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.push(item);
|
||||
}
|
||||
_selection = this.isMultipleSelectionMode() ? selectionList ? [...selectionList] : [] : [];
|
||||
_selection.push(item);
|
||||
}
|
||||
|
||||
let newSelection = [...this.d_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: {
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue