mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-12-29 11:01:34 +08:00
Improved ko.extenders.limitedList
This commit is contained in:
parent
1d63683cf9
commit
0bf891ba9d
1 changed files with 13 additions and 21 deletions
34
dev/External/ko.js
vendored
34
dev/External/ko.js
vendored
|
@ -154,28 +154,20 @@ Object.assign(ko.bindingHandlers, {
|
|||
|
||||
ko.extenders.limitedList = (target, limitedList) => {
|
||||
const result = ko
|
||||
.computed({
|
||||
read: target,
|
||||
write: (newValue) => {
|
||||
const currentValue = ko.unwrap(target),
|
||||
list = ko.unwrap(limitedList);
|
||||
|
||||
if (arrayLength(list)) {
|
||||
if (list.includes(newValue)) {
|
||||
target(newValue);
|
||||
} else if (list.includes(currentValue, list)) {
|
||||
target(currentValue + ' ');
|
||||
target(currentValue);
|
||||
} else {
|
||||
target(list[0] + ' ');
|
||||
target(list[0]);
|
||||
}
|
||||
} else {
|
||||
target('');
|
||||
}
|
||||
.computed({
|
||||
read: target,
|
||||
write: newValue => {
|
||||
let currentValue = target(),
|
||||
list = ko.unwrap(limitedList);
|
||||
list = arrayLength(list) ? list : [''];
|
||||
if (!list.includes(newValue)) {
|
||||
newValue = list.includes(currentValue, list) ? currentValue : list[0];
|
||||
target(newValue + ' ');
|
||||
}
|
||||
})
|
||||
.extend({ notify: 'always' });
|
||||
target(newValue);
|
||||
}
|
||||
})
|
||||
.extend({ notify: 'always' });
|
||||
|
||||
result(target());
|
||||
|
||||
|
|
Loading…
Reference in a new issue