From 0c51aa70decf476bb81a4f2f95e76f777636e2f8 Mon Sep 17 00:00:00 2001 From: Th0rN13 Date: Mon, 4 May 2020 10:23:32 +0500 Subject: [PATCH] Add force uncheck values for dublicate bind:group --- src/runtime/internal/dom.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/runtime/internal/dom.ts b/src/runtime/internal/dom.ts index bf8fc1f5a0..7e2b6de9e0 100644 --- a/src/runtime/internal/dom.ts +++ b/src/runtime/internal/dom.ts @@ -124,12 +124,23 @@ export function xlink_attr(node, attribute, value) { node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); } +let oldValue: Set = new Set(); + export function get_binding_group_value(group) { - const value = []; + const value = new Set(); + const force = []; for (let i = 0; i < group.length; i += 1) { - if (group[i].checked) value.push(group[i].__value); + if (group[i].checked) { + value.add(group[i].__value); + } else if (oldValue.has(group[i].__value)) { + force.push(group[i].__value); + } + } + for (let i = 0; i < force.length; i += 1) { + value.delete(force[i]); } - return value; + oldValue = value; + return Array.from(value); } export function to_number(value) {