diff --git a/docs/timeline/index.html b/docs/timeline/index.html
index 92823b52..8987c78b 100644
--- a/docs/timeline/index.html
+++ b/docs/timeline/index.html
@@ -769,6 +769,16 @@ function (option, path) {
Only applicable when option selectable
is true
.
+
+
+ multiselectPerGroup |
+ boolean |
+ false |
+
+ If true, selecting multiple items using shift+click will only select items residing in the same group as the first selected item.
+ Only applicable when option selectable and multiselect are true .
+ |
+
onAdd |
diff --git a/lib/timeline/component/ItemSet.js b/lib/timeline/component/ItemSet.js
index 03455be7..e688bf11 100644
--- a/lib/timeline/component/ItemSet.js
+++ b/lib/timeline/component/ItemSet.js
@@ -307,7 +307,7 @@ ItemSet.prototype._create = function(){
ItemSet.prototype.setOptions = function(options) {
if (options) {
// copy all options that we know
- var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'multiselectFiltersGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap'];
+ var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap'];
util.selectiveExtend(fields, this.options, options);
if ('orientation' in options) {
@@ -1763,19 +1763,19 @@ ItemSet.prototype._onMultiSelectItem = function (event) {
// when filtering get the group of the last selected item
var lastSelectedGroup = undefined;
- if (this.options.multiselectFiltersGroup) {
+ if (this.options.multiselectPerGroup) {
if (selection.length > 0) {
lastSelectedGroup = this.itemsData.get(selection[0]).group;
}
}
// determine the selection range
- if (!this.options.multiselectFiltersGroup || lastSelectedGroup == undefined || lastSelectedGroup == itemGroup) {
+ if (!this.options.multiselectPerGroup || lastSelectedGroup == undefined || lastSelectedGroup == itemGroup) {
selection.push(item.id);
}
var range = ItemSet._getItemRange(this.itemsData.get(selection, this.itemOptions));
- if (!this.options.multiselectFiltersGroup || lastSelectedGroup == itemGroup) {
+ if (!this.options.multiselectPerGroup || lastSelectedGroup == itemGroup) {
// select all items within the selection range
selection = [];
for (var id in this.items) {
@@ -1786,7 +1786,7 @@ ItemSet.prototype._onMultiSelectItem = function (event) {
if (start >= range.min &&
end <= range.max &&
- (!this.options.multiselectFiltersGroup || lastSelectedGroup == this.itemsData.get(_item.id).group) &&
+ (!this.options.multiselectPerGroup || lastSelectedGroup == this.itemsData.get(_item.id).group) &&
!(_item instanceof BackgroundItem)) {
selection.push(_item.id); // do not use id but item.id, id itself is stringified
}
diff --git a/lib/timeline/optionsTimeline.js b/lib/timeline/optionsTimeline.js
index 2d6750db..e3e9c3f3 100644
--- a/lib/timeline/optionsTimeline.js
+++ b/lib/timeline/optionsTimeline.js
@@ -98,7 +98,7 @@ let allOptions = {
minHeight: {number, string},
moveable: {boolean},
multiselect: {boolean},
- multiselectFiltersGroup: {boolean},
+ multiselectPerGroup: {boolean},
onAdd: {'function': 'function'},
onUpdate: {'function': 'function'},
onMove: {'function': 'function'},
@@ -192,7 +192,7 @@ let configureOptions = {
minHeight: '',
moveable: false,
multiselect: false,
- multiselectFiltersGroup: false,
+ multiselectPerGroup: false,
//onAdd: {'function': 'function'},
//onUpdate: {'function': 'function'},
//onMove: {'function': 'function'},