67 lines
1.3 KiB
JavaScript
67 lines
1.3 KiB
JavaScript
export const singleOpenStrategy = {
|
|
open: _ref => {
|
|
let {
|
|
id,
|
|
value,
|
|
opened,
|
|
parents
|
|
} = _ref;
|
|
if (value) {
|
|
const newOpened = new Set();
|
|
newOpened.add(id);
|
|
let parent = parents.get(id);
|
|
while (parent != null) {
|
|
newOpened.add(parent);
|
|
parent = parents.get(parent);
|
|
}
|
|
return newOpened;
|
|
} else {
|
|
opened.delete(id);
|
|
return opened;
|
|
}
|
|
},
|
|
select: () => null
|
|
};
|
|
export const multipleOpenStrategy = {
|
|
open: _ref2 => {
|
|
let {
|
|
id,
|
|
value,
|
|
opened,
|
|
parents
|
|
} = _ref2;
|
|
if (value) {
|
|
let parent = parents.get(id);
|
|
opened.add(id);
|
|
while (parent != null && parent !== id) {
|
|
opened.add(parent);
|
|
parent = parents.get(parent);
|
|
}
|
|
return opened;
|
|
} else {
|
|
opened.delete(id);
|
|
}
|
|
return opened;
|
|
},
|
|
select: () => null
|
|
};
|
|
export const listOpenStrategy = {
|
|
open: multipleOpenStrategy.open,
|
|
select: _ref3 => {
|
|
let {
|
|
id,
|
|
value,
|
|
opened,
|
|
parents
|
|
} = _ref3;
|
|
if (!value) return opened;
|
|
const path = [];
|
|
let parent = parents.get(id);
|
|
while (parent != null) {
|
|
path.push(parent);
|
|
parent = parents.get(parent);
|
|
}
|
|
return new Set(path);
|
|
}
|
|
};
|
|
//# sourceMappingURL=openStrategies.mjs.map
|