(element, runtime2)
| 9955 | "SELECT": "value" |
| 9956 | }; |
| 9957 | function _createElementSide(element, runtime2) { |
| 9958 | var tag = element.tagName; |
| 9959 | var type = tag === "INPUT" ? element.getAttribute("type") || "text" : null; |
| 9960 | if (tag === "INPUT" && type === "radio") { |
| 9961 | var radioValue = element.value; |
| 9962 | return { |
| 9963 | element, |
| 9964 | read: function() { |
| 9965 | var checked = runtime2.resolveProperty(element, "checked"); |
| 9966 | return checked ? radioValue : void 0; |
| 9967 | }, |
| 9968 | write: function(value) { |
| 9969 | element.checked = value === radioValue; |
| 9970 | } |
| 9971 | }; |
| 9972 | } |
| 9973 | var prop = _bindProperty[tag + ":" + type] || _bindProperty[tag]; |
| 9974 | if (!prop && element.hasAttribute("contenteditable") && element.getAttribute("contenteditable") !== "false") { |
| 9975 | prop = "textContent"; |
| 9976 | } |
| 9977 | if (!prop && tag.includes("-") && "value" in element) { |
| 9978 | prop = "value"; |
| 9979 | } |
| 9980 | if (!prop) { |
| 9981 | throw new Error( |
| 9982 | "bind cannot auto-detect a property for <" + tag.toLowerCase() + ">. Use an explicit property (e.g. 'bind $var to #el's value')." |
| 9983 | ); |
| 9984 | } |
| 9985 | var isNumeric = prop === "valueAsNumber"; |
| 9986 | return { |
| 9987 | element, |
| 9988 | read: function() { |
| 9989 | var val = runtime2.resolveProperty(element, prop); |
| 9990 | return isNumeric && val !== val ? null : val; |
| 9991 | }, |
| 9992 | write: function(value) { |
| 9993 | element[prop] = value; |
| 9994 | } |
| 9995 | }; |
| 9996 | } |
| 9997 | function _createExpressionSide(expr, target, feature, runtime2) { |
| 9998 | if (expr.type === "classRef") { |
| 9999 | return { |
no test coverage detected