MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / _createElementSide

Function _createElementSide

www/js/_hyperscript.esm.js:9955–9994  ·  view source on GitHub ↗
(element, runtime2)

Source from the content-addressed store, hash-verified

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

Callers 1

_resolveSideFunction · 0.70

Calls 1

resolvePropertyMethod · 0.45

Tested by

no test coverage detected